public override NpceOperationResult Invio() { CE ce = GetCE(); RaccomandataSubmit RaccomandataBE = SetRaccomandataBE(); RaccomandataBE.IdRichiesta = _idRichiesta; RaccomandataResponse RaccomandataResult = null; ce.Body = SerializationUtility.SerializeToXmlElement(RaccomandataBE); using (WsCEClient client = new WsCEClient()) { client.Endpoint.Address = new System.ServiceModel.EndpointAddress(_ambiente.RolUri); client.SubmitRequest(ref ce); try { RaccomandataResult = SerializationUtility.Deserialize <RaccomandataResponse>(ce.Body); } catch (Exception ex) { throw (ex); } } return(CreateResult(NpceOperation.Invio, ce.Result.ResType == TResultResType.I ? "0" : "99", ce.Result.Description?.Substring(0, Math.Min(ce.Result.Description.Length, 500)) ?? "Invio Ok", RaccomandataResult.IdRichiesta, null, null)); }
public override NPCEResult Invia() { LetteraSubmit letteraBE = SetLetteraSubmit(); letteraBE.IdRichiesta = IdRichiesta; LetteraResponse letteraResult = null; CE.Body = SerializationUtility.SerializeToXmlElement(letteraBE); try { var ce = CE;; WsCEClient.SubmitRequest(ref ce); try { letteraResult = SerializationUtility.Deserialize <LetteraResponse>(ce.Body); return(letteraResult.CreateResult(ce)); } catch (Exception ex) { throw (ex); } } finally { WsCEClient.InnerChannel.Close(); } }
public async override Task <NPCEResult> InviaAsync() { LetteraSubmit letteraBE = SetLetteraSubmit(); letteraBE.IdRichiesta = IdRichiesta; LetteraResponse letteraResult = null; CE.Header.GUIDMessage = IdRichiesta; CE.Body = SerializationUtility.SerializeToXmlElement(letteraBE); try { SubmitRequestRequest request = new SubmitRequestRequest(CE); var response = await WsCEClient.SubmitRequestAsync(request); try { letteraResult = SerializationUtility.Deserialize <LetteraResponse>(response.CE.Body); return(letteraResult.CreateResult(response.CE)); } catch (Exception ex) { throw (ex); } } finally { WsCEClient.InnerChannel.Close(); } }
public CE Conferma(OrderResponse orderResponse, CE ce, WsCEClient client) { // solo postFatturazione ComunicazioniElettroniche.Common.Frontend.DataContracts.OpzionePagamento op = new OpzionePagamento(); op.DescrizioneTipoPagamento = string.Empty; // puo' essere solo postfatturazione op.IdTipoPagamento = string.Empty; for (int i = 0; i < orderResponse.PaymentTypes.Length; i++) { if (orderResponse.PaymentTypes[i].PostPayment) { op.DescrizioneTipoPagamento = orderResponse.PaymentTypes[i].TypeDescription; op.IdTipoPagamento = orderResponse.PaymentTypes[i].TypeId; op.PostFatturazione = true; break; } } // Prepare confirm request ConfirmOrder confirm = new ConfirmOrder { IdOrder = orderResponse.IdOrder, PaymentType = new PaymentType { TypeId = op.IdTipoPagamento, PostPayment = true } }; ce.Body = SerializationUtility.SerializeToXmlElement(confirm); client.SubmitRequest(ref ce); return(ce); }
public override NpceOperationResult Conferma() { CE ce = GetCE(); ConfirmService confirm = new ConfirmService { IdRichiesta = _servizio.IdRichiesta }; ConfirmServiceResponse confirmResult = null; ce.Body = SerializationUtility.SerializeToXmlElement(confirm); using (WsCEClient client = new WsCEClient()) { client.Endpoint.Address = new System.ServiceModel.EndpointAddress(_ambiente.LolUri); client.SubmitRequest(ref ce); try { confirmResult = SerializationUtility.Deserialize <ConfirmServiceResponse>(ce.Body); } catch (Exception ex) { throw (ex); } } return(CreateResult(NpceOperation.Invio, ce.Result.ResType == TResultResType.I ? "0" : "99", ce.Result.Description?.Substring(0, Math.Min(ce.Result.Description.Length, 500)) ?? "Invio Ok", string.Empty, null, null)); }
public NpceOperationResult PreConferma(string idRichiesta, bool autoconfirm) { OrderRequest orderRequest = new PosteItaliane.OrderManagement.Schema.SchemaDefinition.OrderRequest(); OrderResponse orderResponse = null; var ce = new CE(); ce.Header = new CEHeader(); ce.Header.GUIDMessage = Guid.NewGuid().ToString(); ce.Header = new CEHeader { BillingCenter = _ambiente.billingcenter, CodiceFiscale = _ambiente.codicefiscale, ContractId = _ambiente.contractid, ContractType = _ambiente.contracttype, CostCenter = _ambiente.costcenter, Customer = _ambiente.customer, IdCRM = string.Empty, SenderSystem = _ambiente.sendersystem, UserId = _ambiente.smuser, PartitaIva = _ambiente.partitaiva, IDSender = string.Empty, UserType = _ambiente.usertype }; ce.Header.GUIDMessage = idRichiesta; orderRequest.ServiceInstance = new OrderRequestServiceInstance[1]; orderRequest.ForceOrderCreation = true; orderRequest.ServiceInstance[0] = new OrderRequestServiceInstance(); orderRequest.ServiceInstance[0].GUIDMessage = idRichiesta; ce.Body = SerializationUtility.SerializeToXmlElement(orderRequest); using (WsCEClient client = new WsCEClient()) { client.Endpoint.Address = new System.ServiceModel.EndpointAddress(_ambiente.LolUri); client.SubmitRequest(ref ce); try { orderResponse = SerializationUtility.Deserialize <OrderResponse>(ce.Body); } catch (Exception ex) { throw (ex); } var idOrdine = orderResponse.IdOrder; if (autoconfirm) { ce = Conferma(orderResponse, ce, client); } } return(CreateResult(NpceOperation.PreConfermaWithAutoconfirm, ce.Result.ResType == TResultResType.I ? "0" : "99", ce.Result.Description?.Substring(0, Math.Min(ce.Result.Description.Length, 500)) ?? "Invio Ok", orderResponse.IdOrder, null, null)); }
public static TResult PublishToBizTalk <T, V>(T request, CEHeader ceHeader, string entryPointuri, out V response) where V : class { CE ce = new CE(); ce.Header = ceHeader; ce.Body = SerializationUtility.SerializeToXmlElement(request); BasicHttpBinding httpBinding = new BasicHttpBinding(); httpBinding.MaxReceivedMessageSize = 2147483647; httpBinding.SendTimeout = TimeSpan.FromMinutes(20); EndpointAddress endpointAddress = new EndpointAddress(entryPointuri); var client = new WsCEClient(httpBinding, endpointAddress); string guidMessage = ceHeader.GUIDMessage; if (ce.Body.OuterXml.StartsWith("<OrderRequest")) { OrderRequest orderRequest = SerializationUtility.Deserialize <OrderRequest>(ce.Body); guidMessage = orderRequest.ServiceInstance[0].GUIDMessage; } if (ce.Body.GetElementsByTagName("IdRichiesta").Count > 0) { guidMessage = ce.Body.GetElementsByTagName("IdRichiesta")[0].InnerText; } if (string.IsNullOrEmpty(guidMessage)) { guidMessage = ce.Body.GetAttribute("IdRichiesta"); } if (ce.Body.GetElementsByTagName("GUIDMessage").Count > 0) { guidMessage = ce.Body.GetElementsByTagName("IdRichiesta")[0].InnerText; } guidMessage = ce.Header.GUIDMessage; if (string.IsNullOrEmpty(guidMessage)) { throw new ArgumentException("IdRichiesta not found in request to submit"); } ce.Header.GUIDMessage = guidMessage; try { client.SubmitRequest(ref ce); response = SerializationUtility.Deserialize <V>(ce.Body); } catch (Exception ex) { throw; } return(ce.Result); }
protected void Init() { CEHeader = new CEHeader { BillingCenter = Ambiente.billingcenter, CodiceFiscale = Ambiente.codicefiscale, ContractId = Ambiente.contractid, ContractType = Ambiente.contracttype, CostCenter = Ambiente.costcenter, Customer = Ambiente.customer, IdCRM = string.Empty, SenderSystem = Ambiente.sendersystem, UserId = Ambiente.smuser, PartitaIva = Ambiente.partitaiva, IDSender = string.Empty, UserType = Ambiente.usertype }; CE = new CE(); CE.Header = CEHeader; CE.Header.GUIDMessage = IdRichiesta; _httpHeaders = GetHttpHeaders(Ambiente); string uri = null; switch (Servizio.TipoServizioId) { case (int)TipoServizioId.POSTA1: case (int)TipoServizioId.POSTA4: uri = Ambiente.LolUri; break; case (int)TipoServizioId.ROL: uri = Ambiente.RolUri; break; default: break; } var enpointAddress = new System.ServiceModel.EndpointAddress(uri); BasicHttpBinding myBinding = new BasicHttpBinding(); myBinding.SendTimeout = TimeSpan.FromMinutes(3); myBinding.MaxReceivedMessageSize = 2147483647; WsCEClient = new WsCEClient(myBinding, enpointAddress); }
public TResult PublishToBizTalk <T, V>(T request, out V response) where V : class { CE ce = new CE(); ce.Header = Helper.GetCeHeader(); ce.Body = ComunicazioniElettroniche.Common.Serialization.SerializationUtility.SerializeToXmlElement(request); BasicHttpBinding httpBinding = new BasicHttpBinding(); httpBinding.MaxReceivedMessageSize = 64000000; httpBinding.SendTimeout = TimeSpan.FromMinutes(20); EndpointAddress endpointAddress = new EndpointAddress(_config.UrlEntryPoint); var client = new WsCEClient(httpBinding, endpointAddress); string guidMessage = string.Empty; if (ce.Body.GetElementsByTagName("IdRichiesta").Count > 0) { guidMessage = ce.Body.GetElementsByTagName("IdRichiesta")[0].InnerText; } if (string.IsNullOrEmpty(guidMessage)) { guidMessage = ce.Body.GetAttribute("IdRichiesta"); } if (string.IsNullOrEmpty(guidMessage)) { throw new ArgumentException("IdRichiesta not found in request to submit"); } ce.Header.GUIDMessage = guidMessage; try { client.SubmitRequest(ref ce); response = SerializationUtility.Deserialize <V>(ce.Body); } catch (Exception ex) { throw; } return(ce.Result); }
public NpceOperationResult Execute() { var ce = new ComunicazioniElettroniche.Common.DataContracts.CE(); ce.Header = GetHeaders(_ambiente); ce.Header.GUIDMessage = Guid.NewGuid().ToString(); ConfermaRequest confermaRequest = new ConfermaRequest { IdOrdine = _visura.IdOrdine, PaymentDate = System.DateTime.Now, PaymentDateSpecified = true, PaymentType = new PaymentType { PostPayment = true, PostPaymentSpecified = true, TypeId = "6" } }; SetUserInfo(confermaRequest); ce.Body = SerializationUtility.SerializeToXmlElement(confermaRequest); ConfermaResponse confermaResponse = null; using (WsCEClient client = new WsCEClient()) { client.Endpoint.Address = new System.ServiceModel.EndpointAddress(_ambiente.VolUri); client.SubmitRequest(ref ce); try { confermaResponse = SerializationUtility.Deserialize <ConfermaResponse>(ce.Body); } catch (Exception ex) { throw (ex); } } return(CreateResult(NpceOperation.Conferma, confermaResponse.Result.ResType == TResultResType.I ? "0" : "99", "Invio Ok", confermaResponse.IdOrdine, null, null)); }
//public LOLPil(NPCE_Client.Model.Servizio servizio, Ambiente ambiente, string idRichiesta) : base(servizio, ambiente, idRichiesta) //{ //} public override async Task <NPCEResult> ConfermaAsync(string idRichiesta) { OrderResponse preConfirmResult; string idOrdine; try { OrderRequest preconfirmRequest = GetPreConfirmRequest(idRichiesta); CE.Header.GUIDMessage = IdRichiesta; CE.Body = SerializationUtility.SerializeToXmlElement(preconfirmRequest); SubmitRequestRequest request = new SubmitRequestRequest(CE); var response = await WsCEClient.SubmitRequestAsync(request); preConfirmResult = SerializationUtility.Deserialize <OrderResponse>(response.CE.Body); idOrdine = preConfirmResult.IdOrder; ConfirmOrder confirmRequest = GetConfirmRequest(idOrdine, preConfirmResult.PaymentTypes[0].TypeDescription); CE.Header.GUIDMessage = IdRichiesta; CE.Body = SerializationUtility.SerializeToXmlElement(confirmRequest); request = new SubmitRequestRequest(CE); response = await WsCEClient.SubmitRequestAsync(request); return(new NPCEResult { Code = "I", Description = "Conferma avvenuta correttamente", IdOrdine = idOrdine, IdRichiesta = idRichiesta }); } finally { WsCEClient.InnerChannel.Close(); } }
//private readonly Visura _visura; public NpceOperationResult Execute(bool autoConferma, bool controllaPrezzo) { var ce = new ComunicazioniElettroniche.Common.DataContracts.CE(); ce.Header = GetHeaders(_ambiente); ce.Header.GUIDMessage = Guid.NewGuid().ToString(); DocumentiRequest documentiRequest = GetDocumentiRequest(); documentiRequest.ControllaPrezzoDiVendita = controllaPrezzo; documentiRequest.ControllaPrezzoDiVenditaSpecified = true; documentiRequest.Autoconferma = autoConferma; documentiRequest.AutoconfermaSpecified = true; ce.Body = SerializationUtility.SerializeToXmlElement(documentiRequest); DocumentiResponse documentiResponse = null; using (WsCEClient client = new WsCEClient()) { client.Endpoint.Address = new System.ServiceModel.EndpointAddress(_ambiente.VolUri); client.SubmitRequest(ref ce); try { documentiResponse = SerializationUtility.Deserialize <DocumentiResponse>(ce.Body); } catch (Exception ex) { throw (ex); } } return(CreateResult(NpceOperation.Invio, documentiResponse.Result.ResType == TResultResType.I ? "0" : "99", documentiResponse.Result.Description?.Substring(0, Math.Min(documentiResponse.Result.Description.Length, 500)) ?? "Invio Ok", documentiResponse.IdentificativoRichiesta, documentiResponse?.OrderResponse?.IdOrder, null)); }