/// <summary> /// Proceso para autorizar la incidencia /// </summary> /// <returns></returns> public IncidenciasInfo AutorizarIncidencia(IncidenciasInfo incidencia) { IncidenciasInfo result = null; try { Logger.Info(); Dictionary <string, object> parameters = AuxIncidenciasDAL.AutorizarIncidencia(incidencia); Update("Incidencia_Cerrar", parameters); } catch (SqlException ex) { Logger.Error(ex); throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex); } catch (DataException ex) { Logger.Error(ex); throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(result); }
/// <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); } }
/// <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); } }
/// <summary> /// Metodo para autorizar la incidencia /// </summary> /// <param name="incidenciaInfo"></param> public void AutorizarIncidencia(IncidenciasInfo incidenciaInfo) { try { var incidenciasBL = new IncidenciasBL(); incidenciasBL.AutorizarIncidencia(incidenciaInfo); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Proceso para actualizar la incidencia /// <param name="incidencia"></param> /// </summary> public IncidenciasInfo ActualizarIncidencia(IncidenciasInfo incidencia) { try { Logger.Info(); var incidenciaBl = new IncidenciasBL(); return(incidenciaBl.ActualizarIncidencia(incidencia)); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
public static bool AutorizarIncidencia(IncidenciasInfo incidencia) { try { Logger.Info(); var incidenciaPL = new IncidenciasPL(); incidencia.Estatus.EstatusId = Estatus.CerrarAler.GetHashCode(); var seguridad = HttpContext.Current.Session["Seguridad"] as SeguridadInfo; incidencia.UsuarioResponsable.UsuarioID = seguridad.Usuario.UsuarioID; incidenciaPL.AutorizarIncidencia(incidencia); return(true); } catch (Exception e) { Logger.Error(e); } return(false); }
/// <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); }
public static bool?ActualizarIncidencia(IncidenciasInfo incidencia, string fecha) { try { Logger.Info(); if (Convert.ToDateTime(fecha) < DateTime.Now) { return(null); } var incidenciaPL = new IncidenciasPL(); incidencia.FechaVencimiento = Convert.ToDateTime(fecha); var seguridad = HttpContext.Current.Session["Seguridad"] as SeguridadInfo; incidencia.UsuarioResponsable.UsuarioID = seguridad.Usuario.UsuarioID; incidenciaPL.ActualizarIncidencia(incidencia); return(true); } catch (Exception e) { Logger.Error(e); } return(false); }
/// <summary> /// /// </summary> /// <returns></returns> public static Dictionary <string, object> RechazarIncidencia(IncidenciasInfo incidencia) { try { Logger.Info(); var parametros = new Dictionary <string, object> { { "@IncidenciaID", incidencia.IncidenciasID }, { "@Comentarios", incidencia.Comentarios }, { "@NivelAlertaID", incidencia.NivelAlerta.NivelAlertaId }, { "@UsuarioID", incidencia.UsuarioResponsable.UsuarioID }, { "@EstatusID", incidencia.Estatus.EstatusId } }; return(parametros); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// /// </summary> /// <param name="incidenciaInfo"></param> internal void RegistrarIncidencia(IncidenciasInfo incidenciaInfo) { try { Logger.Info(); var parameters = AuxIncidenciasDAL.ObtenerParametrosRegistrarIncidencia(incidenciaInfo); Update("Incidencia_RegistarIncidencia", parameters); } catch (SqlException ex) { Logger.Error(ex); throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex); } catch (DataException ex) { Logger.Error(ex); throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <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); } }
/// <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); } }
/// <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); } }
/// <summary> /// /// </summary> /// <param name="incidenciaInfo"></param> /// <returns></returns> internal static Dictionary <string, object> ObtenerParametrosRegistrarIncidencia(IncidenciasInfo incidenciaInfo) { try { Logger.Info(); var parametros = new Dictionary <string, object> { { "@IncidenciaID", incidenciaInfo.IncidenciasID }, { "@EstatusID", incidenciaInfo.Estatus.EstatusId }, { "@HorasRespuesta", incidenciaInfo.Alerta.HorasRespuesta }, { "@EstatusAnteriorID", incidenciaInfo.IncidenciaSeguimiento.EstatusAnterior.EstatusId }, { "@AccionAnteriorID", incidenciaInfo.IncidenciaSeguimiento.AccionAnterior.AccionID }, { "@Fecha", incidenciaInfo.Fecha }, { "@FechaVencimientoAnterior", incidenciaInfo.IncidenciaSeguimiento.FechaVencimientoAnterior }, { "@NivelAlertaID", incidenciaInfo.IncidenciaSeguimiento.NivelAlertaAnterior.NivelAlertaId }, { "@UsuarioModificacionID", incidenciaInfo.UsuarioModificacionID }, { "@UsuarioResponsableAnteriorID", incidenciaInfo.IncidenciaSeguimiento.UsuarioResponsableAnterior.UsuarioID }, { "@Comentarios", incidenciaInfo.Comentarios } }; return(parametros); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }