Exemplo n.º 1
0
        public EmpresaAbstract ObtenerEmpresa(string _cEmpresa)
        {
            Paqueterias entPaqueteria;

            switch (_cEmpresa.ToUpper())
            {
            case "FEDEX":
                entPaqueteria = entDatosConfig.Paqueterias.Where(w => w.Paqueteria.ToUpper() == "FEDEX").FirstOrDefault();
                Empresa       = new Fedex(Transporte, DatosPedido.dDistancia, DatosPedido.dtFechaActual, entPaqueteria);
                break;

            case "DHL":
                entPaqueteria = entDatosConfig.Paqueterias.Where(w => w.Paqueteria.ToUpper() == "DHL").FirstOrDefault();
                Empresa       = new DHL(Transporte, DatosPedido.dDistancia, DatosPedido.dtFechaActual, entPaqueteria);
                break;

            case "ESTAFETA":
                entPaqueteria = entDatosConfig.Paqueterias.Where(w => w.Paqueteria.ToUpper() == "ESTAFETA").FirstOrDefault();
                Empresa       = new Estafeta(Transporte, DatosPedido.dDistancia, DatosPedido.dtFechaActual, entPaqueteria);
                break;

            default:
                throw new Exception(string.Format("La paquetería: {0} no se encuentra registrada en nuestra red de distribución", DatosPedido.cPaqueteria));
            }
            Empresa.entTransporte = Transporte;
            return(Empresa);
        }
Exemplo n.º 2
0
        public void ObtenerResultado()
        {
            EmpresaFactory     FabricaEmpresa;
            MensajesService    srvMensajes;
            ITransporteFactory FabricaTransporte = new TransporteFactory();
            IColorTexto        colorTextoError   = new TextoRojo();

            foreach (var item in lstDatosPedido)
            {
                try
                {
                    item.dtFechaActual = DateTime.Now;
                    ITransporte entTransporte = FabricaTransporte.ObtenerTransporte(item.cMedioTransporte, entDatosConfig);
                    FabricaEmpresa = new EmpresaFactory(entTransporte, item, entDatosConfig);
                    EmpresaAbstract Empresa = FabricaEmpresa.ObtenerEmpresa(item.cPaqueteria);
                    item.dtFechaEntrega   = Empresa.ObtenerFechaEntrega(item.dtFechaPedido);
                    item.tsTiempoTraslado = Empresa.tsTiempoTraslado;
                    item.dCostoEnvio      = Empresa.ObtenerCostoEnvio();
                    srvMensajes           = new MensajesService(item);
                    srvMensajes.GenerarMensaje();
                }
                catch (Exception ex)
                {
                    colorTextoError.ObtenerColor();
                    if (string.IsNullOrWhiteSpace(ex.Message))
                    {
                        Console.WriteLine(string.Format("{0} no ofrece el servicio de transporte {1}, te recomendamos cotizar en otra empresa", item.cPaqueteria, item.cMedioTransporte));
                    }
                    else
                    {
                        Console.WriteLine(ex.Message);
                    }
                }
            }
        }