public FileExplorerCommand() { _dtpFactory = new DtpFactory(SendData) { Timeout = 1000 * 60 * 5 }; //5 min. timeout }
public void TestDataTransferFunctions() { _dtpFactory = new DtpFactory(SendData); _dtpProcessor = new DtpProcessor(); _dtpProcessor.RegisterFunction("TestFunction1", parameters => { Trace.WriteLine("Parameterless function with int returning type successfully executed"); return(0); }); _dtpProcessor.RegisterFunction("TestFunction2", parameters => { Assert.AreEqual(parameters.GetInt32(0), 19); Trace.WriteLine("Function with int parameter and string returning type successfully executed"); return("wtf"); }); _dtpProcessor.RegisterFunction("TestFunction3", parameters => { var result = parameters.GetValue <List <ClientInformation> >(0, typeof(OnlineClientInformation), typeof(OfflineClientInformation)); Assert.IsNotNull(result); Assert.AreEqual(result.Count, 3); Assert.AreEqual(result[1].Group, "test"); Trace.WriteLine("Function with complex parameter and complex returning successfully executed"); return(new List <ClientInformation> { new OnlineClientInformation(), new OfflineClientInformation(), new OnlineClientInformation() }); }, typeof(OfflineClientInformation), typeof(OnlineClientInformation)); Trace.WriteLine("Executing parameterless method"); Assert.AreEqual(_dtpFactory.ExecuteFunction <int>("TestFunction1"), 0); Trace.WriteLine("Executing method with in parameter"); Assert.AreEqual(_dtpFactory.ExecuteFunction <string>("TestFunction2", 19), "wtf"); Trace.WriteLine("Executing method with complex parameter"); Assert.AreEqual(_dtpFactory.ExecuteFunction <List <ClientInformation> >("TestFunction3", new List <Type> { typeof(OnlineClientInformation), typeof(OfflineClientInformation) }, new List <Type> { typeof(OfflineClientInformation), typeof(OnlineClientInformation) }, new List <ClientInformation> { new OnlineClientInformation(), new OfflineClientInformation { Group = "test" }, new OnlineClientInformation() }).Count, 3); }
public ClientProvider(LightInformation clientInfo, DtpFactory dtpFactory) { _clientData = clientInfo.Clients.Select(x => { x.Group = clientInfo.Groups[x.GroupId]; x.OsName = clientInfo.OperatingSystems[x.OsNameId]; return(x); }).ToDictionary(x => new ClientViewModel(x), y => (BaseClientInformation)y); Clients = new ObservableCollection <ClientViewModel>(_clientData.Select(x => x.Key)); _clientsUpdating = new List <int>(); _dtpFactory = dtpFactory; Groups = new ObservableCollection <string>(Clients.GroupBy(x => x.Group).Select(x => x.Key)); }
private void SendData(byte[] data) { if (_isDisposed) { return; } lock (Sender.WriterLock) { Sender.Connection.BinaryWriter.Write((byte)FromAdministrationPackage.DataTransferProtocol); Sender.Connection.BinaryWriter.Write(data.Length); Sender.Connection.BinaryWriter.Write(data); } if (_packageSentEventHandler != null) { OnPackageSent(DtpFactory.DescribeSentData(data, 0), data.Length + 5); } }
public void TestDataTransferMethods() { _dtpFactory = new DtpFactory(SendData); _dtpProcessor = new DtpProcessor(); _dtpProcessor.RegisterProcedure("TestMethod1", parameters => Trace.WriteLine("Parameterless method successfully executed")); _dtpProcessor.RegisterProcedure("TestMethod2", parameters => { Assert.AreEqual(parameters.GetInt32(0), 19); Trace.WriteLine("Method with int parameter successfully executed"); }); _dtpProcessor.RegisterProcedure("TestMethod3", parameters => { var result = parameters.GetValue <List <ClientInformation> >(0, typeof(OnlineClientInformation), typeof(OfflineClientInformation)); Assert.IsNotNull(result); Assert.AreEqual(result.Count, 3); Assert.AreEqual(result[1].Group, "test"); Trace.WriteLine("Method with complex parameter successfully executed"); }); Trace.WriteLine("Executing parameterless method"); _dtpFactory.ExecuteProcedure("TestMethod1"); Trace.WriteLine("Executing method with in parameter"); _dtpFactory.ExecuteProcedure("TestMethod2", 19); Trace.WriteLine("Executing method with complex parameter"); _dtpFactory.ExecuteProcedure("TestMethod3", new List <Type> { typeof(OnlineClientInformation), typeof(OfflineClientInformation) }, null, new List <ClientInformation> { new OnlineClientInformation(), new OfflineClientInformation { Group = "test" }, new OnlineClientInformation() }); }
public override string DescribePackage(byte[] data, bool isReceived) { var responseType = (FileExplorerCommunication)data[0]; if (isReceived) { if (responseType != FileExplorerCommunication.ResponseDtpPackage) { return(responseType.ToString()); } return("ResponseDtpPackage - " + _dtpFactory.DescribeReceivedData(data, 1)); } else { if (responseType != FileExplorerCommunication.SendDtpPackage) { return(responseType.ToString()); } return("SendDtpPackage - " + DtpFactory.DescribeSentData(data, 1)); } }
private ConnectionManager(BinaryReader binaryReader, BinaryWriter binaryWriter, SslStream sslStream, TcpClient tcpClient) { DataTransferProtocolFactory = new DtpFactory(SendData); Sender = new Sender(binaryReader, binaryWriter, sslStream); StaticCommander = new StaticCommander(this); _tcpClient = tcpClient; var serializer = new Serializer(new[] { typeof(WelcomePackage) }); var welcomePackage = (WelcomePackage)serializer.Deserialize(sslStream); _readByteDelegate += Sender.BinaryReader.ReadByte; _readByteDelegate.BeginInvoke(EndRead, null); var lightInfo = DataTransferProtocolFactory.ExecuteFunction <LightInformationApp> ("GetAllClientsLightApp"); Clients = lightInfo.Clients.Select(x => { x.Group = lightInfo.Groups[x.GroupId]; x.OsName = lightInfo.OperatingSystems[x.OsNameId]; return(x); }).ToList(); }
private ConnectionManager(string ip, int port, string password, IConnection connection) { DataTransferProtocolFactory = new DtpFactory(SendData); Ip = ip; Port = port; Password = password; Sender = new Sender(connection); var serializer = new Serializer(new[] { typeof(WelcomePackage) }); StaticCommander = new StaticCommander(this); var welcomePackage = (WelcomePackage)serializer.Deserialize(connection.BaseStream); _readByteDelegate += Sender.Connection.BinaryReader.ReadByte; _readByteDelegate.BeginInvoke(EndRead, null); var data = DataTransferProtocolFactory.ExecuteFunction <LightInformation>("GetAllClientsLight"); ClientProvider = new ClientProvider(data, DataTransferProtocolFactory); IpAddresses = welcomePackage.IpAddresses; ExceptionsCount = welcomePackage.ExceptionCount; }
public ConnectionInitializerCommand() { _dtpFactory = new DtpFactory(SendDataAction); }