private void Executar <TDocument>(string metodo, DFeDocument <TDocument> request) where TDocument : class { var saveOptions = ACBr.Net.DFe.Core.Common.DFeSaveOptions.DisableFormatting | ACBr.Net.DFe.Core.Common.DFeSaveOptions.OmitDeclaration | ACBr.Net.DFe.Core.Common.DFeSaveOptions.RemoveSpaces; string xml = request.GetXml(saveOptions).ToString(); XmlEnvio = xml; XmlResposta = string.Empty; var _timeout = TimeSpan.FromMilliseconds(Timeout); using (var client = new RequestServiceClient(Ambiente, _timeout)) { try { XmlResposta = client.Execute(metodo, xml); XmlEnvio = client.XmlEnvio; } finally { XmlEnvio = client.XmlEnvio; if (SalvarXmls) { string path = Path.Combine(PathXmls, $"{metodo}Request_{DateTime.Now:yyyy-MM-dd_HHmmss}.xml"); File.WriteAllText(path, XmlEnvio); path = Path.Combine(PathXmls, $"{metodo}Response_{DateTime.Now:yyyy-MM-dd_HHmmss}.xml"); File.WriteAllText(path, XmlResposta); } } } }
internal static Client <RequestServiceClient> ConstructRequestServiceClient(string endpointConfigName, string userName, string userPassword) { RequestServiceClient client = null; ChannelEndpointElement channelEE = _configDictionary[typeof(RequestService).FullName].Find(delegate(ChannelEndpointElement cee) { return(cee.Name == endpointConfigName); }); if (null != channelEE) { client = new RequestServiceClient(endpointConfigName, channelEE.Address.ToString()); client.ClientCredentials.UserName.UserName = userName; client.ClientCredentials.UserName.Password = userPassword; } return(ClientFactory.CreateClient <RequestServiceClient, RequestService>(client)); }
static void Main(string[] args) { RequestServiceClient client = new RequestServiceClient(); string b = ""; while (b != "exit") { Console.WriteLine("Sélectionner une action: 'Login', 'Decrypt'"); string q = Console.ReadLine(); switch (q) { case "Login": //Console.WriteLine("Username: "******"Password: "******"0.1", OperationName = "LogUser", OperationType = "Login", //Data = new object[] { username, password }, Data = new object[] { "Bob", "password" }, TokenApp = "ThisIsATest", }; CommunicationParameters.Msg response = client.Request(message); if (response.StatutOp) { userToken = (string)response.Data[0]; } Console.WriteLine($"Réponse du serveur: Status({response.StatutOp}), Info({response.Info}), Data({response.Data[0]})\n"); break; case "Decrypt": Console.WriteLine("Texte du fichier: "); string text = Console.ReadLine(); CommunicationParameters.Msg m = new CommunicationParameters.Msg() { AppVersion = "0.1", OperationName = "DecryptFile", OperationType = "Decrypt", Data = new object[] { "This is a test name", text }, TokenApp = "ThisIsATest", TokenUser = userToken }; CommunicationParameters.Msg r = client.Request(m); Console.WriteLine($"Réponse du serveur: Status({r.StatutOp}), Info({r.Info}), Data({r.Data[0]})\n"); break; default: Console.WriteLine("Commande non reconnue"); break; } Console.WriteLine($"Taper 'exit' pour quitter ou entrer pour recommencer"); b = Console.ReadLine(); } }