Beispiel #1
0
        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));
        }
Beispiel #2
0
        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();
            }
        }
Beispiel #3
0
        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();
            }
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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));
        }
Beispiel #6
0
        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));
        }
Beispiel #7
0
        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);
        }
Beispiel #8
0
        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);
        }
Beispiel #9
0
        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));
        }
Beispiel #11
0
        //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();
            }
        }
Beispiel #12
0
        //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));
        }