Ejemplo n.º 1
0
        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;
            }
        }
Ejemplo n.º 2
0
 public void EstatusEnvio()
 {
     if (solicitudEnvio.dtFechaEntrega < solicitudEnvio.dtFechaActual)
     {
         Mensaje  = new Mensaje(solicitudEnvio);
         Bitacora = new Bitacoraentrega(solicitudEnvio.cPaqueteria, solicitudEnvio.cTipotiempo);
     }
     else
     {
         Mensaje  = new MensajeEnCamino(solicitudEnvio);
         Bitacora = new BitacoraPendiente(solicitudEnvio.cPaqueteria, solicitudEnvio.cTipotiempo);
     }
 }
Ejemplo n.º 3
0
 public string ProcesarEnvios()
 {
     try
     {
         solicitudEnvio.dCostosEnvio   = ObtenerCostos();
         solicitudEnvio.dtFechaEntrega = ObtenerFechaentrega();
         solicitudEnvio.cTiempo        = ObtenerTiempoEnvio();
         solicitudEnvio.cTipotiempo    = ObtenerTipoTiempo();
         EstatusEnvio();
         cMensajeEnvio = GenerarMensaje();
         BuscarOtrasOpciones(ref LstOpciones);
         cMensajeEnvio += SeleccionarOpcion(ref LstOpciones);
         Bitacora.GenerarRegistro(cMensajeEnvio);
         return(cMensajeEnvio);
     }
     catch (Exception ex)
     {
         Mensaje = new ErrorMensaje();
         throw new Exception(string.Format(Mensaje.ImprimirMensajeEnvio(), ex.Message));
     }
 }