static void Main(string[] args) { string texto; try { /*** SERVICIOS ***/ // * Argumento IObtenedorTextoArgumentos obtenedorTextoPrimerArgumento = new ObtenedorTextoPrimerArgumento(args); // Archivo IValidadorArchivo validadorArchivo = new ValidarArchivoTexto(); ILectorArchivoTexto lectorArchivoTexto = new LectorArchivoTexto(obtenedorTextoPrimerArgumento.ObtenerTextoArgumentos(), validadorArchivo); IObtenedorRegistrosArchivoListaStrings obtenedorContenidoArchivoListaStrings = new ObtenedorRegistrosArchivoListaStrings(lectorArchivoTexto); // * Procesamiento IDivisorLinea divisorLinea = new DivisorLineaDosCampos(); IValidadorCamposCVS validadorCamposCVS = new ValidadorCamposEventos(); // Cadena de comparaciones IDeterminadorDiferenciaTiempo determinadorDiferenciaMes = new DeterminadorDiferenciaMes(null); IDeterminadorDiferenciaTiempo determinadorDiferenciaDia = new DeterminadorDiferenciaDia(determinadorDiferenciaMes); IDeterminadorDiferenciaTiempo determinadorDiferenciaHora = new DeterminadorDiferenciaHora(determinadorDiferenciaDia); IDeterminadorDiferenciaTiempo determinadorDiferenciaMinuto = new DeterminadorDiferenciaMinuto(determinadorDiferenciaHora); IAnalizadorTextoEvento analizadorEvento = new AnalizadorTextoEvento(divisorLinea, validadorCamposCVS, determinadorDiferenciaMinuto); IPresentadorEventos presentadorEventos = new PresentadorEventos(obtenedorContenidoArchivoListaStrings.ObtenerRegistrosArchivo(), analizadorEvento); texto = presentadorEventos.PresentarEventos(); } catch (Exception ex) { texto = $"Ha ocurrido un error: {ex.Message}"; } //// Capa de presentación IDesplegador desplegador = new DesplegadorPantalla(); desplegador.Desplegar(texto); }
private static void Init(string[] _args) { try { string cRuta = @"..\..\"; string cRutaConfiguracion = AppDomain.CurrentDomain.BaseDirectory + @"..\..\Config.json"; List <DatosPedido> lstDatosPedido = new List <DatosPedido>(); if (_args[1].ToUpper() == "JSON") { iLectorArchivo lectorArchivoTexto = new LectorArchivoJson(); lstDatosPedido = lectorArchivoTexto.LeerArchivo(cRuta); } else { iLectorArchivo lectorArchivoTexto = new LectorArchivoTexto(); lstDatosPedido = lectorArchivoTexto.LeerArchivo(cRuta); } iLectorConfiguracion lectorConfig = new LectorConfiguracionJson(); var datosCofig = lectorConfig.LeerConfiguracion(cRutaConfiguracion); AlmacenadorDatosService srvAlmacenadorDatos = new AlmacenadorDatosService(); srvAlmacenadorDatos.CrearDirectorioDatos(); EmpresaTransporteService srvEmpresaTransporte = new EmpresaTransporteService(lstDatosPedido, datosCofig); srvEmpresaTransporte.ObtenerResultado(); Console.ReadLine(); } catch (Exception ex) { Console.WriteLine(ex.Message); Console.ReadLine(); } }
public void ObtenerPedidos_LeerArchivo_ObtieneInformacion() { List <Pedido> lstPedidos = new List <Pedido>(); LectorArchivoTexto LectorArchivoTexto = new LectorArchivoTexto(); lstPedidos = LectorArchivoTexto.ObtenerPedidos(); Assert.IsTrue(!lstPedidos.Any()); }
public void ObtenerEntidad_EnviarListaCampos_GeneraPedido() { string[] lstCampos = new string[6]; Pedido entPedido = new Pedido(); LectorArchivoTexto LectorArchivoTexto = new LectorArchivoTexto(); entPedido = LectorArchivoTexto.ObtenerEntidad(lstCampos); Assert.IsTrue(entPedido != null); }
public void ObtenerEntidad_EnviarListaCampos_GeneraPedidoConMedioTransporte() { string[] lstCampos = new string[6]; lstCampos[4] = "Paqueteria"; Pedido entPedido = new Pedido(); LectorArchivoTexto LectorArchivoTexto = new LectorArchivoTexto(); entPedido = LectorArchivoTexto.ObtenerEntidad(lstCampos); Assert.IsTrue(!string.IsNullOrWhiteSpace(entPedido.cMedioTransporte)); }
public void ObtenerEntidad_EnviarListaCampos_GeneraPedidoConDistancia() { string[] lstCampos = new string[6]; lstCampos[2] = "100"; Pedido entPedido = new Pedido(); LectorArchivoTexto LectorArchivoTexto = new LectorArchivoTexto(); entPedido = LectorArchivoTexto.ObtenerEntidad(lstCampos); Assert.IsTrue(entPedido.iDistancia > 0); }
public void ObtenerEntidad_EnviarListaCampos_GeneraPedidoConDestino() { string[] lstCampos = new string[6]; lstCampos[1] = "Destino"; Pedido entPedido = new Pedido(); LectorArchivoTexto LectorArchivoTexto = new LectorArchivoTexto(); entPedido = LectorArchivoTexto.ObtenerEntidad(lstCampos); Assert.IsTrue(!string.IsNullOrWhiteSpace(entPedido.cDestino)); }
public void ObtenerEntidad_EnviarListaCampos_GeneraPedidoConFechaPedido() { string[] lstCampos = new string[6]; lstCampos[5] = "29-01-2020 12:00:00"; Pedido entPedido = new Pedido(); LectorArchivoTexto LectorArchivoTexto = new LectorArchivoTexto(); entPedido = LectorArchivoTexto.ObtenerEntidad(lstCampos); Assert.IsTrue(entPedido.dtPedido != null); }
public void LeerArchivoAListaPedidos_RutaNoExiste_ExcepcionNoEncontroArchivo() { //Arrange var DOCIConvertidorPedido = new Mock <IConvertidorPedido>(); var SUT = new LectorArchivoTexto(DOCIConvertidorPedido.Object); SUT.lectorArchivo = l => throw new FileNotFoundException(); //Assert Assert.ThrowsException <FileNotFoundException>(() => SUT.LeerArchivoAListaPedidos("ruta inexistente")); }
public void LeerArchivoAListaPedidos_EjecucionConvertidorAPedidos_SeEjecutaSoloUnaVez() { //Arrange var DOCIConvertidorPedido = new Mock <IConvertidorPedido>(); var SUT = new LectorArchivoTexto(DOCIConvertidorPedido.Object); SUT.lectorArchivo = l => new string[] { "datos pedido" }; //Act var lstPedidosLeidos = SUT.LeerArchivoAListaPedidos("ruta"); //Assert tipo spy DOCIConvertidorPedido.Verify(c => c.ConvertirAPedidos(It.IsAny <List <string> >()), Times.Once); }
public void LeerArchivoAListaPedidos_ExisteArchivo_ObtienePedido() { //Arrange List <PedidoDTO> lstPedidos = new List <PedidoDTO> { new PedidoDTO { cDestino = "destino" } }; var DOCIConvertidorPedido = new Mock <IConvertidorPedido>(); DOCIConvertidorPedido.Setup(c => c.ConvertirAPedidos(It.IsAny <List <string> >())).Returns(lstPedidos); var SUT = new LectorArchivoTexto(DOCIConvertidorPedido.Object); SUT.lectorArchivo = l => new string[] { "datos pedido" }; //Act var lstPedidosLeidos = SUT.LeerArchivoAListaPedidos("ruta"); //Assert Assert.IsTrue(lstPedidosLeidos.Any()); }
public void Menu() { string cFormatoMesaje = string.Empty, cMensajePedido = string.Empty; bool lEntregado = false; DateTime dtFechaHoy = DateTime.Now; List <string> lstErrores = new List <string>(), lstMensajes = new List <string>(); List <Pedido> lstPedido = new List <Pedido>(); List <Paqueteria> lstPaqueteria = new List <Paqueteria>(); ILectorArchivo IlectorArchivo = new LectorArchivoTexto(); IValidacion IValidacion = new Validaciones(); List <IInicializarTransportes> lstIInicializarTransportes = new List <IInicializarTransportes>(); IVerificarOpcionEconomica IVerificarOpcionEconomica = new EvaluarOpcionEconominca(); IAsignarPaqueteria IAsignarPaqueteria = new AsignarEntidades(); cFormatoMesaje = "Tu paquete {0} de {1} y {2} a {3} {4} {5} y {6} un costo de {7} (Cualquier reclamación con {8})."; ObtenerMinutos ObtenerMinutos = new ObtenerMinutos(); ObtenerHoras ObtenerHoras = new ObtenerHoras(); ObtenerDias ObtenerDias = new ObtenerDias(); ObtenerMeses ObtenerMeses = new ObtenerMeses(); ObtenerMinutos.Siguiente(ObtenerHoras); ObtenerHoras.Siguiente(ObtenerDias); ObtenerDias.Siguiente(ObtenerMeses); IGenerarMensaje IGenerarMensaje = new GenerarMensajePedido(ObtenerMinutos, IVerificarOpcionEconomica); lstIInicializarTransportes.Clear(); lstIInicializarTransportes.Add(new TransporteBarco()); ITransportesPorPaqueteria ITransportesPorPaqueteria = new CrearTransportes(lstIInicializarTransportes); IInicializarPaqueterias IInicializarPaqueterias = new PaqueteriaFedex(ITransportesPorPaqueteria); lstPaqueteria.Add(IInicializarPaqueterias.CrearPaqueteria()); lstIInicializarTransportes.Clear(); lstIInicializarTransportes.Add(new TransporteAvion()); lstIInicializarTransportes.Add(new TransporteBarco()); ITransportesPorPaqueteria = new CrearTransportes(lstIInicializarTransportes); IInicializarPaqueterias = new PaqueteriaDHL(ITransportesPorPaqueteria); lstPaqueteria.Add(IInicializarPaqueterias.CrearPaqueteria()); lstIInicializarTransportes.Clear(); lstIInicializarTransportes.Add(new TransporteTren()); ITransportesPorPaqueteria = new CrearTransportes(lstIInicializarTransportes); IInicializarPaqueterias = new PaqueteriaEstafeta(ITransportesPorPaqueteria); lstPaqueteria.Add(IInicializarPaqueterias.CrearPaqueteria()); lstPedido = IlectorArchivo.ObtenerPedidos(); foreach (Pedido entPedido in lstPedido) { Console.ResetColor(); lstErrores = new List <string>(); lstErrores = IValidacion.ValidarCampos(entPedido, lstPaqueteria); if (!lstErrores.Any()) { IAsignarPaqueteria.AsignarEntidadPaqueteria(entPedido, lstPaqueteria); cMensajePedido = IGenerarMensaje.CrearMensajeDePedido(entPedido, dtFechaHoy, cFormatoMesaje, lstPaqueteria, ref lEntregado); if (lEntregado) { Console.ForegroundColor = ConsoleColor.Green; } else { Console.ForegroundColor = ConsoleColor.Yellow; } Console.WriteLine(cMensajePedido + "\n"); } else { foreach (string cError in lstErrores) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(cError + "\n"); } } } Console.ReadLine(); }
public void RastrearPedidos() { string cRutaPedidos = @"..\..\Pedidos.txt"; string cEstadoPedido = string.Empty; string cRangoTiempo = string.Empty; string cCosto = string.Empty; string cRespuesta = string.Empty; List <IEmpresa> lstEmpresas; List <IMetodoEnvio> lstMetodosEnvio; IEmpresa empresaPedido; IPresentadorDatos presentador = new Presentadores.PresentadorDatos(); DateTime dtActual = DateTime.Now; try { #region [Instancias de clases] CreadorEmpresas creadorEmpresas = new CreadorEmpresas(); CreadorMetodosEnvio creadorMetodosEnvio = new CreadorMetodosEnvio(); CreadorRangosTiempo creadorRangosTiempo = new CreadorRangosTiempo(); CreadorValidaciones credorValidaciones = new CreadorValidaciones(); IConvertidorPedido convertidorPedido = new ConvertidorPedido(); ILectorArchivo lectorArchivo = new LectorArchivoTexto(convertidorPedido); CreadorValidaciones validaciones = new CreadorValidaciones(); ContextColor contextColor = new ContextColor(); IVerificadorEstadoPaquete verificadorEstadoPaquete = new VerificadorEstadoPaquete(dtActual); IVerificadorCostoEconomico verificadorEconomico = new VerificadorEconomicoMismoMedio(); #endregion IRangoTiempo rangoTiempo = creadorRangosTiempo.ConfigurarRangosTiempo(); IValidadorPedido validadorPedido = validaciones.CrearCadenaValidaciones(); List <PedidoDTO> lstPedidos = lectorArchivo.LeerArchivoAListaPedidos(cRutaPedidos); lstMetodosEnvio = creadorMetodosEnvio.CrearMetodoEnvio(); lstEmpresas = creadorEmpresas.GenerarEmpresas(lstMetodosEnvio); foreach (var pedido in lstPedidos) { cRespuesta = validadorPedido.RealizarValidacion(new List <PedidoDTO> { pedido }, lstEmpresas); if (string.IsNullOrWhiteSpace(cRespuesta)) { empresaPedido = lstEmpresas.Where(e => e.empresaDTO.cNombre.ToLower() == pedido.cPaqueteria.ToLower().Trim()).FirstOrDefault(); cEstadoPedido = empresaPedido.ObtenerEstadoPaquete(pedido, verificadorEstadoPaquete); cRangoTiempo = empresaPedido.CalcularRangoTiempo(pedido, dtActual, rangoTiempo); cCosto = empresaPedido.ObtenerCosto(pedido.dDistancia, verificadorEstadoPaquete); AplicarColorPorPedido(verificadorEstadoPaquete.VerificarPaqueteEntregado(), contextColor); cRespuesta = $"{cEstadoPedido} {cRangoTiempo} {cCosto} (cualquier reclamación con {empresaPedido.empresaDTO.cNombre})."; string cOpcionEconomica = verificadorEconomico.ObtenerOpcionMasEconomica(empresaPedido, lstEmpresas, pedido.dDistancia); if (!string.IsNullOrWhiteSpace(cOpcionEconomica)) { cRespuesta += $"\n*{cOpcionEconomica}"; } } else { AplicarColorValidacion(contextColor); } presentador.MostrarDatos(cRespuesta); } } catch (Exception excepcion) { presentador.MostrarDatos(excepcion.Message.Trim()); } }