public beMonitoreo SenalExtraData(SqlConnection con, int ahid)
        {
            SqlCommand cmd = new SqlCommand("sp_get_data_senal", con);

            cmd.CommandType = CommandType.StoredProcedure;

            SqlParameter param1 = cmd.Parameters.Add("@AlarmHistoryID", SqlDbType.Int);

            param1.Direction = ParameterDirection.Input;
            param1.Value     = ahid;

            SqlDataReader drd          = cmd.ExecuteReader();
            beMonitoreo   obeMonitoreo = null;
            List <beContactoSeguridad> lbeContactoSeguridad = null;
            List <beContactoLocacion>  lbeContactoLocacion  = null;
            List <beEmergencia>        lbeEmergencia        = null;

            if (drd != null)
            {
                obeMonitoreo = new beMonitoreo();
                int NombreContact   = drd.GetOrdinal("NombreContact");
                int ApePatContact   = drd.GetOrdinal("ApePatContact");
                int ApeMatContact   = drd.GetOrdinal("ApeMatContact");
                int CargoContact    = drd.GetOrdinal("CargoContact");
                int TelefonoContact = drd.GetOrdinal("TelefonoContact");
                lbeContactoSeguridad = new List <beContactoSeguridad>();
                beContactoSeguridad obeContactoSeguridad;
                while (drd.Read())
                {
                    obeContactoSeguridad = new beContactoSeguridad();
                    obeContactoSeguridad.NombreContact   = drd.GetString(NombreContact);
                    obeContactoSeguridad.ApePatContact   = drd.GetString(ApePatContact);
                    obeContactoSeguridad.ApeMatContact   = drd.GetString(ApeMatContact);
                    obeContactoSeguridad.CargoContact    = drd.GetString(CargoContact);
                    obeContactoSeguridad.TelefonoContact = drd.GetString(TelefonoContact);
                    lbeContactoSeguridad.Add(obeContactoSeguridad);
                }
                if (drd.NextResult())
                {
                    int pCsid        = drd.GetOrdinal("Csid");
                    int pName        = drd.GetOrdinal("Name");
                    int pTitle       = drd.GetOrdinal("Title");
                    int pPhoneNumber = drd.GetOrdinal("PhoneNumber");

                    lbeContactoLocacion = new List <beContactoLocacion>();
                    beContactoLocacion obeContactoLocacion;
                    while (drd.Read())
                    {
                        obeContactoLocacion             = new beContactoLocacion();
                        obeContactoLocacion.Csid        = drd.GetString(pCsid);
                        obeContactoLocacion.Name        = drd.GetString(pName);
                        obeContactoLocacion.Title       = drd.GetString(pTitle);
                        obeContactoLocacion.PhoneNumber = drd.GetString(pPhoneNumber);
                        lbeContactoLocacion.Add(obeContactoLocacion);
                    }
                    if (drd.NextResult())
                    {
                        int idCategoria        = drd.GetOrdinal("idCategoria");
                        int alarmhistoryid     = drd.GetOrdinal("alarmhistoryid");
                        int identidad          = drd.GetOrdinal("RecordType");
                        int nomentidad         = drd.GetOrdinal("nomentidad");
                        int telefono01         = drd.GetOrdinal("telefono01");
                        int telefono02         = drd.GetOrdinal("telefono02");
                        int horarequerimiento  = drd.GetOrdinal("DateTimeOccurred");
                        int horaarribo         = drd.GetOrdinal("horaarribo");
                        int nroidenpersontrans = drd.GetOrdinal("IdPersonaUnidad");
                        int nomresponsable     = drd.GetOrdinal("Responsable");
                        int observacion        = drd.GetOrdinal("OperatorNote");
                        int idMotivo           = drd.GetOrdinal("MotivoId");
                        int nomMotivo          = drd.GetOrdinal("sNomMotivo");

                        lbeEmergencia = new List <beEmergencia>();
                        beEmergencia obeEmergencia;
                        while (drd.Read())
                        {
                            obeEmergencia                    = new beEmergencia();
                            obeEmergencia.IdCategoria        = drd.GetInt32(idCategoria);
                            obeEmergencia.alarmhistoryid     = drd.GetInt32(alarmhistoryid);
                            obeEmergencia.identidad          = drd.GetInt32(identidad);
                            obeEmergencia.nomentidad         = drd.GetString(nomentidad);
                            obeEmergencia.telefono01         = drd.GetString(telefono01);
                            obeEmergencia.telefono02         = drd.GetString(telefono02);
                            obeEmergencia.horarequerimiento  = drd.GetDateTime(horarequerimiento).ToString("dd/MM/yyyy HH:mm:ss");
                            obeEmergencia.horaarribo         = drd.GetString(horaarribo);
                            obeEmergencia.nroidenpersontrans = drd.GetString(nroidenpersontrans);
                            obeEmergencia.nomresponsable     = drd.GetString(nomresponsable);
                            obeEmergencia.Observacion        = drd.GetString(observacion);
                            obeEmergencia.idMotivo           = drd.GetInt32(idMotivo);
                            obeEmergencia.nomMotivo          = drd.GetString(nomMotivo);
                            lbeEmergencia.Add(obeEmergencia);
                        }
                    }
                }
                drd.Close();
                obeMonitoreo.obeSenal             = null;
                obeMonitoreo.lstContactoSeguridad = lbeContactoSeguridad;
                obeMonitoreo.lstContactoLocacion  = lbeContactoLocacion;
                obeMonitoreo.lstEmergencia        = lbeEmergencia;
            }
            return(obeMonitoreo);
        }
        public beMonitoreo MensajeAlarma(SqlConnection con, string user, short perfil)
        {
            SqlCommand cmd = new SqlCommand("Sp_get_senal_pendiente", con);

            cmd.CommandType = CommandType.StoredProcedure;

            SqlParameter param1 = cmd.Parameters.Add("@user", SqlDbType.VarChar, 10);

            param1.Direction = ParameterDirection.Input;
            param1.Value     = user;

            SqlParameter param2 = cmd.Parameters.Add("@profile", SqlDbType.SmallInt);

            param2.Direction = ParameterDirection.Input;
            param2.Value     = perfil;

            SqlDataReader drd          = cmd.ExecuteReader();
            beMonitoreo   obeMonitoreo = null;

            if (drd != null)
            {
                obeMonitoreo = new beMonitoreo();
                int Descripcion      = drd.GetOrdinal("Descripcion");
                int CSID             = drd.GetOrdinal("CSID");
                int SignalIdentifier = drd.GetOrdinal("SignalIdentifier");
                int PhysicalZone     = drd.GetOrdinal("PhysicalZone");
                int AlarmHistoryID   = drd.GetOrdinal("AlarmHistoryID");
                int SubscriberName   = drd.GetOrdinal("SubscriberName");
                int DealerName       = drd.GetOrdinal("DealerName");
                int Direccion        = drd.GetOrdinal("Direccion");
                int Atencion         = drd.GetOrdinal("Atencion");
                int Fecha            = drd.GetOrdinal("Fecha");
                int FechaA           = drd.GetOrdinal("FechaAssigned");
                int Telfonopri       = drd.GetOrdinal("Telfonopri");
                int Telfonopriext    = drd.GetOrdinal("Telfonopriext");
                int Telfonoalt1      = drd.GetOrdinal("Telfonoalt1");
                int Telfonoalt1ext   = drd.GetOrdinal("Telefonoalt1ext");
                int Telfonoalt2      = drd.GetOrdinal("Telfonoalt2");
                int Telfonoalt2ext   = drd.GetOrdinal("Telefonoalt2ext");
                int Alarmcode        = drd.GetOrdinal("Alarmcode");
                int Nomzona          = drd.GetOrdinal("Nomzona");
                int Tipoevento       = drd.GetOrdinal("Tipoevento");
                int Usuario          = drd.GetOrdinal("Usuario");
                int TipoParticiondes = drd.GetOrdinal("TipoParticiondes");

                beSenal obeSenal = null;
                List <beContactoSeguridad> lbeContactoSeguridad = null;
                List <beContactoLocacion>  lbeContactoLocacion  = null;
                List <beEmergencia>        lbeEmergencia        = null;
                if (drd.HasRows)
                {
                    drd.Read();
                    obeSenal                  = new beSenal();
                    obeSenal.Descripcion      = drd.GetString(Descripcion);
                    obeSenal.AbndCode         = drd.GetString(CSID);
                    obeSenal.SignalIdentifier = drd.GetString(SignalIdentifier);
                    obeSenal.PhysicalZone     = drd.GetString(PhysicalZone);
                    obeSenal.AlarmHistoryID   = drd.GetInt32(AlarmHistoryID);
                    obeSenal.Oficina          = drd.GetString(SubscriberName);
                    obeSenal.DealerName       = drd.GetString(DealerName);
                    obeSenal.Direccion        = drd.GetString(Direccion);
                    obeSenal.Atencion         = drd.GetString(Atencion);
                    obeSenal.Fecha            = drd.GetDateTime(Fecha).ToString("dd/MM/yyyy HH:mm:ss");
                    obeSenal.FechaA           = drd.GetDateTime(FechaA).ToString("dd/MM/yyyy HH:mm:ss");
                    obeSenal.Telfonopri       = drd.GetString(Telfonopri);
                    obeSenal.Telfonopriext    = drd.GetString(Telfonopriext);
                    obeSenal.Telfonoalt1      = drd.GetString(Telfonoalt1);
                    obeSenal.Telfonoalt1ext   = drd.GetString(Telfonoalt1ext);
                    obeSenal.Telfonoalt2      = drd.GetString(Telfonoalt2);
                    obeSenal.Telfonoalt2ext   = drd.GetString(Telfonoalt2ext);
                    obeSenal.Alarmcode        = drd.GetString(Alarmcode);
                    obeSenal.Nomzona          = drd.GetString(Nomzona);
                    obeSenal.Tipoevento       = drd.GetString(Tipoevento);
                    obeSenal.Usuario          = drd.GetString(Usuario);
                    obeSenal.TipoParticiondes = drd.GetString(TipoParticiondes);

                    if (drd.NextResult())
                    {
                        int NombreContact   = drd.GetOrdinal("NombreContact");
                        int ApePatContact   = drd.GetOrdinal("ApePatContact");
                        int ApeMatContact   = drd.GetOrdinal("ApeMatContact");
                        int CargoContact    = drd.GetOrdinal("CargoContact");
                        int TelefonoContact = drd.GetOrdinal("TelefonoContact");

                        lbeContactoSeguridad = new List <beContactoSeguridad>();
                        beContactoSeguridad obeContactoSeguridad;
                        while (drd.Read())
                        {
                            obeContactoSeguridad = new beContactoSeguridad();
                            obeContactoSeguridad.NombreContact   = drd.GetString(NombreContact);
                            obeContactoSeguridad.ApePatContact   = drd.GetString(ApePatContact);
                            obeContactoSeguridad.ApeMatContact   = drd.GetString(ApeMatContact);
                            obeContactoSeguridad.CargoContact    = drd.GetString(CargoContact);
                            obeContactoSeguridad.TelefonoContact = drd.GetString(TelefonoContact);
                            lbeContactoSeguridad.Add(obeContactoSeguridad);
                        }

                        if (drd.NextResult())
                        {
                            int pCsid        = drd.GetOrdinal("Csid");
                            int pName        = drd.GetOrdinal("Name");
                            int pTitle       = drd.GetOrdinal("Title");
                            int pPhoneNumber = drd.GetOrdinal("PhoneNumber");

                            lbeContactoLocacion = new List <beContactoLocacion>();
                            beContactoLocacion obeContactoLocacion;
                            while (drd.Read())
                            {
                                obeContactoLocacion             = new beContactoLocacion();
                                obeContactoLocacion.Csid        = drd.GetString(pCsid);
                                obeContactoLocacion.Name        = drd.GetString(pName);
                                obeContactoLocacion.Title       = drd.GetString(pTitle);
                                obeContactoLocacion.PhoneNumber = drd.GetString(pPhoneNumber);
                                lbeContactoLocacion.Add(obeContactoLocacion);
                            }

                            if (drd.NextResult())
                            {
                                int idCategoria        = drd.GetOrdinal("idCategoria");
                                int alarmhistoryid     = drd.GetOrdinal("alarmhistoryid");
                                int identidad          = drd.GetOrdinal("RecordType");
                                int nomentidad         = drd.GetOrdinal("nomentidad");
                                int telefono01         = drd.GetOrdinal("telefono01");
                                int telefono02         = drd.GetOrdinal("telefono02");
                                int horarequerimiento  = drd.GetOrdinal("DateTimeOccurred");
                                int horaarribo         = drd.GetOrdinal("horaarribo");
                                int nroidenpersontrans = drd.GetOrdinal("IdPersonaUnidad");
                                int nomresponsable     = drd.GetOrdinal("Responsable");
                                int observacion        = drd.GetOrdinal("OperatorNote");
                                int idMotivo           = drd.GetOrdinal("MotivoId");
                                int nomMotivo          = drd.GetOrdinal("sNomMotivo");

                                lbeEmergencia = new List <beEmergencia>();
                                beEmergencia obeEmergencia;
                                while (drd.Read())
                                {
                                    obeEmergencia                    = new beEmergencia();
                                    obeEmergencia.IdCategoria        = drd.GetInt32(idCategoria);
                                    obeEmergencia.alarmhistoryid     = drd.GetInt32(alarmhistoryid);
                                    obeEmergencia.identidad          = drd.GetInt32(identidad);
                                    obeEmergencia.nomentidad         = drd.GetString(nomentidad);
                                    obeEmergencia.telefono01         = drd.GetString(telefono01);
                                    obeEmergencia.telefono02         = drd.GetString(telefono02);
                                    obeEmergencia.horarequerimiento  = drd.GetDateTime(horarequerimiento).ToString("dd/MM/yyyy HH:mm:ss");
                                    obeEmergencia.horaarribo         = drd.GetString(horaarribo);
                                    obeEmergencia.nroidenpersontrans = drd.GetString(nroidenpersontrans);
                                    obeEmergencia.nomresponsable     = drd.GetString(nomresponsable);
                                    obeEmergencia.Observacion        = drd.GetString(observacion);
                                    obeEmergencia.idMotivo           = drd.GetInt32(idMotivo);
                                    obeEmergencia.nomMotivo          = drd.GetString(nomMotivo);
                                    lbeEmergencia.Add(obeEmergencia);
                                }
                            }
                        }
                    }
                }
                drd.Close();
                obeMonitoreo.obeSenal             = obeSenal;
                obeMonitoreo.lstContactoSeguridad = lbeContactoSeguridad;
                obeMonitoreo.lstContactoLocacion  = lbeContactoLocacion;
                obeMonitoreo.lstEmergencia        = lbeEmergencia;
            }
            return(obeMonitoreo);
        }