Exemplo n.º 1
0
        private void SetDocumenti(PostaContest postaContest)
        {
            Documento newDocumento;
            var       listDocumenti = new List <Documento>();

            foreach (var documento in _servizio.Documenti)
            {
                newDocumento = NewDocumento(documento);
                listDocumenti.Add(newDocumento);
            }

            postaContest.Documenti = listDocumenti.ToArray();
        }
Exemplo n.º 2
0
        private void SetDestinatari(PostaContest postaContest)
        {
            int count = 0;

            var destinatariServizioList = _servizio.Anagrafiche.Where(d => d.IsMittente == true).ToList();

            var listDestinatari = new List <Destinatario>();

            foreach (var destinatarioServizio in destinatariServizioList)
            {
                count++;
                Destinatario newDestinatario = NewDestinatario(destinatarioServizio);
                listDestinatari.Add(newDestinatario);
            }

            postaContest.Destinatari = listDestinatari.ToArray();
        }
Exemplo n.º 3
0
        private void SetOpzioni(PostaContest postaContest)
        {
            postaContest.Opzioni = new Services.Col.Opzioni();

            postaContest.Opzioni.Servizio = new Services.Col.OpzioniServizio
            {
                ArchiviazioneDocumenti = false
            };

            postaContest.Opzioni.Stampa = new Services.Col.OpzioniStampa
            {
                FronteRetro = _servizio.FronteRetro,
                TipoColore  = _servizio.Colore ? Services.Col.TipoColore.COLORE : Services.Col.TipoColore.BW
            };

            // Dati Opzionali
        }
Exemplo n.º 4
0
        private void SetBollettini(PostaContest postaContest)
        {
            List <Services.Col.PaginaBollettino> pagineBollettiniList = new List <Services.Col.PaginaBollettino>();

            List <PaginaDueBollettini> pagineDueBollettiniList = new List <PaginaDueBollettini>();

            foreach (var paginaBollettino in _servizio.PagineBollettini)
            {
                CreatePaginaBollettino(paginaBollettino, pagineBollettiniList, pagineDueBollettiniList);
            }

            List <PaginaBollettino> finalBollettiniList = new List <PaginaBollettino>();

            finalBollettiniList.AddRange(pagineBollettiniList);
            finalBollettiniList.AddRange(pagineDueBollettiniList);

            postaContest.Bollettini = finalBollettiniList.ToArray();
        }
Exemplo n.º 5
0
        private void SetMittente(PostaContest postaContest)
        {
            var mittenteServizio = _servizio.Anagrafiche.Single(d => d.IsMittente == true);
            var nominativo       = mittenteServizio.RagioneSociale ?? string.Concat(mittenteServizio.Cognome, mittenteServizio.Nome);

            postaContest.Mittente = new Mittente
            {
                Nominativo            = nominativo,
                Cap                   = mittenteServizio.Cap,
                ComplementoIndirizzo  = mittenteServizio.ComplementoIndirizzo,
                ComplementoNominativo = mittenteServizio.ComplementoNominativo,
                Indirizzo             = string.Concat(mittenteServizio.DUG, mittenteServizio.Toponimo, mittenteServizio.Esponente),
                Comune                = mittenteServizio.Citta,
                Frazione              = mittenteServizio.Frazione,
                Nazione               = mittenteServizio.Stato ?? "Italia",
                Provincia             = mittenteServizio.Provincia
            };
        }
Exemplo n.º 6
0
        public NpceOperationResult Execute()
        {
            var helper = new Helper();

            _proxy = helper.GetProxy <IPostaContestService>(_ambiente.ColUri, _ambiente.Username, _ambiente.Password);
            Services.Col.InvioRequest colSubmit = new InvioRequest();
            ProdottoPostaEvo          tipoProdotto;

            Enum.TryParse <ProdottoPostaEvo>(_servizio.TipoServizio.Descrizione.ToUpper(), out tipoProdotto);

            colSubmit.Intestazione = new Intestazione {
                CodiceContratto = _ambiente.ContrattoCOL, Prodotto = tipoProdotto
            };

            var postaContest = new PostaContest();

            postaContest.AutoConferma = _servizio.Autoconferma;

            SetIntestazione(postaContest);
            SetMittente(postaContest);
            SetDestinatari(postaContest);
            SetDocumenti(postaContest);
            SetOpzioni(postaContest);

            if (_servizio.PagineBollettini != null && _servizio.PagineBollettini.Count() > 0)
            {
                SetBollettini(postaContest);
            }


            var fake    = new OperationContextScope((IContextChannel)_proxy);
            var headers = GetHttpHeaders(_ambiente);

            OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = headers;

            colSubmit.PostaContest = postaContest;

            var invioResult = _proxy.Invio(colSubmit);

            return(CreateResult(NpceOperation.Invio, invioResult.Esito.ToString() == "OK" ? "0" : "99", invioResult.Esito.ToString(), invioResult.IdRichiesta, null, null));
        }
Exemplo n.º 7
0
 private void SetIntestazione(PostaContest postaContest)
 {
 }
