private void ActualizarVisitaConfiguracion(int Opcion, int EjecucionConfiguracionId, int UsuarioModificacionId, bool Baja, out RespuestaModel res) { res = new RespuestaModel(); Dictionary <string, dynamic> P = new Dictionary <string, dynamic> { { "EjecucionConfiguracionId", EjecucionConfiguracionId }, { "UsuarioModificacionId", UsuarioModificacionId }, { "Baja", Baja }, { "Opcion", Opcion } }; try { res = _dao.Actualizar <RespuestaModel>(P); } catch (Exception ex) { string InnerExcepcionResult = (ex.InnerException != null ? ex.InnerException?.ToString() : "").Trim(); string ErrorResult = ("Error en el proceso: " + ex.Message + ". " + InnerExcepcionResult).Trim(); LogExcepcion logEx = GenerarLogExcepcion("Proceso de Ejecuciones", ErrorResult, ErrorResult, "750", InnerExcepcionResult, "Proceso de Ejecuciones"); m = RegistrarExcepcion(logEx, null); res.Id = 0; res.ErrorId = -2; res.Satisfactorio = false; res.Datos = null; res.Mensaje = ex.Message + ". " + ex.InnerException; } }
public void Start_Visitas() { RespuestaModel res = new RespuestaModel(); List <string> filenames; bool existenLeidos; List <LogEjecucion> logErrors; _eventLog.CrearLog("Inicio del servicio de Ejecuciones"); try { Dictionary <string, dynamic> P = new Dictionary <string, dynamic> { { "Opcion", 5 } }; IEnumerable <Configuracion> configActivos = _dao.Consultar <Configuracion>(P); if (configActivos.Any()) { foreach (Configuracion item in configActivos) { if (item.RutaLog.Substring(0, 7).Contains("http://") || item.RutaLog.Substring(0, 8).Contains("https://")) { logErrors = VisitarRuta(item.RutaLog, item.ConfiguracionId, out filenames, out existenLeidos); if (logErrors.Count > 0) { res = RegistrarEjecucion(logErrors, item.SistemaId, item.ConfiguracionId, filenames[filenames.Count - 1]); } } else { logErrors = VisitarDirectorio(item.RutaLog, item.ConfiguracionId, out filenames, out existenLeidos); if (logErrors.Count > 0) { res = RegistrarEjecucion(logErrors, item.SistemaId, item.ConfiguracionId, filenames[filenames.Count - 1]); } } if (res.Satisfactorio && filenames.Count > 0) { if (existenLeidos) { ActualizarArchivosLeidos(3, filenames, logErrors.Count, item.ConfiguracionId, false, out res); } else { RegistrarArchivosLeidos(1, filenames, logErrors.Count, item.ConfiguracionId, false, out res); } } ActualizarVisitaConfiguracion(4, item.ConfiguracionId, 1, false, out m); } } } catch (Exception ex) { string InnerExcepcionResult = (ex.InnerException != null ? ex.InnerException?.ToString() : "").Trim(); string ErrorResult = ("Error en el proceso: " + ex.Message + ". " + InnerExcepcionResult).Trim(); LogExcepcion logEx = GenerarLogExcepcion("Proceso de Ejecuciones", ErrorResult, ErrorResult, "750", InnerExcepcionResult, "Proceso de Ejecuciones"); m = RegistrarExcepcion(logEx, null); _eventLog.CrearLog("Error interno del servicio de ejecuciones. " + ex.Message + ". " + ex.InnerException?.ToString(), System.Diagnostics.EventLogEntryType.Error); } }
private RespuestaModel RegistrarEjecucion(List <LogEjecucion> logErrors, int SistemaId, int EjecucionConfiguracionId, string filename) { List <Ejecucion> list = MapearLogs(logErrors, SistemaId, EjecucionConfiguracionId, filename); try { foreach (Ejecucion ejecucion in list.OrderBy(x => x.FechaOcurrencia)) { Dictionary <string, dynamic> P = ejecucion.AsDictionary(); m = _dao.Insertar <RespuestaModel>(P); } } catch (Exception ex) { string InnerExcepcionResult = (ex.InnerException != null ? ex.InnerException?.ToString() : "").Trim(); string ErrorResult = ("Error en el proceso: " + ex.Message + ". " + InnerExcepcionResult).Trim(); LogExcepcion logEx = GenerarLogExcepcion("Proceso de Ejecuciones", ErrorResult, ErrorResult, "750", InnerExcepcionResult, "Proceso de Ejecuciones"); m = RegistrarExcepcion(logEx, null); m.Id = 0; m.ErrorId = -2; m.Satisfactorio = false; m.Datos = null; m.Mensaje = ex.Message + ". " + ex.InnerException; } return(m); }
private List <LogEjecucion> VisitarRuta(string RutaLog, int EjecucionConfiguracionId, out List <string> filenames, out bool existenLeidos) { List <LogEjecucion> logErrors = new List <LogEjecucion>(); filenames = new List <string>(); existenLeidos = false; _eventLog.CrearLog("Buscando archivos de log en la ruta: " + RutaLog); try { List <string> files = FileSystemScanner.UrlDirectoryDownload(RutaLog, out string mensaje); foreach (string filename in files.Where(x => x.Contains(".txt"))) { _eventLog.CrearLog("Leyendo el archivo: " + filename); string[] filenameArray = filename.Split(new string[] { "/" }, StringSplitOptions.RemoveEmptyEntries); string filenameI = filenameArray[filenameArray.Length - 1]; if (filenameI != "LogEjec.txt" && ValidarFechaArchivo(filenameI)) { _eventLog.CrearLog("Obteniendo la bitacora de logs leidos de: " + filename); Dictionary <string, dynamic> P = new Dictionary <string, dynamic> { { "Opcion", 2 }, { "EjecucionConfiguracionId", EjecucionConfiguracionId }, { "EjecucionConfiguracionLecturaDescripcion", filenameI }, { "Baja", false } }; List <EjecucionConfiguracionLectura> lectura = _daoLectura.Consultar <EjecucionConfiguracionLectura>(P).ToList(); string urlFile = Path.Combine(RutaLog, filenameI); string fileText = FileSystemScanner.GetLogFile(urlFile, out string mensajeArchivo); logErrors.AddRange(FileSystemScanner.MapLogText <LogEjecucion>(fileText)); if (lectura.Any()) { existenLeidos = true; logErrors = logErrors.OrderBy(x => x.Fecha).Skip(lectura[0].NumeroRegistros).ToList(); } filenames.Add(filenameI); } } } catch (Exception ex) { string InnerExcepcionResult = (ex.InnerException != null ? ex.InnerException?.ToString() : "").Trim(); string ErrorResult = ("Error en el proceso: " + ex.Message + ". " + InnerExcepcionResult).Trim(); LogExcepcion logEx = GenerarLogExcepcion("Proceso de Ejecuciones", ErrorResult, ErrorResult, "750", InnerExcepcionResult, "Proceso de Ejecuciones"); m = RegistrarExcepcion(logEx, null); logErrors = new List <LogEjecucion>(); string error = string.Format("Hubo un problema con el proceso. {0}. {1}.", ex.Message, ex.InnerException?.ToString()); _eventLog.CrearLog(error); } return(logErrors); }
private RespuestaModel RegistrarExcepcion(LogExcepcion logEx, int?SistemaId) { List <LogExcepcion> logErrors = new List <LogExcepcion> { logEx }; if (!SistemaId.HasValue) { string Identificador = ConfigurationManager.AppSettings["SistemaDefault"]; Dictionary <string, dynamic> PConfig = new Dictionary <string, dynamic> { { "Identificador", Identificador } }; var monConfig = _daoConfig.ConsultarPor <MonitorConfiguracion>(PConfig); if (monConfig != null) { SistemaId = Convert.ToInt32(monConfig.Valor); } } List <Excepcion> list = MapearLogs(logErrors, SistemaId.Value); try { foreach (Excepcion excepcion in list) { Dictionary <string, dynamic> P = excepcion.AsDictionary(); m = _dao.Insertar <RespuestaModel>(P); } } catch (Exception ex) { m.Id = 0; m.ErrorId = -2; m.Satisfactorio = false; m.Datos = null; m.Mensaje = ex.Message + ". " + ex.InnerException; } return(m); }
private void RegistrarArchivosLeidos(int Opcion, List <string> filenames, int NumeroRegistros, int ExcepcionConfiguracionId, bool Baja, out RespuestaModel res) { res = new RespuestaModel(); try { Dictionary <string, dynamic> P = new Dictionary <string, dynamic> { { "Opcion", Opcion }, { "ExcepcionConfiguracionId", ExcepcionConfiguracionId }, { "ExcepcionConfiguracionLecturaDescripcion", filenames[filenames.Count - 1] }, { "NumeroRegistros", NumeroRegistros }, { "UsuarioCreacionId", 1 }, { "Baja", Baja } }; res = _daoLectura.Insertar <RespuestaModel>(P); } catch (Exception ex) { LogExcepcion logEx = GenerarLogExcepcion("Proceso de Excepciones", ("Error en el proceso: " + ex.Message + ". " + ex.InnerException?.ToString()).Trim(), ("Error en el proceso: " + ex.Message + ". " + ex.InnerException?.ToString()).Trim(), "650", (ex.InnerException?.ToString()).Trim(), "Proceso de Excepciones"); m = RegistrarExcepcion(logEx, null); } }
private void ActualizarArchivosLeidos(int Opcion, List <string> filenames, int NumeroRegistros, int EjecucionConfiguracionId, bool Baja, out RespuestaModel res) { res = new RespuestaModel(); try { Dictionary <string, dynamic> P = new Dictionary <string, dynamic> { { "Opcion", Opcion }, { "EjecucionConfiguracionId", EjecucionConfiguracionId }, { "EjecucionConfiguracionLecturaDescripcion", filenames[filenames.Count - 1] }, { "NumeroRegistros", NumeroRegistros }, { "UsuarioModificacionId", 1 }, { "Baja", Baja } }; res = _daoLectura.Actualizar <RespuestaModel>(P); } catch (Exception ex) { string InnerExcepcionResult = (ex.InnerException != null ? ex.InnerException?.ToString() : "").Trim(); string ErrorResult = ("Error en el proceso: " + ex.Message + ". " + InnerExcepcionResult).Trim(); LogExcepcion logEx = GenerarLogExcepcion("Proceso de Ejecuciones", ErrorResult, ErrorResult, "750", InnerExcepcionResult, "Proceso de Ejecuciones"); m = RegistrarExcepcion(logEx, null); } }
private RespuestaModel RegistrarConector(RespuestaPeticionModel peticionModel, Configuracion config) { Conector conector = MapearLlamada(peticionModel, config); try { Dictionary <string, dynamic> P = conector.AsDictionary(); m = _dao.Insertar <RespuestaModel>(P); } catch (Exception ex) { string InnerExcepcionResult = (ex.InnerException != null ? ex.InnerException?.ToString() : "").Trim(); string ErrorResult = ("Error en el proceso: " + ex.Message + ". " + InnerExcepcionResult).Trim(); LogExcepcion logEx = GenerarLogExcepcion("Proceso de Conectores", ErrorResult, ErrorResult, "850", InnerExcepcionResult, "Proceso de Conectores"); m = RegistrarExcepcion(logEx, null); m.Id = 0; m.ErrorId = -2; m.Satisfactorio = false; m.Datos = null; m.Mensaje = ex.Message + ". " + ex.InnerException; } return(m); }
private RespuestaPeticionModel LlamarAPI(string RutaLog) { string mensaje = ""; RespuestaPeticionModel res; _eventLog.CrearLog("Llamando a la ruta: " + RutaLog); try { res = RequestApiExtension.CallApi(RutaLog, out mensaje); } catch (Exception ex) { string InnerExcepcionResult = (ex.InnerException != null ? ex.InnerException?.ToString() : "").Trim(); string ErrorResult = ("Error en el proceso: " + ex.Message + ". " + InnerExcepcionResult).Trim(); LogExcepcion logEx = GenerarLogExcepcion("Proceso de Conectores", ErrorResult, ErrorResult, "850", InnerExcepcionResult, "Proceso de Conectores"); m = RegistrarExcepcion(logEx, null); string error = string.Format("Hubo un problema con el proceso. {0}. {1}.", ex.Message, ex.InnerException?.ToString()); _eventLog.CrearLog(error); res = new RespuestaPeticionModel(); } return(res); }