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; } }
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); } }
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)); } }