Пример #1
0
        private static RaccomandataMarketServiceClient getNewServiceMOL(Guid guidUser)
        {
            //MULTIPLE USERS
            var u = _context.Users.Where(a => a.guidUser == guidUser);

            if (u.Count() == 0)
            {
                return(null);
            }

            var Users = _context.Users.Where(a => a.guidUser == guidUser).SingleOrDefault(a => a.parentId == 0);

            if (Users == null)
            {
                return(null);
            }
            RaccomandataMarketServiceClient service = new RaccomandataMarketServiceClient();

            if (Users.areaTestUser)
            {
                service.ClientCredentials.UserName.UserName = Users.usernamePosteAreaTest;
                service.ClientCredentials.UserName.Password = Users.pwdPosteAreaTest;
            }
            else
            {
                service.ClientCredentials.UserName.UserName = Users.usernamePoste;
                service.ClientCredentials.UserName.Password = Users.pwdPoste;
            }
            return(service);
        }
Пример #2
0
        public string RequestDCS(Guid guidUser, int id)
        {
            var user = _context.Users.Where(a => a.guidUser == guidUser).FirstOrDefault();

            RaccomandataMarketServiceClient service = new RaccomandataMarketServiceClient();

            service = getNewServiceMOL(guidUser);

            var name = _context.Names.SingleOrDefault(a => a.id == id);

            RecuperaDocumentoRequest request = new RecuperaDocumentoRequest();

            request.CodiceContratto = user.CodiceContrattoMOL;
            request.IdRichiesta     = name.requestId;

            var dcs      = service.RecuperaDocumento(request);
            var nameFile = "";

            if (dcs.Esito == EsitoPostaEvo.OK)
            {
                nameFile = "/public/download/" + DateTime.Now.Ticks + ".pdf";
                var path = HttpContext.Current.Server.MapPath(nameFile);
                System.IO.File.WriteAllBytes(path, dcs.Documento.Contenuto);
            }

            return(nameFile);
        }
Пример #3
0
        public ResponseMOLConfirm StateRetriveForCode(string code, Guid guidUser)
        {
            var user = _context.Users.Where(a => a.guidUser == guidUser).FirstOrDefault();

            string[] codes = new string[1];
            codes[0] = code;

            RaccomandataMarketServiceClient service = getNewServiceMOL(guidUser);
            var request = new RecuperaServizioPerNumeroRaccomandataRequest();

            request.CodiceContratto    = user.CodiceContrattoMOL;
            request.NumeroRaccomandate = codes;


            var r = new ResponseMOLConfirm();

            var rs = service.RecuperaServizioPerNumeroRaccomandata(request);

            if (rs.Esito == EsitoPostaEvo.OK)
            {
                //r.EsitoPostaEvo = rs.Esito;
                //r.NumeroRaccomandata = rs.RendicontazioneEsiti[0].CodiceTracciatura.Replace(" ", "");
                //r.DataAccettazione = rs.RendicontazioneEsiti[0].DataAccettazione;

                //var n = _context.Names.SingleOrDefault(a => a.requestId == requestId);
                //n.presaInCaricoDate = rs.RendicontazioneEsiti[0].DataAccettazione;
                //n.codice = rs.RendicontazioneEsiti[0].CodiceTracciatura.Replace(" ", "");
                //_context.SaveChanges();
            }
            return(r);
        }
Пример #4
0
        public ResponseMOLConfirm ResultRetrive(string requestId, Guid guidUser)
        {
            var user = _context.Users.Where(a => a.guidUser == guidUser).FirstOrDefault();

            string[] IdRichieste = new string[1];
            IdRichieste[0] = requestId;

            RaccomandataMarketServiceClient service = getNewServiceMOL(guidUser);
            var request = new RecuperaEsitiPerIdRichiestaRequest();

            request.CodiceContratto = user.CodiceContrattoMOL;
            request.IdRichieste     = IdRichieste;

            var r = new ResponseMOLConfirm();

            var rs = service.RecuperaEsitiPerIdRichiesta(request);

            if (rs.Esito == EsitoPostaEvo.OK)
            {
                r.EsitoPostaEvo      = rs.Esito;
                r.NumeroRaccomandata = rs.RendicontazioneEsiti[0].CodiceTracciatura.Replace(" ", "");
                r.DataAccettazione   = rs.RendicontazioneEsiti[0].DataAccettazione;

                var n = _context.Names.SingleOrDefault(a => a.requestId == requestId);
                n.presaInCaricoDate = rs.RendicontazioneEsiti[0].DataAccettazione;
                n.codice            = rs.RendicontazioneEsiti[0].CodiceTracciatura.Replace(" ", "");
                _context.SaveChanges();
            }
            return(r);
        }
