Пример #1
0
        public static void UpModels()
        {
            SqlConnection mcon = new SqlConnection("context connection=true");

            try
            {
                idGlobalOperation = DateTime.Now.ToString() + "-" + (new Random(DateTime.Now.Second)).Next().ToString();
                Evento.IdProces   = idGlobalOperation;
                Evento.Pcon       = mcon;
                Evento.SetEvento(DateTime.Now, DateTime.Now, "Inicio del proceso de carga de Modelos");
                Evento.Save();
                string serverName, userMail, mailPass, mailProtocol, subjectLike, fildToexclude, tempDirectory;
                int    port, lastId;
                Evento.SetEvento(DateTime.Now, DateTime.Now, "Obteniendo configuracion");
                Evento.Save();
                GetConfig(out serverName, out userMail, out mailPass, out mailProtocol, out port, out subjectLike, out lastId, out fildToexclude, out tempDirectory);
                Evento.SetEvento(DateTime.Now, DateTime.Now, "Comienzo del proceso de chequeo de mensajes en servidor:" + serverName + " usuario:" + userMail
                                 + " que contegan asunto:" + subjectLike + " desde el elemento:" + lastId.ToString());
                Evento.Save();
                // GetConfig();


                ControlModel cm      = new ControlModel(fildToexclude);
                IMailApi     mailapi = new EAGetMailMailApi(mailProtocol.ToLower() == "pop3"?MailProtocol.pop3 : MailProtocol.imap, lastId);
                cm.ChechMail(mailapi, serverName, userMail, mailPass, port, subjectLike);
                mailapi.Disconnect();
                Evento.SetEvento(DateTime.Now, DateTime.Now, "Cargando Mensajes al Servidor de datos");
                Evento.Save();
                Evento.SetEvento(DateTime.Now, DateTime.Now, "Se detectaron:" + cm.PendToUp.Count.ToString() + " modelos a subir.");
                Evento.Save();
                int  sequecenumber = 0;
                bool firstBnadera  = false;
                while (cm.PendToUp.Count > 0)
                {
                    Modelo vmodel = cm.PendToUp.Dequeue();
                    Evento.SetEvento(DateTime.Now, DateTime.Now, "Subiendo modelo:" + vmodel.Mmodelo + " de " + vmodel.SenderEmail + " mensaje id"
                                     + vmodel.IdOrden.ToString() + " fecha de modelo " + vmodel.Fecha.ToString());
                    Evento.Save();
                    //insertamos el modelos y actulizamos la ultima secuencia para tenr que revisarlo nuevamente
                    InsertModel(vmodel, mcon);
                    Evento.SetEvento(DateTime.Now, DateTime.Now, "Modelo Subido exitosamente");
                    Evento.Save();
                    //---------------------------------------------------
                    Evento.SetEvento(DateTime.Now, DateTime.Now, "actulizando secuencia");
                    Evento.Save();
                    //cuando se completa un mensaje se actuliza para no proecasrlo mas

                    if (sequecenumber < vmodel.IdMensaje)
                    {
                        sequecenumber = vmodel.IdMensaje;
                        SetLastSequenceEmail(sequecenumber, mcon);
                    }

                    Evento.SetEvento(DateTime.Now, DateTime.Now, "secuencia actulizada");
                    Evento.Save();
                }
                Evento.SetEvento(DateTime.Now, DateTime.Now, "chequeando secuencia");
                Evento.Save();
                if (sequecenumber < mailapi.lastMailCheck && mailapi.Messages.Count > 0)
                {
                    sequecenumber = (int)mailapi.lastMailCheck;
                    SetLastSequenceEmail(sequecenumber, mcon);
                    Evento.SetEvento(DateTime.Now, DateTime.Now, "secuencia corregida");
                    Evento.Save();
                }
                Evento.SetEvento(DateTime.Now, DateTime.Now, "Fin del proceso de carga de Modelos");
                Evento.Save();
            }
            catch (Exception ex) {
                Evento.SetEvento(DateTime.Now, DateTime.Now, "!!!Algo ha pasado!!!, detalles:" + ex.Message + ". Desde " + ex.Source + ". Traza" + ex.StackTrace);
                Evento.Save();
            }
        }