public FactoryEnvios(SolicitudEnvio _solicitudEnvio, ConfiguracionesDTO _configuraciones)
        {
            SolicitudEnvio        = _solicitudEnvio;
            PaqueteriaCompetencia = new List <IPaqueteria>();
            Tiempos  = crearformatosTiempo();
            Mensajes = new ErrorMensaje();

            switch (SolicitudEnvio.cPaqueteria)
            {
            case "Fedex":
                Paqueteria = new Fedex(SolicitudEnvio.cTransporte, SolicitudEnvio.dtFechaEnvio, _configuraciones.ConfiguracionFedex);
                PaqueteriaCompetencia.Add(new DHL(SolicitudEnvio.cTransporte, SolicitudEnvio.dtFechaEnvio, _configuraciones.ConfiguracionDHL));
                PaqueteriaCompetencia.Add(new Estafeta(SolicitudEnvio.cTransporte, SolicitudEnvio.dtFechaEnvio, _configuraciones.ConfiguracionEstafeta));
                break;

            case "DHL":
                Paqueteria = new DHL(SolicitudEnvio.cTransporte, SolicitudEnvio.dtFechaEnvio, _configuraciones.ConfiguracionDHL);
                PaqueteriaCompetencia.Add(new Fedex(SolicitudEnvio.cTransporte, SolicitudEnvio.dtFechaEnvio, _configuraciones.ConfiguracionFedex));
                PaqueteriaCompetencia.Add(new Estafeta(SolicitudEnvio.cTransporte, SolicitudEnvio.dtFechaEnvio, _configuraciones.ConfiguracionEstafeta));

                break;

            case "Estafeta":
                Paqueteria = new Estafeta(SolicitudEnvio.cTransporte, SolicitudEnvio.dtFechaEnvio, _configuraciones.ConfiguracionEstafeta);
                PaqueteriaCompetencia.Add(new Fedex(SolicitudEnvio.cTransporte, SolicitudEnvio.dtFechaEnvio, _configuraciones.ConfiguracionFedex));
                PaqueteriaCompetencia.Add(new DHL(SolicitudEnvio.cTransporte, SolicitudEnvio.dtFechaEnvio, _configuraciones.ConfiguracionDHL));

                break;

            default:
                throw new Exception(string.Format(Mensajes.ImprimirMensajeEnvio(), MostrarValidacionPaqueteria()));
                break;
            }

            if (!Paqueteria.ValidarTransporte())
            {
                throw new Exception(string.Format(Mensajes.ImprimirMensajeEnvio(), MostrarValidaciontransporte()));
            }

            switch (SolicitudEnvio.cTransporte)
            {
            case "Marítimo":
                Transporte = new Maritimo(SolicitudEnvio.dDistancia, SolicitudEnvio.dtFechaEnvio, _configuraciones.ConfiguracionMaritimo);
                break;

            case "Terrestre":
                Transporte = new Terrestre(SolicitudEnvio.dDistancia, SolicitudEnvio.dtFechaEnvio, _configuraciones.ConfiguracionTerrestre);
                break;

            case "Aéreo":
                Transporte = new Aereo(SolicitudEnvio.dDistancia, SolicitudEnvio.dtFechaEnvio, _configuraciones.ConfiguracionAereo);
                break;

            default:
                throw new Exception(string.Format(Mensajes.ImprimirMensajeEnvio(), MostrarValidaciontransporte()));
                break;
            }
        }
Esempio n. 2
0
 public TiempoDeEntrega(StringBuilder mensajeEntregado,
                        bool estaEntregado,
                        IFormatoTiempo formatoTiempo,
                        ICreadorMensaje creadorMensajeSiguiente)
     : base(mensajeEntregado, creadorMensajeSiguiente)
 {
     _estaEntregado = estaEntregado;
     _formatoTiempo = formatoTiempo;
 }
Esempio n. 3
0
        public Envios(IPaqueteria _Paqueteria, ITransporte _Transporte, IFormatoTiempo _FormatoTiempo,
                      SolicitudEnvio _solicitudEnvio)
        {
            solicitudEnvio = _solicitudEnvio;
            Paqueteria     = _Paqueteria;
            cPaqueteria    = solicitudEnvio.cPaqueteria;
            FormatoTiempo  = _FormatoTiempo;

            this.LstOpciones = new Dictionary <string, decimal>();
            this.Transporte  = _Transporte;
        }
Esempio n. 4
0
        public string ObtenerRespuesta()
        {
            StringBuilder         stringBuilder = new StringBuilder();
            List <PeticionPedido> pedidos       = lectorArchivoPedido.LeerArchivo();
            IEmpresaPaqueteria    empresaPaqueteria;

            foreach (PeticionPedido pedido in pedidos)
            {
                try
                {
                    empresaPaqueteria = sucursal.ObtenerEmpresa(pedido.PaqueteriaCadena);
                    IFormatoTiempo formatoTiempo = formatosTiempoEspecificos.ObtenerFormatoTiempo(tiempoActual, pedido.FechaPedido);
                    string         mensaje       = new CreadorMensajeEntregado(empresaPaqueteria, formatoTiempo).CrearMensajeEntregado(pedido, true);
                    stringBuilder.AppendLine(mensaje);
                }
                catch (Exception err)
                {
                    stringBuilder.AppendLine(err.Message);
                }
            }
            return(stringBuilder.ToString());
        }
Esempio n. 5
0
 public void Siguiente(IFormatoTiempo _formatoTiempo)
 {
     this.formatoTiempo = _formatoTiempo;
 }
Esempio n. 6
0
 public CreadorMensajeEntregado(IEmpresaPaqueteria empresaPaqueteria, IFormatoTiempo formatoTiempo)
 {
     this.empresaPaqueteria = empresaPaqueteria;
     this.formatoTiempo     = formatoTiempo;
 }