using System.Runtime.InteropServices;

namespace IRaCIS.Core.Domain.Share
{
    [StructLayout(LayoutKind.Sequential)]
    public class NetResource
    {
        public int dwScope;
        public int dwType;
        public int dwDisplayType;
        public int dwUsage;
        public string lpLocalName;
        public string lpRemoteName;
        public string lpComment;
        public string lpProvider;
    }


    public class WNetAddConnectionHelper
    {
        [DllImport("mpr.dll", EntryPoint = "WNetAddConnection2")]
        private static extern uint WNetAddConnection2(NetResource lpNetResource, string lpPassword, string lpUsername, uint dwFlags);

        [DllImport("mpr.dll")]
        public static extern int WNetCancelConnection2A(string sharename, int dwFlags, int fForce);

        public static void Connect()
        {

            var remoteName = @"\\192.168.1.119\Potomac_01";
            NetResource netResource = new NetResource();
            netResource.dwScope = 1;
            netResource.dwType = 1;
            netResource.dwDisplayType = 3;
            netResource.dwUsage = 1;
            netResource.lpLocalName = "W:";
            netResource.lpRemoteName = remoteName.TrimEnd('\\');

            WNetAddConnection2(netResource, "Everest@suzhou406", "share", 1);

        }

        public static int Disconnect()
        {
            return WNetCancelConnection2A("W:", 1, 1);
        }

    }
}