/// <summary> /// Contiene la lógica para el procesamiento de un archivo de texto /// </summary> /// <param name="_cRutaArchivo">Ruta fisica del archivo txt.</param> /// <param name="_cSeparador">Simbolo separador</param> /// <param name="_dtFecha">Fecha a comparar</param> /// <returns>Lista del tipo EventosDTO</returns> public List <EventosDTO> Procesar(string _cRutaArchivo, string _cSeparador, DateTime _dtFecha) { string[] arrContenido = null; List <EventosDTO> lstEventos = new List <EventosDTO>(); EventosDTO entEvento = new EventosDTO(); IGeneradorMensajeEvento svrGeneradorEventoService = null; this.cSeparador = _cSeparador; this.dtFechaActual = _dtFecha; arrContenido = this.svrLectorArchivoTxt.ObtenerContenido(_cRutaArchivo); GeneradorMensajeEventoFactory generadorEventoFactory = new GeneradorMensajeEventoFactory(); foreach (var a in arrContenido) { entEvento = new EventosDTO(); ValidarEntrada(a); entEvento = crearInstancia(a); //MES if (entEvento.iTotalMeses >= 1 || entEvento.iTotalMeses <= -1) { svrGeneradorEventoService = generadorEventoFactory.ObtenerInstanciaGeneradorMensajeEvento((int)BanderasEvento.Periodos.MES); entEvento.cEventoImprime = svrGeneradorEventoService.GeneraMensaje((entEvento.iTotalMeses > 0 ? true : false), Math.Truncate(Math.Abs(entEvento.iTotalMeses))); } // DIA else if (entEvento.iTotalDias >= 1 || entEvento.iTotalDias <= -1) { svrGeneradorEventoService = generadorEventoFactory.ObtenerInstanciaGeneradorMensajeEvento((int)BanderasEvento.Periodos.DIA); entEvento.cEventoImprime = svrGeneradorEventoService.GeneraMensaje((entEvento.iTotalDias > 0 ? true : false), Math.Truncate(Math.Abs(entEvento.iTotalDias))); }//Horas else if (entEvento.iTotalHOras >= 1 || entEvento.iTotalHOras <= -1) { svrGeneradorEventoService = generadorEventoFactory.ObtenerInstanciaGeneradorMensajeEvento((int)BanderasEvento.Periodos.HORA); entEvento.cEventoImprime = svrGeneradorEventoService.GeneraMensaje((entEvento.iTotalHOras > 0 ? true : false), Math.Truncate(Math.Abs(entEvento.iTotalHOras))); }//Minutos else if (entEvento.iTotalMinutos >= 1 || entEvento.iTotalMinutos <= -1) { svrGeneradorEventoService = generadorEventoFactory.ObtenerInstanciaGeneradorMensajeEvento((int)BanderasEvento.Periodos.MINUTO); entEvento.cEventoImprime = svrGeneradorEventoService.GeneraMensaje((entEvento.iTotalMinutos > 0 ? true : false), Math.Truncate(Math.Abs(entEvento.iTotalMinutos))); } lstEventos.Add(entEvento); } return(lstEventos); }
/// <summary> /// Devuelve el servicio correspondiente de acuerdo al tipo de período recibido como parámetro. /// </summary> /// <param name="_iTipoPeriodo">Tipo de periodo del Enum BanderasEventos</param> /// <returns>Servicio del tipo de interfaz IGeneradorMensajeEvento</returns> public IGeneradorMensajeEvento ObtenerInstanciaGeneradorMensajeEvento(int _iTipoPeriodo) { IGeneradorMensajeEvento svrService = null; switch (_iTipoPeriodo) { case 1: svrService = new GeneradorMensajeEventoMesService(); break; case 2: svrService = new GeneradorMensajeEventoDiaService(); break; case 3: svrService = new GeneradorMensajeEventoHoraService(); break; case 4: svrService = new GeneradorMensajeEventoMinutoService(); break; } return(svrService); }