Exemplo n.º 8
0
        public Names sendNames(GetRecipent GetRecipent, int operationId, SenderDto sender, int userId, bool autoconfirm = false)
        {
            var n = _context.Names.SingleOrDefault(a => a.id == GetRecipent.recipient.id);

            var user     = _context.Users.SingleOrDefault(a => a.id == userId);
            var guidUser = user.guidUser;

            //PREVERIFICA BOLLETTINO
            if (GetRecipent.bulletin != null)
            {
                ControlloBollettino ctrlB = GlobalClass.verificaBollettino(GetRecipent.bulletin);
                if (!ctrlB.Valido)
                {
                    n.valid = false;
                    n.stato = "Errore nella convalida del bollettino.";
                    _context.SaveChanges();
                    return(null);
                }
            }

            PostaContestServiceClient service = getNewServiceCOL(guidUser);

            var           fileName  = GetRecipent.recipient.fileName;
            List <string> filesName = new List <string>();

            filesName.Add(fileName);

            tipoStampa ts = tipoStampa.colori;

            if (GetRecipent.recipient.tipoStampa)
            {
                ts = tipoStampa.biancoNero;
            }

            fronteRetro fr = fronteRetro.fronte;

            if (GetRecipent.recipient.fronteRetro)
            {
                fr = fronteRetro.fronteRetro;
            }

            Destinatario d = new Destinatario();

            d = GetDestinatarioCOL(GetRecipent.recipient);
            Destinatario[] ld = new Destinatario[1];
            ld[0] = d;
            var request = new InvioRequest();

            var intestazione = new Intestazione();

            intestazione.CodiceContratto = user.CodiceContrattoCOL;
            intestazione.Prodotto        = (GetRecipent.recipient.tipoLettera.ToLower() == "Posta1" ? ProdottoPostaEvo.COL1 : ProdottoPostaEvo.COL4);

            var lettera = new PostaContest();

            lettera.AutoConferma = autoconfirm;
            lettera.Destinatari  = ld;
            lettera.Opzioni      = GetOpzioni(ts, fr);
            lettera.Mittente     = GetMittente(sender, user.businessName);
            lettera.Documenti    = getDoc(filesName, 1);

            request.Intestazione = intestazione;
            request.PostaContest = lettera;

            //BOLLETTINO
            if (GetRecipent.bulletin != null)
            {
                PaginaBollettino pagina = new PaginaBollettino();
                object           b      = null;
                switch (GetRecipent.bulletin.bulletinType)
                {
                case (int)bulletinType.Bollettino451:
                    b = getBollettino451(GetRecipent.bulletin);
                    pagina.Bollettino = (Bollettino451)b;
                    break;

                case (int)bulletinType.Bollettino674:
                    b = getBollettino674(GetRecipent.bulletin);
                    pagina.Bollettino = (Bollettino674)b;
                    break;

                case (int)bulletinType.Bollettino896:
                    b = getBollettino896(GetRecipent.bulletin);
                    pagina.Bollettino = (Bollettino896)b;
                    break;
                }

                PaginaBollettino[] p = new PaginaBollettino[1];
                p[0] = pagina;
                request.PostaContest.Bollettini = p;
            }

            try
            {
                var esito = service.Invio(request);

                if (esito.Esito == EsitoPostaEvo.OK)
                {
                    Thread.Sleep(5000);

                    var req = new ConfermaInvioRequest();
                    req.CodiceContratto = user.CodiceContrattoCOL;
                    req.IdRichiesta     = esito.IdRichiesta;

                    var conferma = service.ConfermaInvio(req);
                    if (conferma.Destinatari == null)
                    {
                        int i = 0;
                        do
                        {
                            Thread.Sleep(5000);
                            conferma = service.ConfermaInvio(req);
                            i++;
                        }while (conferma.Destinatari == null && i < 20);
                    }

                    if (conferma.Esito == EsitoPostaEvo.OK)
                    {
                        n.presaInCaricoDate = conferma.DataAccettazione;
                        n.codice            = conferma.Destinatari[0].NumeroLettera;
                        n.stato             = "Presa in carico Poste";
                        n.currentState      = (int)currentState.PresoInCarico;
                        n.requestId         = esito.IdRichiesta;
                        n.valid             = true;
                        n.presaInCaricoDate = conferma.DataAccettazione;
                    }
                    if (conferma.Esito == EsitoPostaEvo.KO)
                    {
                        n.stato     = "Errore nella conferma di poste. Ritentare l'invio.";
                        n.requestId = null;
                        n.valid     = true;
                    }
                    _context.SaveChanges();
                }
                if (esito.Esito == EsitoPostaEvo.KO)
                {
                    n.stato = "Errore nella validazione di poste";
                    n.valid = false;
                    _context.SaveChanges();
                }
            }
            catch (Exception e)
            {
                n.valid = false;
                n.stato = "Errore nella richiesta del submit.";
                _context.SaveChanges();
                return(n);
            };

            return(n);
        }