예제 #1
0
        public void CrearPaqueteria_EnviarInterfaceTransporteVacia_CreaPaqueteriaSinListaTransporte()
        {
            Paqueteria Paqueteria = new Paqueteria();
            List <IInicializarTransportes> lstIInicializarTransportes = new List <IInicializarTransportes>();
            ITransportesPorPaqueteria      ITransportesPorPaqueteria  = new CrearTransportes(lstIInicializarTransportes);
            PaqueteriaDHL PaqueteriaDHL = new PaqueteriaDHL(ITransportesPorPaqueteria);

            Paqueteria = PaqueteriaDHL.CrearPaqueteria();
            Assert.IsTrue(!Paqueteria.lstETransporte.Any());
        }
예제 #2
0
        public void CrearPaqueteria_EnviarInterfaceTransporte_CreaPaqueteriaConMargerUtilidas()
        {
            Paqueteria Paqueteria = new Paqueteria();
            List <IInicializarTransportes> lstIInicializarTransportes = new List <IInicializarTransportes>();

            lstIInicializarTransportes.Add(new TransporteAvion());
            ITransportesPorPaqueteria ITransportesPorPaqueteria = new CrearTransportes(lstIInicializarTransportes);
            PaqueteriaDHL             PaqueteriaDHL             = new PaqueteriaDHL(ITransportesPorPaqueteria);

            Paqueteria = PaqueteriaDHL.CrearPaqueteria();
            Assert.IsTrue(Paqueteria.iMargenUtilidad != 0);
        }
예제 #3
0
        public void CrearPaqueteria_EnviarInterfaceTransporte_CreaPaqueteriaConNombreEmpresa()
        {
            Paqueteria Paqueteria = new Paqueteria();
            List <IInicializarTransportes> lstIInicializarTransportes = new List <IInicializarTransportes>();

            lstIInicializarTransportes.Add(new TransporteAvion());
            ITransportesPorPaqueteria ITransportesPorPaqueteria = new CrearTransportes(lstIInicializarTransportes);
            PaqueteriaDHL             PaqueteriaDHL             = new PaqueteriaDHL(ITransportesPorPaqueteria);

            Paqueteria = PaqueteriaDHL.CrearPaqueteria();
            Assert.IsTrue(!string.IsNullOrEmpty(Paqueteria.EEmpresa.ToString()));
        }
        public IPaqueterias CrearInstancia(string cPaqueteria)
        {
            IPaqueterias paqueteria;

            switch (cPaqueteria.ToUpper().Trim())
            {
            case "DHL": paqueteria = new PaqueteriaDHL(new TransporteFabrica()); break;

            case "ESTAFETA": paqueteria = new PaqueteriaEstafeta(new TransporteFabrica()); break;

            case "FEDEX": paqueteria = new PaqueteriaFedex(new TransporteFabrica()); break;

            default: throw new Exception($"La Paquetería: {cPaqueteria} no se encuentra registrada en nuestra red de distribución.");
            }

            return(paqueteria);
        }
예제 #5
0
        static void Main(string[] args)
        {
            Console.WriteLine("");
            string RutaPedido = @"C:\Proyectos\ProyectoFinal_BPPD\RastreoPaquetes\Pedidos.csv";
            IObtenedorFechaActual         obtenedorFecha          = new FechaActual();
            IProcesadorExpresionesMensaje procesadorExpresiones   = new ProcesardorExpresionMensajes(obtenedorFecha);
            IValidadorEstatusEntrega      validadorEstatusEntrega = new EstatusEntrega(obtenedorFecha);

            IProcesadorMensajes procesadorMensajes = new ProcesaMensaje();
            IPresentadorMensaje presentadorMensaje = new ImprimirMensajeConsola();
            RangoBase           rgBase             = new RangoBase(obtenedorFecha);
            RangoMinutos        minutos            = new RangoMinutos(rgBase);
            RangoHoras          horas = new RangoHoras(rgBase);
            RangoDias           dia   = new RangoDias(rgBase);
            RangoMeses          mes   = new RangoMeses(rgBase);

            minutos.SetSiguienteCalculo(horas);
            horas.SetSiguienteCalculo(dia);
            dia.SetSiguienteCalculo(mes);



            IFormatoEntradaFactory formatoFactory = new FormatoEntradaCSV();
            var               formatoEntrada      = formatoFactory.GenerarInstaciaFormatoEntrada();
            List <Pedido>     lstPedidos          = formatoEntrada.ObtenerEntradaPedidos(RutaPedido);
            IMediosTransporte mediosTransporte;

            mediosTransporte = new TransporteTren();
            mediosTransporte = new TransporteBarco();
            mediosTransporte = new TransporteAvion();


            IEmpresasPaqueteria empresasPaqueteria =
                new PaqueteriaDHL(mediosTransporte, procesadorExpresiones, validadorEstatusEntrega, minutos, procesadorMensajes, presentadorMensaje);

            empresasPaqueteria.ProcesarRastreo(lstPedidos[0]);
        }
예제 #6
0
        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();
        }