예제 #1
0
        public void TryDelete(Messenger mes)
        {
            Exception ex = new MensajeroRepositorio().Delete(mes);

            if (ex != null)
            {
                throw new Exception(ex.Message);
            }
        }
예제 #2
0
        public Exception Delete(Messenger mes)
        {
            //using (SqlConnection conn = sql.GetConnection())
            using (SqlConnection conn = new SQL().GetLocalConnection())
            {
                #region Sql command

                SqlCommand cmd = new SqlCommand(@"DELETE FROM MensajeroLog WHERE FechaEjecucion = @FechaEjecucion AND ExtensionID = @ExtensionID;", conn);

                #endregion

                #region Command Parameteres

                cmd.Parameters.AddWithValue("FechaEjecucion", mes.FechaEjecucion.Date);

                cmd.Parameters.AddWithValue("ExtensionID", mes.ExtensionID);

                #endregion

                conn.Open();

                using (SqlTransaction transaction = conn.BeginTransaction())
                {
                    cmd.Transaction = transaction;

                    try
                    {
                        cmd.ExecuteNonQuery();

                        transaction.Commit();

                        return null;
                    }

                    catch (SqlException ex)
                    {
                        transaction.Rollback();

                        //String errorLog = "Date: " + DateTime.Now.ToLongDateString() + "\r\n NumeroControl:" + solicitud.NumeroControl.NumControlText
                        //    + "\r\n Message: " + ex.Message + "\r\n Source: "
                        //    + ex.Source + "\r\n Stacktrace: " + ex.StackTrace + "\r\n TargetSite: " + ex.TargetSite.ToString() + "\r\n\r\n";

                        //File.WriteAllText("SolicitudInicLog.txt", errorLog);

                        return ex;
                    }
                }
            }
        }
예제 #3
0
        public Exception Create(Messenger mes)
        {
            //using (SqlConnection conn = sql.GetConnection())
            using (SqlConnection conn = new SQL().GetLocalConnection())
            {
                #region Sql command

                SqlCommand cmd = new SqlCommand(@"INSERT INTO MensajeroLog(ExtensionID, FechaEjecucion, NumerosControlSolicitudesDenegadas, 
                                                SolicitudesDenegadas, NumerosControlSolicitudesExpiradas, SolicitudesExpiradas, 
                                                NumerosControlSolicitudesAExpirar, SolicitudesAExpirar, NumerosControlSolicitudesOperadoresSinResponder5,
                                                OperadoresSinResponder5, NumerosControlSolicitudesOperadoresSinResponder7, OperadoresSinResponder7) 
                                                VALUES(@ExtensionID, @FechaEjecucion, @NumerosControlSolicitudesDenegadas, @SolicitudesDenegadas, 
                                                @NumerosControlSolicitudesExpiradas, @SolicitudesExpiradas, @NumerosControlSolicitudesAExpirar,
                                                @SolicitudesAExpirar, @NumerosControlSolicitudesOperadoresSinResponder5, @OperadoresSinResponder5,
                                                @NumerosControlSolicitudesOperadoresSinResponder7, @OperadoresSinResponder7);", conn);

                #endregion

                #region Command Parameteres

                cmd.Parameters.AddWithValue("ExtensionID", mes.ExtensionID);

                cmd.Parameters.AddWithValue("FechaEjecucion", mes.FechaEjecucion);

                cmd.Parameters.AddWithValue("NumerosControlSolicitudesAExpirar", mes.NumerosControlSolicitudesAExpirar);

                cmd.Parameters.AddWithValue("NumerosControlSolicitudesDenegadas", mes.NumerosControlSolicitudesDenegadas);

                cmd.Parameters.AddWithValue("NumerosControlSolicitudesExpiradas", mes.NumerosControlSolicitudesExpiradas);

                cmd.Parameters.AddWithValue("NumerosControlSolicitudesOperadoresSinResponder5", mes.NumerosControlSolicitudesOperadoresSinResponder5);

                cmd.Parameters.AddWithValue("NumerosControlSolicitudesOperadoresSinResponder7", mes.NumerosControlSolicitudesOperadoresSinResponder7);

                cmd.Parameters.AddWithValue("OperadoresSinResponder5", mes.OperadoresSinResponder5);

                cmd.Parameters.AddWithValue("OperadoresSinResponder7", mes.OperadoresSinResponder7);

                cmd.Parameters.AddWithValue("SolicitudesAExpirar", mes.SolicitudesAExpirar);

                cmd.Parameters.AddWithValue("SolicitudesDenegadas", mes.SolicitudesDenegadas);

                cmd.Parameters.AddWithValue("SolicitudesExpiradas", mes.SolicitudesExpiradas);

                #endregion

                conn.Open();

                using (SqlTransaction transaction = conn.BeginTransaction())
                {
                    cmd.Transaction = transaction;

                    try
                    {
                        cmd.ExecuteNonQuery();

                        transaction.Commit();

                        return null;
                    }

                    catch (SqlException ex)
                    {
                        transaction.Rollback();

                        //String errorLog = "Date: " + DateTime.Now.ToLongDateString() + "\r\n NumeroControl:" + solicitud.NumeroControl.NumControlText
                        //    + "\r\n Message: " + ex.Message + "\r\n Source: "
                        //    + ex.Source + "\r\n Stacktrace: " + ex.StackTrace + "\r\n TargetSite: " + ex.TargetSite.ToString() + "\r\n\r\n";

                        //File.WriteAllText("SolicitudInicLog.txt", errorLog);

                        return ex;
                    }
                }
            }
        }
