예제 #1
0
        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;
            }
        }
예제 #2
0
        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);
            }
        }
예제 #3
0
        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);
        }
예제 #4
0
        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);
        }
예제 #5
0
        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);
            }
        }
예제 #7
0
 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);
        }