Example #1
0
        public async void TestServer()
        {
            var server = new NetxServBuilder()
                         .ConfigBase(p =>
            {
                p.VerifyKey   = "123123";
                p.ServiceName = "IFServ";
            })
                         .ConfigNetWork(p => p.Port = 1322)
                         .RegisterDescriptors(p =>
            {
                p.Configure <IFSOption>(option =>
                {
                    option.Path = "./";
                });
                p.AddSingleton <IUserVerification, UserVerification>();
            })
                         .RegisterService(typeof(IFSController).Assembly)
                         .Build();

            server.Start();

            var client  = new IFSClient("127.0.0.1", 1322, "123123");
            var service = client.GetFSService();
            await service.LogOn("username", "password");

            var dir = await service.GetFs("./");

            Assert.True(dir.Count > 0);
            server.Stop();
        }
Example #2
0
        public static bool SaveToLocal(this IFSClient client, string remoteFileName, string fileFullName)
        {
            Directory.CreateDirectory(Path.GetDirectoryName(fileFullName));

            if (client is LocalFSClient)
            {
                var srcFileFullName = remoteFileName;

                if (!Path.IsPathRooted(remoteFileName))
                {
                    srcFileFullName = (client as LocalFSClient).GetFileFullName(remoteFileName);
                }

                if (!File.Exists(srcFileFullName))
                {
                    return(false);
                }

                if (File.Exists(fileFullName) && new FileInfo(fileFullName).FullName == new FileInfo(srcFileFullName).FullName)//skip the same file
                {
                    return(true);
                }

                File.Copy(srcFileFullName, fileFullName);

                return(true);
            }

            if (client.Exists(remoteFileName))
            {
                var bytes = client.Get(remoteFileName);
                using (var fs = File.Open(fileFullName, FileMode.Create))
                {
                    fs.Write(bytes, 0, bytes.Length);
                }

                return(true);
            }

            return(false);
        }