/// <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> /// 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); }
/// <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); }
/// <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); } }
/// <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> /// 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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); } }