예제 #1
0
        /// <summary>
        /// Procese las incidencias para verificar el estado y fecha vencimiento
        /// </summary>
        internal void ProcesarIncicencias()
        {
            var incidenciaBl = new IncidenciasBL();

            try
            {
                var listaIncidencias = new List <IncidenciasInfo>();
                listaIncidencias = ObtenerIncidenciasActivas();

                if (listaIncidencias != null)
                {
                    listaIncidencias = listaIncidencias.Where(x => x.Estatus.EstatusId != Estatus.CerrarAler.GetHashCode()).ToList();

                    if (listaIncidencias.Any())
                    {
                        foreach (var incidencia in listaIncidencias)
                        {
                            try
                            {
                                AlertaInfo alertaInfo =
                                    listaAlertaConfiguracion.FirstOrDefault(
                                        x => x.AlertaID == incidencia.Alerta.AlertaID);


                                IncidenciasInfo incidenciaInfo;
                                switch (incidencia.Estatus.EstatusId)
                                {
                                case (int)Estatus.NuevaAlert:
                                case (int)Estatus.RechaAlert:
                                    //Cambiar estatus a vencidas
                                    if (incidencia.FechaVencimiento <= DateTime.Now && incidencia.Accion.AccionID == 0)
                                    {
                                        incidenciaInfo = new IncidenciasInfo
                                        {
                                            IncidenciasID = incidencia.IncidenciasID,
                                            Estatus       = new EstatusInfo
                                            {
                                                EstatusId = Estatus.VenciAlert.GetHashCode()
                                            },
                                            Alerta = new AlertaInfo
                                            {
                                                AlertaID       = incidencia.Alerta.AlertaID,
                                                HorasRespuesta = incidencia.Alerta.HorasRespuesta
                                            },
                                            Folio                 = incidencia.Folio,
                                            Fecha                 = incidencia.Fecha,
                                            Comentarios           = null,
                                            UsuarioModificacionID = usuario.UsuarioID,

                                            IncidenciaSeguimiento = new IncidenciaSeguimientoInfo
                                            {
                                                EstatusAnterior = new EstatusInfo
                                                {
                                                    EstatusId = incidencia.Estatus.EstatusId
                                                },
                                                AccionAnterior = new AccionInfo
                                                {
                                                    AccionID = incidencia.Accion.AccionID
                                                },
                                                UsuarioResponsableAnterior = new UsuarioInfo
                                                {
                                                    UsuarioID = incidencia.UsuarioResponsable.UsuarioID
                                                },
                                                NivelAlertaAnterior = new NivelAlertaInfo
                                                {
                                                    NivelAlertaId = incidencia.NivelAlerta.NivelAlertaId
                                                },
                                                FechaVencimientoAnterior = incidencia.FechaVencimiento
                                            }
                                        };

                                        incidenciaBl.IncidenciaVencida(incidenciaInfo);
                                    }
                                    //Cambiar estatus a registrada
                                    else if (incidencia.FechaVencimiento <= DateTime.Now && incidencia.Accion.AccionID > 0)
                                    {
                                        incidenciaInfo = new IncidenciasInfo
                                        {
                                            IncidenciasID = incidencia.IncidenciasID,
                                            Estatus       = new EstatusInfo
                                            {
                                                EstatusId = Estatus.RegisAlert.GetHashCode()
                                            },
                                            Alerta = new AlertaInfo
                                            {
                                                AlertaID       = incidencia.Alerta.AlertaID,
                                                HorasRespuesta = incidencia.Alerta.HorasRespuesta
                                            },
                                            Folio                 = incidencia.Folio,
                                            Fecha                 = incidencia.Fecha,
                                            Comentarios           = null,
                                            UsuarioModificacionID = usuario.UsuarioID,

                                            IncidenciaSeguimiento = new IncidenciaSeguimientoInfo
                                            {
                                                EstatusAnterior = new EstatusInfo
                                                {
                                                    EstatusId = incidencia.Estatus.EstatusId
                                                },
                                                AccionAnterior = new AccionInfo
                                                {
                                                    AccionID = incidencia.Accion.AccionID
                                                },
                                                UsuarioResponsableAnterior = new UsuarioInfo
                                                {
                                                    UsuarioID = incidencia.UsuarioResponsable.UsuarioID
                                                },
                                                NivelAlertaAnterior = new NivelAlertaInfo
                                                {
                                                    NivelAlertaId = incidencia.NivelAlerta.NivelAlertaId
                                                },
                                                FechaVencimientoAnterior = incidencia.FechaVencimiento
                                            }
                                        };
                                        incidenciaBl.RegistrarIncidencia(incidenciaInfo);
                                    }
                                    break;

                                case (int)Estatus.VenciAlert:
                                case (int)Estatus.RegisAlert:
                                    //Cambiar la incidencia a vencida
                                    if (incidencia.FechaVencimiento <= DateTime.Now)
                                    {
                                        incidenciaInfo = new IncidenciasInfo
                                        {
                                            IncidenciasID = incidencia.IncidenciasID,
                                            Estatus       = new EstatusInfo
                                            {
                                                EstatusId = Estatus.VenciAlert.GetHashCode()
                                            },
                                            Alerta = new AlertaInfo
                                            {
                                                AlertaID       = incidencia.Alerta.AlertaID,
                                                HorasRespuesta = incidencia.Alerta.HorasRespuesta
                                            },
                                            Folio                 = incidencia.Folio,
                                            Fecha                 = incidencia.Fecha,
                                            Comentarios           = Properties.ResourceServices.Incidencia_Vencida,
                                            UsuarioModificacionID = usuario.UsuarioID,

                                            IncidenciaSeguimiento = new IncidenciaSeguimientoInfo
                                            {
                                                EstatusAnterior = new EstatusInfo
                                                {
                                                    EstatusId = incidencia.Estatus.EstatusId
                                                },
                                                AccionAnterior = new AccionInfo
                                                {
                                                    AccionID = incidencia.Accion.AccionID
                                                },
                                                UsuarioResponsableAnterior = new UsuarioInfo
                                                {
                                                    UsuarioID = incidencia.UsuarioResponsable.UsuarioID
                                                },
                                                NivelAlertaAnterior = new NivelAlertaInfo
                                                {
                                                    NivelAlertaId = incidencia.NivelAlerta.NivelAlertaId
                                                },
                                                FechaVencimientoAnterior = incidencia.FechaVencimiento
                                            }
                                        };

                                        incidenciaBl.IncidenciaVencida(incidenciaInfo);
                                    }

                                    break;
                                }
                            }
                            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);
            }
        }
예제 #2
0
        /// <summary>
        /// Cierra la incidencia
        /// </summary>
        /// <param name="incidencia"></param>
        internal void CerrarIncidenciaAutomatico(IncidenciasInfo incidencia)
        {
            var incidenciaBl = new IncidenciasBL();

            try
            {
                try
                {
                    var incidenciaInfo = new IncidenciasInfo
                    {
                        IncidenciasID = incidencia.IncidenciasID,
                        Estatus       = new EstatusInfo
                        {
                            EstatusId = Estatus.CerrarAler.GetHashCode()
                        },
                        Alerta = new AlertaInfo
                        {
                            AlertaID       = incidencia.Alerta.AlertaID,
                            HorasRespuesta = incidencia.Alerta.HorasRespuesta
                        },
                        Folio                 = incidencia.Folio,
                        Fecha                 = incidencia.Fecha,
                        FechaVencimiento      = incidencia.FechaVencimiento,
                        Comentarios           = null,
                        UsuarioModificacionID = usuario.UsuarioID,
                        IncidenciaSeguimiento = new IncidenciaSeguimientoInfo
                        {
                            EstatusAnterior = new EstatusInfo
                            {
                                EstatusId = incidencia.Estatus.EstatusId
                            },
                            AccionAnterior = new AccionInfo
                            {
                                AccionID = incidencia.Accion.AccionID
                            },
                            UsuarioResponsableAnterior = new UsuarioInfo
                            {
                                UsuarioID = incidencia.UsuarioResponsable.UsuarioID
                            },
                            NivelAlertaAnterior = new NivelAlertaInfo
                            {
                                NivelAlertaId = incidencia.NivelAlerta.NivelAlertaId
                            }
                        }
                    };
                    incidenciaBl.CerrarIncidencia(incidenciaInfo);
                }
                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);
            }
        }