Ejemplo n.º 1
0
 /// <summary>
 /// Metodo para autorizar una incidencia
 /// </summary>
 /// <param name="incidenciaInfo"></param>
 internal void AutorizarIncidencia(IncidenciasInfo incidenciaInfo)
 {
     try
     {
         var incidenciasDAL = new IncidenciasDAL();
         incidenciasDAL.AutorizarIncidencia(incidenciaInfo);
     }
     catch (ExcepcionDesconocida ex)
     {
         var bitacoraBL = new BitacoraIncidenciasBL();
         var bitacora   = new BitacoraIncidenciaInfo
         {
             Alerta = new AlertaInfo
             {
                 AlertaID = incidenciaInfo.Alerta.AlertaID
             },
             Folio        = incidenciaInfo.Folio,
             Organizacion = new OrganizacionInfo
             {
                 OrganizacionID = incidenciaInfo.Organizacion.OrganizacionID
             },
             Error = ex.Message
         };
         bitacoraBL.GuardarErrorIncidencia(bitacora);
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Método que le cambia el estado a la incidencia
        /// </summary>
        /// <param name="incidencias"></param>
        /// <returns></returns>
        public Respuesta <Incidencias> CambiarEstadoIncidencia(int idIncidencia, string estado)
        {
            Respuesta <Incidencias> respuesta = new Respuesta <Incidencias>();

            try
            {
                oIncidencias = new IncidenciasDAL(_contexto);
                respuesta    = oIncidencias.CambiarEstadoIncidencia(idIncidencia, estado);
            }
            catch (Exception ex)
            {
                respuesta.HayError     = true;
                respuesta.MensajeError = ex.Message;
            }
            return(respuesta);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Método que consulta las incidencias
        /// </summary>
        /// <param name="incidencias"></param>
        /// <returns></returns>
        public Respuesta <List <Incidencias> > ConsultarIncidenciasUsuario(int idUsuario)
        {
            Respuesta <List <Incidencias> > respuesta = new Respuesta <List <Incidencias> >();

            try
            {
                oIncidencias = new IncidenciasDAL(_contexto);
                respuesta    = oIncidencias.ConsultarIncidenciasUsuario(idUsuario);
            }
            catch (Exception ex)
            {
                respuesta.HayError     = true;
                respuesta.MensajeError = ex.Message;
            }
            return(respuesta);
        }
Ejemplo n.º 4
0
 /// <summary>
 /// Guarda lista de incidencias
 /// </summary>
 /// <param name="listaNuevasIncidencias"></param>
 private void GuardarNuevasIncidencias(List <IncidenciasInfo> listaNuevasIncidencias, int TipoFolioID)
 {
     try
     {
         var incidenciasDAL = new IncidenciasDAL();
         incidenciasDAL.GuardarNuevasIncidencias(listaNuevasIncidencias, TipoFolioID);
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
Ejemplo n.º 5
0
 /// <summary>
 /// Metodo para cerrar una incidencia
 /// </summary>
 /// <param name="incidenciaInfo"></param>
 internal void CerrarIncidencia(IncidenciasInfo incidenciaInfo)
 {
     try
     {
         var incidenciasDAL = new IncidenciasDAL();
         incidenciasDAL.CerrarIncidencia(incidenciaInfo);
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
Ejemplo n.º 6
0
        /// <summary>
        /// Método que almacena la incidencia
        /// </summary>
        /// <param name="incidencias"></param>
        /// <returns></returns>
        public Respuesta <bool> InsertarIncidencias(Incidencias incidencias)
        {
            Respuesta <bool> respuesta = new Respuesta <bool>();

            try
            {
                oIncidencias = new IncidenciasDAL(_contexto);
                respuesta    = oIncidencias.InsertarIncidencias(incidencias);
            }
            catch (Exception ex)
            {
                respuesta.HayError        = true;
                respuesta.MensajeError    = ex.Message;
                respuesta.ObjetoRespuesta = false;
            }
            return(respuesta);
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Obtiene las configuraciones de alerta
        /// </summary>
        /// <param name="activo"></param>
        internal List <AlertaInfo> ObtenerConfiguracionAlertas(EstatusEnum activo)
        {
            List <AlertaInfo> listaAlertaConfiguracion = null;

            try
            {
                var IncidenciasDal = new IncidenciasDAL();
                listaAlertaConfiguracion = IncidenciasDal.ObtenerConfiguracionAlertas(activo);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(listaAlertaConfiguracion);
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Proceso para obtener el seguimiento de una incidencia
        /// <param name="incidenciaID"></param>
        /// </summary>
        internal List <IncidenciaSeguimientoInfo> ObtenerSeguimientoPorIncidenciaID(int incidenciaID)
        {
            List <IncidenciaSeguimientoInfo> listaSeguimiento;

            try
            {
                Logger.Info();
                var incidenciaDAL = new IncidenciasDAL();
                listaSeguimiento = incidenciaDAL.ObtenerSeguimientoPorIncidenciaID(incidenciaID);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(listaSeguimiento);
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Genera Incidencias SIAP
        /// </summary>
        internal List <IncidenciasInfo> ObtenerIncidenciasPorOrganizacionID(int organizacionID, bool usuarioCorporativo)
        {
            List <IncidenciasInfo> lista;

            try
            {
                Logger.Info();
                var incidenciaDAL = new IncidenciasDAL();
                lista = incidenciaDAL.ObtenerIncidenciasPorOrganizacionID(organizacionID, usuarioCorporativo);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(lista);
        }
Ejemplo n.º 10
0
        /// <summary>
        /// Obtiene todas las activas
        /// </summary>
        /// <returns></returns>
        internal List <IncidenciasInfo> ObtenerIncidenciasActivas()
        {
            List <IncidenciasInfo> lista;

            try
            {
                Logger.Info();
                var incidenciaDAL = new IncidenciasDAL();
                lista = incidenciaDAL.ObtenerIncidenciasActivas();
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(lista);
        }
Ejemplo n.º 11
0
        /// <summary>
        /// Proceso para rechazar la incidencia
        /// <param name="incidencia"></param>
        /// </summary>
        internal IncidenciasInfo RechazarIncidencia(IncidenciasInfo incidencia)
        {
            IncidenciasInfo incidenciaRegreso = null;

            try
            {
                Logger.Info();
                var incidenciaDAL = new IncidenciasDAL();
                incidenciaRegreso = incidenciaDAL.RechazarIncidencia(incidencia);
            }
            catch (ExcepcionDesconocida ex)
            {
                var bitacoraBL = new BitacoraIncidenciasBL();
                var bitacora   = new BitacoraIncidenciaInfo
                {
                    Alerta = new AlertaInfo
                    {
                        AlertaID = incidencia.Alerta.AlertaID
                    },
                    Folio        = incidencia.Folio,
                    Organizacion = new OrganizacionInfo
                    {
                        OrganizacionID = incidencia.Organizacion.OrganizacionID
                    },
                    Error = ex.Message
                };
                bitacoraBL.GuardarErrorIncidencia(bitacora);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(incidenciaRegreso);
        }
Ejemplo n.º 12
0
        /// <summary>
        /// Genera Incidencias SIAP
        /// </summary>
        internal void GenerarIncidenciasSIAP()
        {
            try
            {
                List <IncidenciasInfo> listaIncidencias       = new List <IncidenciasInfo>();
                List <IncidenciasInfo> listaNuevasIncidencias = new List <IncidenciasInfo>();
                List <XDocument>       listaNew = new List <XDocument>();
                var usuarioBL = new UsuarioBL();
                usuario = usuarioBL.ObtenerPorActiveDirectory(UsuarioProcesosEnum.AlertaSIAP.ToString());

                IList <OrganizacionInfo> ListaOrganizacion = new List <OrganizacionInfo>();
                var organizacionBL = new OrganizacionBL();
                ListaOrganizacion = organizacionBL.ObtenerTodos();

                var IncidenciasDal = new IncidenciasDAL();
                listaAlertaConfiguracion = IncidenciasDal.ObtenerConfiguracionAlertas(EstatusEnum.Activo);
                listaIncidencias         = ObtenerIncidenciasActivas();


                if (listaAlertaConfiguracion != null && listaAlertaConfiguracion.Any())
                {
                    foreach (AlertaInfo alertaInfo in listaAlertaConfiguracion)
                    {
                        List <XDocument> listaNueva = new List <XDocument>();
                        string           query      = CrearQuery(alertaInfo.ConfiguracionAlerta);

                        XDocument resultadoQuery = IncidenciasDal.EjecutarQuery(query);

                        if (resultadoQuery != null)
                        {
                            if (resultadoQuery.Root != null)
                            {
                                var result = resultadoQuery.Root.Elements().ToList();
                                listaNueva.AddRange(result.Select(xElement => XDocument.Parse(xElement.ToString())));
                            }

                            if (listaIncidencias != null && listaIncidencias.Any())
                            {
                                List <XDocument> listaRegistrada = new List <XDocument>();
                                var incidencias =
                                    listaIncidencias.Where(x => x.Alerta.AlertaID == alertaInfo.AlertaID).ToList();
                                listaRegistrada.AddRange(incidencias.Select(incidenciasInfo => XDocument.Parse(incidenciasInfo.XmlConsulta.ToString())));

                                if (incidencias.Any())
                                {
                                    List <XDocument> registradas = new List <XDocument>();

                                    foreach (var xDocument in listaRegistrada)
                                    {
                                        var xdocumetCopy = new XDocument
                                                           (
                                            new XElement("Table",
                                                         from row in xDocument.Root.Elements()
                                                         select new XElement(row.Name, row.Value)));

                                        foreach (var document in listaNueva.Where(document => XNode.DeepEquals(xdocumetCopy, document)))
                                        {
                                            listaNew.Add(document);
                                            registradas.Add(xDocument);
                                        }
                                    }
                                    if (alertaInfo.TerminadoAutomatico == EstatusEnum.Activo)
                                    {
                                        listaRegistrada = listaRegistrada.Except(registradas).ToList();


                                        if (listaRegistrada != null && listaRegistrada.Any())
                                        {
                                            foreach (IncidenciasInfo incidencia in listaRegistrada
                                                     .Select(xDocument => incidencias.FirstOrDefault(x => XNode.DeepEquals(x.XmlConsulta, xDocument)))
                                                     .Where(incidencia => incidencia != null).Where(incidencia => incidencia.Estatus.EstatusId != Estatus.CerrarAler.GetHashCode()))
                                            {
                                                CerrarIncidenciaAutomatico(incidencia);
                                            }
                                        }
                                    }

                                    listaNueva = listaNueva.Except(listaNew).ToList();
                                }
                            }

                            if (listaNueva.Any())
                            {
                                foreach (var xDocument in listaNueva)
                                {
                                    int organizacionID = 0;


                                    foreach (var xElement in xDocument.Root.Elements())
                                    {
                                        if (xElement.Name.ToString().ToUpper() ==
                                            "OrganizacionID".ToUpper())
                                        {
                                            int xElementOrganizacionID;
                                            if (int.TryParse(xElement.Value, out xElementOrganizacionID))
                                            {
                                                OrganizacionInfo organizacion =
                                                    ListaOrganizacion.FirstOrDefault(o => o.OrganizacionID == (int.Parse(xElement.Value)) &&
                                                                                     o.TipoOrganizacion.TipoOrganizacionID == TipoOrganizacion.Ganadera.GetHashCode());
                                                if (organizacion != null)
                                                {
                                                    organizacionID = organizacion.OrganizacionID;
                                                }
                                            }
                                            break;
                                        }
                                        if (xElement.Name.ToString().ToUpper() ==
                                            "Nombre_Del_Centro".ToUpper())
                                        {
                                            OrganizacionInfo organizacion =
                                                ListaOrganizacion.FirstOrDefault(o => o.Descripcion.ToUpper() ==
                                                                                 (xElement.Value.ToUpper()));

                                            organizacion =
                                                ListaOrganizacion.FirstOrDefault(
                                                    o =>
                                                    organizacion != null &&
                                                    o.Division.ToUpper() == organizacion.Division.ToUpper() && o.TipoOrganizacion.TipoOrganizacionID == TipoOrganizacion.Ganadera.GetHashCode());
                                            if (organizacion != null)
                                            {
                                                organizacionID = organizacion.OrganizacionID;
                                            }
                                            break;
                                        }
                                    }

                                    IncidenciasInfo incidenciasInfo = new IncidenciasInfo
                                    {
                                        Organizacion = new OrganizacionInfo
                                        {
                                            OrganizacionID = organizacionID
                                        },

                                        Alerta = new AlertaInfo
                                        {
                                            AlertaID            = alertaInfo.AlertaID,
                                            HorasRespuesta      = alertaInfo.HorasRespuesta,
                                            ConfiguracionAlerta = new ConfiguracionAlertasInfo
                                            {
                                                NivelAlerta = new NivelAlertaInfo
                                                {
                                                    NivelAlertaId = alertaInfo.ConfiguracionAlerta.NivelAlerta.NivelAlertaId
                                                }
                                            }
                                        },
                                        XmlConsulta = xDocument,
                                        Estatus     = new EstatusInfo
                                        {
                                            EstatusId = Estatus.NuevaAlert.GetHashCode()
                                        },
                                        UsuarioCreacionID = usuario.UsuarioID,
                                        Activo            = EstatusEnum.Activo
                                    };
                                    listaNuevasIncidencias.Add(incidenciasInfo);
                                }
                            }
                        }
                    }
                }

                using (var transaction = new TransactionScope())
                {
                    if (listaNuevasIncidencias.Any())
                    {
                        GuardarNuevasIncidencias(listaNuevasIncidencias, TipoFolio.AlertaSiap.GetHashCode());
                    }

                    ProcesarIncicencias();

                    transaction.Complete();
                }
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
        }