Пример #5
0
        public ResponseMOLState GetState(string requestId, Guid guidUser)
        {
            var user = _context.Users.Where(a => a.guidUser == guidUser).FirstOrDefault();

            string[] IdRichieste = new string[1];
            IdRichieste[0] = requestId;

            RaccomandataMarketServiceClient service = getNewServiceMOL(guidUser);
            var request = new RecuperaStatoRequest();

            request.CodiceContratto = user.CodiceContrattoMOL;
            request.IdRichieste     = IdRichieste;

            var r = new ResponseMOLState();

            var rs = service.RecuperaStato(request);

            if (rs.Esito == EsitoPostaEvo.OK)
            {
                var s = rs.StatoInvii[0];
                r.stato              = s.CodiceStatoRichiesta;
                r.descrizioneStato   = s.DescrizioneStatoRichiesta;
                r.dataUltimaModifica = s.DataUltimaModifica.ToString();

                var l     = GlobalClass.ListOfState();
                var state = l.SingleOrDefault(a => a.identificativo == s.CodiceStatoRichiesta);

                if (state != null)
                {
                    if (state.tipologia.ToUpper() != "DEFINITIVO")
                    {
                        var n = _context.Names.SingleOrDefault(a => a.requestId == requestId);
                        if (!state.state)
                        {
                            n.valid = false;
                        }

                        n.stato = s.DescrizioneStatoRichiesta;
                        _context.SaveChanges();
                    }
                }
            }
            return(r);
        }
Пример #6
0
        public ResponseMOLConfirm Confirm(string requestId, Guid guidUser)
        {
            var user = _context.Users.Where(a => a.guidUser == guidUser).FirstOrDefault();

            var r = new ResponseMOLConfirm();
            RaccomandataMarketServiceClient service = getNewServiceMOL(guidUser);
            var request = new ConfermaInvioRequest();

            request.CodiceContratto = user.CodiceContrattoMOL;
            request.IdRichiesta     = requestId;

            var stato = StateRetrive(requestId, guidUser);

            if (stato.EsitoPostaEvo == EsitoPostaEvo.OK)
            {
                r.DataAccettazione   = (DateTime)stato.DataAccettazione;
                r.NumeroRaccomandata = stato.NumeroRaccomandata.Replace(" ", "");
                r.EsitoPostaEvo      = stato.EsitoPostaEvo;
            }
            else
            {
                var conferma = service.ConfermaInvio(request);
                if (conferma.Esito == EsitoPostaEvo.OK)
                {
                    r.DataAccettazione   = conferma.DataAccettazione;
                    r.NumeroRaccomandata = conferma.DestinatariRaccomandate[0].NumeroRaccomandata;
                    r.EsitoPostaEvo      = conferma.Esito;

                    var n = _context.Names.SingleOrDefault(a => a.requestId == requestId);
                    n.presaInCaricoDate = r.DataAccettazione;
                    n.codice            = r.NumeroRaccomandata;
                    n.stato             = "Presa in carico Postel";
                    n.currentState      = (int)currentState.PresoInCarico;
                    _context.SaveChanges();
                }
            }

            return(r);
        }
Пример #7
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);
                }
            }

            RaccomandataMarketServiceClient service = getNewServiceMOL(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;
            }

            ricevutaRitorno rr = ricevutaRitorno.no;

            if (GetRecipent.recipient.ricevutaRitorno)
            {
                rr = ricevutaRitorno.si;
            }


            Destinatario d = new Destinatario();

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

            var intestazione = new Intestazione();

            intestazione.CodiceContratto = user.CodiceContrattoMOL;
            intestazione.Prodotto        = ProdottoPostaEvo.MOL1;

            var market = new MarketOnline();

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

            if (GetRecipent.recipient.ricevutaRitorno)
            {
                market.DestinatarioAR = GetDestinatarioARMOL(sender);
            }

            request.Intestazione = intestazione;
            request.MarketOnline = market;

            //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.MarketOnline.Bollettini = p;
            }

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

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

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

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

                    if (conferma.Esito == EsitoPostaEvo.OK)
                    {
                        n.presaInCaricoDate = conferma.DataAccettazione;
                        n.codice            = conferma.DestinatariRaccomandate[0].NumeroRaccomandata;
                        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);
        }