예제 #4
0
        protected void Page_Load(object sender, EventArgs e)
        {
            User user = Session["UserObj"] == null ? new User() : (User)Session["UserObj"];

            if (!user.Rol.VerMensajero)
            {
                Response.Redirect("~/Default.aspx");
            }

            var title = (HtmlGenericControl)Master.FindControl("pageTitleSpan");

            

            title.InnerText = Title;

            if (!IsPostBack)
            {
                if (string.IsNullOrEmpty(Request.QueryString["ShouldNotExecute"]))
                {
                    #region Execute mensajero

                    LinkedList<SolicitudAviso> solicitudesIniciales = new SolicitudesInicialesServicio().GetSolicitudes(),
                                ext1 = new PrimerasExtensionesServicio().GetPrimerasExtensiones(),
                                ext2 = new SegundasExtensionesServicio().GetSegundasExtensiones();

                    int denegadasCounter = 0,
                        solicitudesAExpirarCounter = 0,
                        solicitudesRecienExpiradasCounter = 0,
                        denegadasExt1Counter = 0,
                        ext1AExpirarCounter = 0,
                        ext1RecienExpiradasCounter = 0,
                        denegadasExt2Counter = 0,
                        ext2AExpirarCounter = 0,
                        ext2RecienExpiradasCounter = 0;
                    //operadoresSinResponderCincoDiasCounter = 0,
                    //operadoresSinResponderSieteDiasCounter = 0;

                    LinkedList<string> to = new LinkedList<string>();

                    //to.AddLast("*****@*****.**"); //only test

                    LinkedList<Mail> mails = new MailServicio().GetMailMsgs();

                    #region Inicial

                    Messenger mesInicial = new Messenger();

                    foreach (var s in solicitudesIniciales)
                    {
                        s.EstatusId = s.EstatusId.Replace(s.LetraStatus, string.Empty);

                        to = new LinkedList<string>();

                        to.AddLast(s.Usuario.Email);

                        #region Docs still incompletos after 48hrs

                        DateTime fechaDocsIncompletos = s.FechaDocsIncompletos;
                        //fechaDenegarDocsIncompletos = fechaDocsIncompletos.AddHours(48);

                        if (s.FechaDocsIncompletos.Date.AddHours(48) <= DateTime.Now.Date
                                && s.EstatusId.Equals(((int)SolicitudAviso.Estatus.PendienteDocumentosIncompletos).ToString()))
                        {
                            s.EstatusId = s.LetraStatus + ((int)SolicitudAviso.Estatus.Denegada).ToString();

                            new SolicitudesInicialesServicio().TryUpdate(s);

                            denegadasCounter++;

                            //to.AddLast(currentUser.Email);

                            numControlDenegadasTxtBx.Text += string.Format("{0} ", s.NumeroControl.NumControlText);                            

                            //to = new LinkedList<string>();

                            //SendEmail(to, "", "", "");

                            //SendEmail(to, "*****@*****.**", "Aviso", "Aviso fue denegado, pasaron 48 dias"); //only foor test

                            try
                            {
                                if (CheckForInternetConnection())
                                    SendEmail(to, "*****@*****.**",
                            mails.ElementAt((int)Mail.Notifications.SolicitudDenegada).Subject,
                            mails.ElementAt((int)Mail.Notifications.SolicitudDenegada).Body.Replace(
                            "@NumControl", s.NumeroControl.NumControlText).Replace("@NombreEmpresa", s.NombreEmpresa));
                            }// only test

                            catch (Exception ex)
                            { }

                            mesInicial.NumerosControlSolicitudesDenegadas += string.Format("{0},", numControlDenegadasTxtBx.Text);

                            mesInicial.SolicitudesDenegadas = denegadasCounter;
                        }

                        #endregion

                        SolicitudAviso primeraExt = new PrimerasExtensionesServicio().GetPrimeraExtension(s.NumeroControl);

                        #region Verifica solicitudes apuntos de expirar sin extensiones
                        //var fechaExpiracion = s.FechaExpiracion.AddDays(-4);

                        if (s.FechaExpiracion.Date.AddDays(-5).Equals(DateTime.Now.Date))
                        {
                            if (string.IsNullOrEmpty(primeraExt.NumeroControl.NumControlText))
                            {
                                //to = new LinkedList<string>();

                                //SendEmail(to, "", "", "");

                                //SendEmail(to, "*****@*****.**", "Aviso", "Aviso apunto de expirar sin extension"); //only foor test

                                try
                                {
                                    if (CheckForInternetConnection())
                                        SendEmail(to, "*****@*****.**",
                            mails.ElementAt((int)Mail.Notifications.SolicitudExpira5).Subject,
                            mails.ElementAt((int)Mail.Notifications.SolicitudExpira5).Body.Replace(
                            "@NumControl", s.NumeroControl.NumControlText).Replace("@NombreEmpresa", s.NombreEmpresa));
                                }// only test

                                catch (Exception ex)
                                { }

                                numControlEnRangoExpTxtBx.Text += string.Format("{0} ", s.NumeroControl.NumControlText);

                                solicitudesAExpirarCounter++;

                                mesInicial.NumerosControlSolicitudesAExpirar += string.Format("{0},", s.NumeroControl.NumControlText);

                                mesInicial.SolicitudesAExpirar = solicitudesAExpirarCounter;
                            }
                        }
                        #endregion

                        #region Verifica solicitudes recien expiradas
                        if (s.FechaExpiracion.Date == (DateTime.Now.Date)
                            && (!s.EstatusId.Equals(((int)SolicitudAviso.Estatus.Inactiva).ToString())
                            && !s.EstatusId.Equals(((int)SolicitudAviso.Estatus.InspeccionCompletada).ToString())))
                        {
                            s.EstatusId = s.LetraStatus + ((int)SolicitudAviso.Estatus.Inactiva).ToString();

                            new SolicitudesInicialesServicio().TryUpdate(s);

                            numControlRecienExpTxtBx.Text += string.Format("{0} ", s.NumeroControl.NumControlText);

                            solicitudesRecienExpiradasCounter++;

                            mesInicial.NumerosControlSolicitudesExpiradas += string.Format("{0},", s.NumeroControl.NumControlText);

                            mesInicial.SolicitudesExpiradas = solicitudesRecienExpiradasCounter;
                        }
                        #endregion

                        #region Verificar por operadores sin responder

                        var operadores = new SolicitudesInicialesServicio().GetOperadores();

                        var respuestas = new RespuestasServicio().GetRespuestas(s.NumeroControl);

                        var municipios = new SolicitudesInicialesServicio().GetMunicipios();

                        string municipio = municipios.ElementAt(s.MunicipioIdTrab - 1);                        

                        int respuestaCounter = 0;

                        foreach (var o in operadores)
                        {
                            respuestaCounter = 0;

                            //Check si respondio
                            foreach (var r in respuestas)
                            {
                                if (o.OperadorId == r.Operador.OperadorId)
                                {
                                    respuestaCounter = 1;

                                    break;
                                }
                            }

                            if (respuestaCounter == 0)
                            {
                                if (!string.IsNullOrWhiteSpace(s.FechaRespuestaSolicitadas))
                                {
                                    to = new LinkedList<string>();

                                    to.AddLast(o.Email); 

                                    //DateTime fechaRespuestaSolicitadasCinco = Convert.ToDateTime(s.FechaRespuestaSolicitadas).AddDays(-5),
                                    //         fechaRespuestaSolicitadasSiete = Convert.ToDateTime(s.FechaRespuestaSolicitadas).AddDays(-7);

                                    //var daysPast = DateTime.Now.Date - DateTime.Now.Date;

                                    DateTime fechaAResponder5 = ValidarFecha(5, Convert.ToDateTime(s.FechaRespuestaSolicitadas)).Date, //Se usa para comparacion de fecha con la del aviso aprobado. 
                                        fechaAResponder7 = ValidarFecha(7, Convert.ToDateTime(s.FechaRespuestaSolicitadas)).Date;

                                    if (DateTime.Now.Date.Equals(fechaAResponder5))
                                    {
                                        //to = new LinkedList<string>();

                                        //SendEmail(to, "", "", "");

                                        //SendEmail(to, "*****@*****.**", "Aviso", "Pasaron 5 dias desde que se envio aviso, Sr. operador"); //only foor test

                                        try
                                        {
                                            if (CheckForInternetConnection())
                                                SendEmail(to, "*****@*****.**",
                            mails.ElementAt((int)Mail.Notifications.OperadorSinRespuesta5).Subject.Replace("@Pueblo", municipio),
                            mails.ElementAt((int)Mail.Notifications.OperadorSinRespuesta5).Body.Replace(
                            "@NumControl", s.NumeroControl.NumControlText).Replace("@NombreEmpresa", s.NombreEmpresa).Replace(
                            "@Link", "cced.dtop.gov.pr/exc/Logic/RespuestasAvisos.aspx?RespuestaNumControl=" + s.NumeroControl.NumControlText));
                                        }

                                        catch (Exception ex)
                                        {
                                            if (ex.Message == "")
                                            {
                                                
                                            }
                                        }// only test

                                        //operadoresSinResponderCincoDiasCounter++;

                                        //mesInicial.OperadoresSinResponder5 = operadoresSinResponderCincoDiasCounter;

                                        //Don't duplicate same value on txtbx
                                        if (!numControlRangoCincoNRespuestasTxtBx.Text.Contains(s.NumeroControl.NumControlText))
                                        {
                                            numControlRangoCincoNRespuestasTxtBx.Text += string.Format("{0} ", s.NumeroControl.NumControlText);

                                            mesInicial.NumerosControlSolicitudesOperadoresSinResponder5 = string.Format("{0},", s.NumeroControl.NumControlText);
                                        }
                                    }

                                    else if (DateTime.Now.Date.Equals(fechaAResponder7))
                                    {
                                        //to = new LinkedList<string>();

                                        //SendEmail(to, "", "", "");

                                        //SendEmail(to, "*****@*****.**", "Aviso", "Pasaron 7 dias desde que se envio aviso, Sr. operador"); //only foor test

                                        try
                                        {
                                            if (CheckForInternetConnection())
                                                SendEmail(to, "*****@*****.**",
                            mails.ElementAt((int)Mail.Notifications.OperadorSinRespuesta48).Subject.Replace("@Pueblo", municipio),
                            mails.ElementAt((int)Mail.Notifications.OperadorSinRespuesta48).Body.Replace(
                            "@NumControl", s.NumeroControl.NumControlText).Replace("@NombreEmpresa", s.NombreEmpresa).Replace(
                            "@Link", "cced.dtop.gov.pr/exc/Logic/RespuestasAvisos.aspx?RespuestaNumControl=" + s.NumeroControl.NumControlText)); // only test
                                        }

                                        catch (Exception ex)
                                        { }
                                        //operadoresSinResponderSieteDiasCounter++;

                                        //mesInicial.OperadoresSinResponder7 = operadoresSinResponderSieteDiasCounter;

                                        //Don't duplicate same value on txtbx
                                        if (!numControlRangoSieteNRespuestasTxtBx.Text.Contains(s.NumeroControl.NumControlText))
                                        {
                                            numControlRangoSieteNRespuestasTxtBx.Text += string.Format("{0} ", s.NumeroControl.NumControlText);

                                            mesInicial.NumerosControlSolicitudesOperadoresSinResponder7 += string.Format("{0},", s.NumeroControl.NumControlText);
                                        }
                                    }
                                }

                                else
                                {

                                }
                            }
                        }

                        #endregion
                    }

                    denegadasTxtBx.Text = denegadasCounter.ToString();

                    enRangoExpiracionTxtBx.Text = solicitudesAExpirarCounter.ToString();

                    recienExpiradasTxtBx.Text = solicitudesRecienExpiradasCounter.ToString();

                    //enRangocincoNoRespuestasTxtBx.Text = operadoresSinResponderCincoDiasCounter.ToString();

                    //enRangoSieteNoRespuestasTxtBx.Text = operadoresSinResponderSieteDiasCounter.ToString();

                    mesInicial.FechaEjecucion = DateTime.Now.Date;

                    mesInicial.ExtensionID = (int)SolicitudAviso.TiposExtensiones.Inicial;

                    try
                    {
                        new MensajeroServicio().TryCreate(mesInicial);
                    }

                    catch (Exception ex)
                    {
                    }

                    #endregion

                    #region Ext1

                    Messenger mesExt1 = new Messenger();

                    foreach (var ex in ext1)
                    {
                        to = new LinkedList<string>();

                        ex.EstatusId = ex.EstatusId.Replace(ex.LetraStatus, string.Empty);

                        to.AddLast(ex.Usuario.Email);

                        //LinkedList<string> to = new LinkedList<string>();

                        //User currentUser = new SolicitudesInicialesServicio().GetUser(ex.Usuario.Id);

                        User currentUser = new SolicitudesInicialesServicio().GetUser(ex.Usuario.Email);

                        #region Docs still incompletos after 48hrs

                        DateTime fechaDocsIncompletos = ex.FechaDocsIncompletos;
                        //fechaDenegarDocsIncompletos = fechaDocsIncompletos.AddHours(48);

                        if (ex.FechaDocsIncompletos.Date >= (DateTime.Now.Date.AddHours(48))
                                && ex.EstatusId.Equals(((int)SolicitudAviso.Estatus.PendienteDocumentosIncompletos).ToString()))
                        {
                            ex.EstatusId = ex.LetraStatus + ((int)SolicitudAviso.Estatus.Denegada).ToString();

                            new SolicitudesInicialesServicio().TryUpdate(ex);

                            denegadasExt1Counter++;

                            mesExt1.SolicitudesDenegadas = denegadasExt1Counter;

                            //to.AddLast(currentUser.Email);

                            numControlDenegadasExt1TxtBx.Text += string.Format("{0} ", ex.NumeroControl.NumControlText);

                            mesExt1.NumerosControlSolicitudesDenegadas += string.Format("{0},", ex.NumeroControl.NumControlText);

                            //to = new LinkedList<string>();

                            //SendEmail(to, "", "", "");

                            //SendEmail(to, "*****@*****.**", "Aviso", "Aviso fue denegado, pasaron 48 dias"); //only foor test

                            try
                            {
                                if (CheckForInternetConnection())
                                    SendEmail(to, "*****@*****.**",
                            mails.ElementAt((int)Mail.Notifications.ExtensionDenegada).Subject,
                            mails.ElementAt((int)Mail.Notifications.ExtensionDenegada).Body.Replace(
                            "@NumControl", ex.NumeroControl.NumControlText).Replace("@NombreEmpresa", ex.NombreEmpresa)); // only test
                            }

                            catch (Exception exc)
                            { }

                        }

                        #endregion

                        SolicitudAviso segundaExtExistente = new SegundasExtensionesServicio().GetSegundaExtension(ex.NumeroControl);

                        #region Verifica solicitudes apuntos de expirar sin extensiones
                        //var fechaExpiracion = s.FechaExpiracion.AddDays(-4);

                        if (ex.FechaExpiracion.Date.Equals(DateTime.Now.Date.AddDays(-5)))
                        {
                            if (string.IsNullOrEmpty(segundaExtExistente.NumeroControl.NumControlText))
                            {
                                //to = new LinkedList<string>();

                                //SendEmail(to, "", "", "");

                                //SendEmail(to, "*****@*****.**", "Aviso", "Aviso apunto de expirar sin extension"); //only foor test

                                try
                                {
                                    if (CheckForInternetConnection())
                                        SendEmail(to, "*****@*****.**",
                            mails.ElementAt((int)Mail.Notifications.ExtensionExpira5).Subject,
                            mails.ElementAt((int)Mail.Notifications.ExtensionExpira5).Body.Replace(
                            "@NumControl", ex.NumeroControl.NumControlText).Replace("@NombreEmpresa", ex.NombreEmpresa)); // only test
                                }

                                catch (Exception exc)
                                { }

                                numControlAExpirarExt1TxtBx.Text += string.Format("{0} ", ex.NumeroControl.NumControlText);

                                mesExt1.NumerosControlSolicitudesAExpirar += string.Format("{0}, ", ex.NumeroControl.NumControlText);

                                mesExt1.SolicitudesAExpirar = ext1AExpirarCounter;

                                ext1AExpirarCounter++;


                            }
                        }
                        #endregion

                        #region Verifica solicitudes recien expiradas
                        if (ex.FechaExpiracion.Date == (DateTime.Now.Date)
                            && (!ex.EstatusId.Equals(((int)SolicitudAviso.Estatus.Inactiva).ToString())
                            && !ex.EstatusId.Equals(((int)SolicitudAviso.Estatus.InspeccionCompletada).ToString())))
                        {
                            ex.EstatusId = ex.LetraStatus + ((int)SolicitudAviso.Estatus.Inactiva).ToString();

                            new SolicitudesInicialesServicio().TryUpdate(ex);

                            numControlRecienExpiradasExt1TxtBx.Text += string.Format("{0} ", ex.NumeroControl.NumControlText);

                            ext1RecienExpiradasCounter++;

                            mesExt1.SolicitudesExpiradas = ext1RecienExpiradasCounter;

                            mesExt1.NumerosControlSolicitudesAExpirar += string.Format("{0}, ", ex.NumeroControl.NumControlText);

                        }
                        #endregion
                    }

                    denegadasExt1TxtBx.Text = denegadasExt1Counter.ToString();

                    aExpirarExt1TxtBx.Text = ext1AExpirarCounter.ToString();

                    recienExpiradasExt1TxtBx.Text = ext1RecienExpiradasCounter.ToString();

                    mesExt1.FechaEjecucion = DateTime.Now.Date;

                    mesExt1.ExtensionID = (int)SolicitudAviso.TiposExtensiones.Primera;

                    try
                    {
                        new MensajeroServicio().TryCreate(mesExt1);
                    }

                    catch (Exception exc)
                    {
                    }

                    #endregion

                    #region Ext2

                    Messenger mesExt2 = new Messenger();

                    foreach (var ex in ext2)
                    {
                        to = new LinkedList<string>();

                        ex.EstatusId = ex.EstatusId.Replace(ex.LetraStatus, string.Empty);

                        to.AddLast(ex.Usuario.Email);

                        //LinkedList<string> to = new LinkedList<string>();

                        //User currentUser = new SolicitudesInicialesServicio().GetUser(ex.Usuario.Id);

                        User currentUser = new SolicitudesInicialesServicio().GetUser(ex.Usuario.Email);

                        #region Docs still incompletos after 48hrs

                        DateTime fechaDocsIncompletos = ex.FechaDocsIncompletos;
                        //fechaDenegarDocsIncompletos = fechaDocsIncompletos.AddHours(48);

                        if (ex.FechaDocsIncompletos.Date >= (DateTime.Now.Date.AddHours(48))
                                && ex.EstatusId.Equals(((int)SolicitudAviso.Estatus.PendienteDocumentosIncompletos).ToString()))
                        {
                            ex.EstatusId = ex.LetraStatus + ((int)SolicitudAviso.Estatus.Denegada).ToString();

                            new SolicitudesInicialesServicio().TryUpdate(ex);

                            denegadasExt2Counter++;

                            mesExt2.SolicitudesDenegadas = denegadasExt2Counter;

                            //to.AddLast(currentUser.Email);

                            numControlDenegadasExt2TxtBx.Text += string.Format("{0} ", ex.NumeroControl.NumControlText);

                            mesExt2.NumerosControlSolicitudesDenegadas = string.Format("{0} ", ex.NumeroControl.NumControlText);

                            //to = new LinkedList<string>();

                            //SendEmail(to, "", "", "");

                            //SendEmail(to, "*****@*****.**", "Aviso", "Aviso fue denegado, pasaron 48 dias"); //only foor test

                            try
                            {
                                if (CheckForInternetConnection())
                                    SendEmail(to, "*****@*****.**",
                            mails.ElementAt((int)Mail.Notifications.ExtensionDenegada).Subject,
                            mails.ElementAt((int)Mail.Notifications.ExtensionDenegada).Body.Replace(
                            "@NumControl", ex.NumeroControl.NumControlText).Replace("@NombreEmpresa", ex.NombreEmpresa)); // only test
                            }

                            catch (Exception exc)
                            { }
                        }

                        #endregion

                        #region Verifica solicitudes apuntos de expirar
                        //var fechaExpiracion = s.FechaExpiracion.AddDays(-4);

                        if (ex.FechaExpiracion.Date.Equals(DateTime.Now.Date.AddDays(-5)))
                        {
                            //to = new LinkedList<string>();

                            //SendEmail(to, "", "", "");

                            //SendEmail(to, "*****@*****.**", "Aviso", "Aviso apunto de expirar sin extension"); //only foor test

                            try
                            {
                                if (CheckForInternetConnection())
                                    SendEmail(to, "*****@*****.**",
                            mails.ElementAt((int)Mail.Notifications.ExtensionExpira5).Subject,
                            mails.ElementAt((int)Mail.Notifications.ExtensionExpira5).Body.Replace(
                            "@NumControl", ex.NumeroControl.NumControlText).Replace("@NombreEmpresa", ex.NombreEmpresa)); // only test
                            }

                            catch (Exception exc)
                            { }

                            numControlAExpirarExt2TxtBx.Text += string.Format("{0} ", ex.NumeroControl.NumControlText);

                            mesExt2.NumerosControlSolicitudesAExpirar = string.Format("{0}, ", ex.NumeroControl.NumControlText);

                            ext2AExpirarCounter++;

                        }
                        #endregion

                        #region Verifica solicitudes recien expiradas
                        if (ex.FechaExpiracion.Date == (DateTime.Now.Date)
                            && (!ex.EstatusId.Equals(((int)SolicitudAviso.Estatus.Inactiva).ToString())
                            && !ex.EstatusId.Equals(((int)SolicitudAviso.Estatus.InspeccionCompletada).ToString())))
                        {
                            ex.EstatusId = ex.LetraStatus + ((int)SolicitudAviso.Estatus.Inactiva).ToString();

                            new SolicitudesInicialesServicio().TryUpdate(ex);

                            numControlRecienExpiradasExt2TxtBx.Text += string.Format("{0} ", ex.NumeroControl.NumControlText);

                            mesExt2.NumerosControlSolicitudesExpiradas += string.Format("{0}, ", ex.NumeroControl.NumControlText);

                            ext2RecienExpiradasCounter++;

                            mesExt2.SolicitudesExpiradas = ext2AExpirarCounter;
                        }
                        #endregion
                    }

                    denegadasExt2TxtBx.Text = denegadasExt2Counter.ToString();

                    aExpirarExt2TxtBx.Text = ext2AExpirarCounter.ToString();

                    recienExpiradasExt2TxtBx.Text = ext2RecienExpiradasCounter.ToString();

                    mesExt2.FechaEjecucion = DateTime.Now.Date;

                    mesExt2.ExtensionID = (int)SolicitudAviso.TiposExtensiones.Primera;

                    try
                    {
                        new MensajeroServicio().TryCreate(mesExt2);
                    }

                    catch (Exception exc)
                    {
                    }

                    #endregion

                    #endregion
                }
            }

            else
            {
                //DateTime fechaExe = Convert.ToDateTime(Request.QueryString["fechaExe"].Replace("%2f", "/"));

                //fechaEjecucionTxtBx.Text = fechaExe.ToShortDateString();

                //DateTime fecha = new DateTime(1900,1,1);

                if (!string.IsNullOrWhiteSpace(fechaEjecucionTxtBx.Text))
                {
                    //fecha = Convert.ToDateTime(fechaEjecucionTxtBx.Text);

                    LinkedList<Messenger> messengerExistente = new MensajeroServicio().GetMessengerData(Convert.ToDateTime(fechaEjecucionTxtBx.Text));

                    if (messengerExistente.Count > 0)
                    {
                        #region Get data and fill
                        foreach (var m in messengerExistente)
                        {
                            switch (m.ExtensionID)
                            {
                                case (int)SolicitudAviso.TiposExtensiones.Segunda:

                                    aExpirarExt2TxtBx.Text = m.SolicitudesAExpirar.ToString();

                                    denegadasExt2TxtBx.Text = m.SolicitudesDenegadas.ToString();

                                    numControlAExpirarExt2TxtBx.Text = m.NumerosControlSolicitudesAExpirar;

                                    numControlDenegadasExt2TxtBx.Text = m.NumerosControlSolicitudesDenegadas;

                                    numControlRecienExpiradasExt2TxtBx.Text = m.NumerosControlSolicitudesExpiradas;

                                    recienExpiradasExt2TxtBx.Text = m.SolicitudesExpiradas.ToString();

                                    break;

                                case (int)SolicitudAviso.TiposExtensiones.Primera:

                                    aExpirarExt1TxtBx.Text = m.SolicitudesAExpirar.ToString();

                                    denegadasExt1TxtBx.Text = m.SolicitudesDenegadas.ToString();

                                    numControlAExpirarExt1TxtBx.Text = m.NumerosControlSolicitudesAExpirar;

                                    numControlDenegadasExt1TxtBx.Text = m.NumerosControlSolicitudesDenegadas;

                                    numControlRecienExpiradasExt1TxtBx.Text = m.NumerosControlSolicitudesExpiradas;

                                    recienExpiradasExt1TxtBx.Text = m.SolicitudesExpiradas.ToString();

                                    break;

                                default:

                                    recienExpiradasTxtBx.Text = m.SolicitudesExpiradas.ToString();

                                    numControlRecienExpTxtBx.Text = m.NumerosControlSolicitudesExpiradas;

                                    denegadasTxtBx.Text = m.SolicitudesDenegadas.ToString();

                                    numControlDenegadasTxtBx.Text = m.NumerosControlSolicitudesDenegadas;

                                    enRangoExpiracionTxtBx.Text = m.SolicitudesAExpirar.ToString();

                                    numControlEnRangoExpTxtBx.Text = m.NumerosControlSolicitudesAExpirar;

                                    //enRangocincoNoRespuestasTxtBx.Text = m.OperadoresSinResponder5.ToString();

                                    numControlRangoCincoNRespuestasTxtBx.Text = m.NumerosControlSolicitudesOperadoresSinResponder5;

                                    numControlRangoSieteNRespuestasTxtBx.Text = m.NumerosControlSolicitudesOperadoresSinResponder7;

                                    //enRangoSieteNoRespuestasTxtBx.Text = m.OperadoresSinResponder7.ToString();

                                    break;
                            }
                        }
                        #endregion
                    }

                    else
                    {
                        Response.Redirect("Mensajero.aspx?ShouldNotExecute=false");
                    }
                }
            }

        }