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); }
protected CEHeader GetCeHeader() { CEHeader result = new CEHeader(); result.BillingCenter = "BillingCenter"; result.ContractId = "ContractId"; result.BillingCenter = "BillingCenter"; result.Customer = "Customer"; result.IdCRM = "IdCRM"; result.IDSender = "IDSender"; result.SenderSystem = "SenderSystem"; result.UserId = "UserId"; result.UserType = "UserType"; result.CodiceFiscale = "CodiceFiscale"; result.PartitaIva = "PartitaIva"; result.CostCenter = "CostCenter"; result.ContractType = "ContractType"; return(result); }