public void Setup() { _envioService = new Mock <IEnvioService>(); _administradorMensaje = new Mock <IAdministradorMensaje>(); _rastreoService = new RastreoService(_envioService.Object, _administradorMensaje.Object); _pedido = new PedidoDto() { Destino = "Destino", Origen = "Origen", Distancia = 80, Paqueteria = "Paqueteria", Transporte = "Transporte" }; _paqueteria = new Fedex() { Nombre = "Fedex", MargenUtilidad = 40 }; _transporte = new Barco() { CostoXKilometro = 1, Nombre = "Barco", VelocidadEntrega = 46 }; }
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); } } } }
public CentroLogisticaBuilder WithTransporteCreado(ITransporte transporte) { _centroLogisticaMock .Setup(x => x.CrearTransporte()) .Returns(transporte); return(this); }
public List <IPaqueteria> ObtenerPaqueterias() { ITransporteFactory transporteFactory = new BarcoFactory(); ITransporte barco = transporteFactory.CrearTransporte(); transporteFactory = new TrenFactory(); ITransporte tren = transporteFactory.CrearTransporte(); transporteFactory = new AvionFactory(); ITransporte avion = transporteFactory.CrearTransporte(); IPaqueteriaFactory factory = new FedexFactory(); IPaqueteria fedex = factory.CrearPaqueteria(); fedex.AgregarTransporte(barco); factory = new DhlFactory(); IPaqueteria dhl = factory.CrearPaqueteria(); dhl.AgregarTransporte(avion); dhl.AgregarTransporte(barco); factory = new EstafetaFactory(); IPaqueteria estafeta = factory.CrearPaqueteria(); estafeta.AgregarTransporte(tren); estafeta.AgregarTransporte(barco); return(new List <IPaqueteria>() { fedex, dhl, estafeta }); }
// The client code works with an instance of a concrete creator, albeit // through its base interface. As long as the client keeps working with // the creator via the base interface, you can pass it any creator's // subclass. public void Crear(Logistica logistica) { ITransporte transporte = logistica.CrearTransporte(true); Console.WriteLine("Client: I'm not aware of the creator's class," + "but it still works.\n" + transporte); Console.ReadLine(); }
private double CalcularCostoPorTrasnporte(ITransporte transporte, double distancia) { double costoTrasporte; costoTrasporte = transporte.CostoKilometro * distancia; return(costoTrasporte); }
public double CalcularCostoEnvio(ITransporte transporte, double distancia, IPaqueteria paqueteria) { double costoEnvio; costoEnvio = CalcularCostoPorTrasnporte(transporte, distancia) * CalcularMargenUtilidad(paqueteria); return(costoEnvio); }
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 CrearTransporte_Caso_CrearCamion() { LogisticaTerrestre logisticaTerrestre = new LogisticaTerrestre(); ITransporte camion = logisticaTerrestre.CrearTransporte(true); string tipo = camion.ObtenerTipo(); Assert.Equal(TipoLogistica.Camion, tipo); }
public Fedex(ITransporte entTransporte, decimal _dDistancia, DateTime _dtFechaActual, Paqueterias _entPaqueteria) { this.entTransporte = entTransporte; this.entPaqueteria = _entPaqueteria; ValidaTransporte(); base.dDistancia = _dDistancia; base.dtFechaActual = _dtFechaActual; this.dMargenUtilidad = _entPaqueteria.MargenUtilidad; }
public void CrearTransporte_Caso_CrearBarco() { LogisticaMaritima logisticaTerrestre = new LogisticaMaritima(); ITransporte barco = logisticaTerrestre.CrearTransporte(true); string tipo = barco.ObtenerTipo(); Assert.Equal(TipoLogistica.Barco, tipo); }
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; }
public override bool AddTransporte(ITransporte transporte) { bool respuesta = true; if (!(transporte is Barco) || !(transporte is Tren)) { respuesta = false; } return(respuesta); }
private void ValidarTransporte(string _cTransporte) { bool existe = RequestPaqueteria.lstTransporte.ContainsValue(_cTransporte.ToUpper().Trim()); if (!existe) { throw new Exception($"DHL no ofrece el servicio por {_cTransporte}, te recomendamos cotizar en otra empresa."); } transporte = transporteFabrica.CrearInstancia(_cTransporte); }
protected override void When() { try { _result = _sut.CrearTransporte(); } catch (Exception exception) { _exception = exception; } }
static void Main(string[] args) { ContenedorDependencias contenedor = new ContenedorDependencias(); IArchivoService archivoService = contenedor.GetServiceProvider().GetService <IArchivoService>(); IValidadorFormatoPedido validadorFormatoPedido = contenedor.GetServiceProvider().GetService <IValidadorFormatoPedido>(); IRastreoService rastreoService = contenedor.GetServiceProvider().GetService <IRastreoService>(); IImpresoraMensaje impresoraMensaje = contenedor.GetServiceProvider().GetService <IImpresoraMensaje>(); ITransporteService transporteService = contenedor.GetServiceProvider().GetService <ITransporteService>(); IPaqueteriasService paqueteriasService = contenedor.GetServiceProvider().GetService <IPaqueteriasService>(); string path = Directory.GetCurrentDirectory() + "/../../../Pedidos.txt"; try { List <string> lineas = archivoService.ObtenerLineas(path); PedidoDto pedido; MensajeDto mensajeDto; if (lineas != null) { foreach (string linea in lineas) { pedido = validadorFormatoPedido.ValidarFormatoPedido(linea); mensajeDto = new MensajeDto() { Color = ConsoleColor.Red }; IPaqueteria paqueteria = paqueteriasService.BuscarPaqueteria(pedido.Paqueteria); if (paqueteria == null) { mensajeDto.Mensaje = string.Format("La Paquetería: [{0}] no se encuentra registrada en nuestra red de distribución.", pedido.Paqueteria); } else { ITransporte transporte = transporteService.BuscarTransporte(paqueteria, pedido.Transporte); if (transporte == null) { mensajeDto.Mensaje = string.Format("La paqueteria: [{0}] no ofrece el servicio de transporte [{1}], te recomendamos cotizar en otra empresa.", pedido.Paqueteria, pedido.Transporte); } else { mensajeDto = rastreoService.ObtenerMensajeRastreo(pedido, paqueteria, transporte); } } impresoraMensaje.ImprimirMensaje(mensajeDto); } } } catch (Exception ex) { Console.WriteLine(ex.Message); } }
internal void Enviar(ITransporte transporte) { if (transporte.PorcentajeCarga() >= 0.5) { transporte.Cargar(this.Peso); this.SeEnvio = true; } else { this.SeEnvio = false; } }
public void CrearTransporte_CreacionAvion_ObjetoAvionCreadoCorrectamente() { //Arrange string NombreExp = "Avión"; double costoKilometro = 10; double velocidadEntrega = 600; //Act AvionFactory avionFactory = new AvionFactory(); ITransporte avion = avionFactory.CrearTransporte(); //Assert Assert.AreEqual(NombreExp, avion.Nombre); Assert.AreEqual(costoKilometro, avion.CostoXKilometro); Assert.AreEqual(velocidadEntrega, avion.VelocidadEntrega); }
public void CrearTransporte_CreacionBarco_ObjetoBarcoCreadoCorrectamente() { //Arrange string NombreExp = "Barco"; double costoKilometro = 1; double velocidadEntrega = 46; //Act BarcoFactory barcoFactory = new BarcoFactory(); ITransporte barco = barcoFactory.CrearTransporte(); //Assert Assert.AreEqual(NombreExp, barco.Nombre); Assert.AreEqual(costoKilometro, barco.CostoXKilometro); Assert.AreEqual(velocidadEntrega, barco.VelocidadEntrega); }
public void CrearTransporte_CreacionTren_ObjetoTrenCreadoCorrectamente() { //Arrange string NombreExp = "Tren"; double costoKilometro = 5; double velocidadEntrega = 80; //Act TrenFactory trenFactory = new TrenFactory(); ITransporte tren = trenFactory.CrearTransporte(); //Assert Assert.AreEqual(NombreExp, tren.Nombre); Assert.AreEqual(costoKilometro, tren.CostoXKilometro); Assert.AreEqual(velocidadEntrega, tren.VelocidadEntrega); }
public ITransporte CrearInstancia(string cTransporte) { ITransporte transporte = null; switch (cTransporte.ToUpper().Trim()) { case "BARCO": transporte = new TransporteBarco(); break; case "TREN": transporte = new TransporteTren(); break; case "AVION": transporte = new TransporteAvion(); break; } return(transporte); }
public BridgeTransporte(ITransporte _Transporte) { Transporte = _Transporte; }
static void SobreTransporte(ITransporte t) // aqui qualquer objeto que implemente a interface ITransporte pode ser informado { t.andar(); }
public MensajeDto ObtenerMensajeRastreo(PedidoDto pedido, IPaqueteria paqueteria, ITransporte transporte) { double tiempoTraslado = _envioService.CalcularTiempoTraslado(pedido.Distancia, transporte.VelocidadEntrega); DateTime fechaEntrega = _envioService.CalcularFechaEntrega(pedido.Fecha, tiempoTraslado); double costoEnvio = _envioService.CalcularCostoEnvio(pedido.Distancia, paqueteria.MargenUtilidad, transporte.CostoXKilometro); return(_administradorMensaje.ObtenerMensajeEnvio(pedido, fechaEntrega, costoEnvio)); }
public EmpresaFactory(ITransporte _Transporte, DatosPedido _Datos, DatosConfiguracion _entDatosConfig) { Transporte = _Transporte; DatosPedido = _Datos; entDatosConfig = _entDatosConfig; }
public PuentePaqueteriaTransporte(ITransporte _Transporte) { Transporte = _Transporte; }
public void RePoblarPedido(IPedido pedido, DateTime fechaActual, int margenUtilidad, ITransporte transporte) { pedido.EscalaTiempo = _obtenedorEscala.ObtenerEscalaTiempo(fechaActual, pedido.FechaHora); pedido.Tiempo = _obtenedorTipoEvento.ObtenerTipoEvento(fechaActual, pedido.FechaHora); pedido.Duracion = _obtenedorDuracion.ObtenerDuracion(fechaActual, pedido.FechaHora, pedido.EscalaTiempo); pedido.Costo = _calculador.CalcularCosto(transporte.CostoKm, pedido.Distancia, margenUtilidad); pedido.FechaEntrega = _calculador.CalcularFechaEntrega(pedido.FechaHora, pedido.Duracion, pedido.EscalaTiempo); }
public void AgregarTransporte(ITransporte transporte) { Transportes.TryAdd(transporte.TipoTransporte, transporte); }
public void AgregarTransporte(ITransporte transporte) { _transportes.Add(transporte); }
public void RemoverTransporte(ITransporte transporte) { Transportes.Remove(transporte.TipoTransporte); }