private static List <string> ObtenerMensajesPedido(List <PedidoDTO> _lstPedidoDTO) { DateTime dtFechaActual = new DateTime(2020, 1, 23, 14, 0, 0); var docContainer = Container.For <DI_Dependencias>(); TiempoRepartoFactory tiempoRepartoFactory = new TiempoRepartoFactory(docContainer); TiempoTrasladoFactory tiempoTrasladoFactory = new TiempoTrasladoFactory(); MensajePedidoPaquete mensajePedidoPaquete = ObtenerInstanciaMensajePedidoPaquete(); CostoEnvioFactory costoEnvioFactory = new CostoEnvioFactory(docContainer); List <string> lstInformacionPedido = new List <string>(); foreach (PedidoDTO pedido in _lstPedidoDTO) { ITiempoReparto tiempoReparto = tiempoRepartoFactory.CrearInstancia(pedido.enumEmpresa); ITiempoTraslado tiempoTraslado = tiempoTrasladoFactory.CrearInstancia(pedido.enumMedioTransporte); ITiempoEntrega tiempoEntrega = new TiempoEntrega(tiempoTraslado, tiempoReparto); IFechaEntrega fechaEntrega = new FechaEntrega(); ICostoEnvio costoEnvio = costoEnvioFactory.CrearInstancia(pedido.enumMedioTransporte, pedido.cIdentificadorEmpresa); ProcesadorInformacionPedidoPaquete procesadorInformacionPedidoPaquete = new ProcesadorInformacionPedidoPaquete(mensajePedidoPaquete, tiempoEntrega, fechaEntrega, costoEnvio); lstInformacionPedido.Add(procesadorInformacionPedidoPaquete.ObtenerInformacionPedidoPaquete(pedido, dtFechaActual)); } return(lstInformacionPedido); }
//private readonly IContainer container; //public TiempoTrasladoFactory(IContainer _container) //{ // container = _container ?? throw new ArgumentNullException(nameof(_container)); //} public ITiempoTraslado CrearInstancia(EnumMedioTransporte _enumMedioTransporte) { ITiempoTraslado tiempoTraslado = null; switch (_enumMedioTransporte) { case EnumMedioTransporte.Maritimo: break; case EnumMedioTransporte.Terrestre: break; case EnumMedioTransporte.Aereo: IEscalaPorKM escalaPorKM = new EscalaPorKMAereo(); ITiempoExtraTraslado tiempoExtraTraslado = new TiempoExtraTrasladoAereo(escalaPorKM); IVelocidadEntregaTransporte velocidadEntregaTransporte = new VelocidadEntregaTransporte(); tiempoTraslado = new TiempoTrasladoAereo(tiempoExtraTraslado, velocidadEntregaTransporte); break; } return(tiempoTraslado); }
public TiempoEntrega(ITiempoTraslado _tiempoTraslado, ITiempoReparto _tiempoReparto) { tiempoTraslado = _tiempoTraslado ?? throw new System.ArgumentNullException(nameof(_tiempoTraslado)); tiempoReparto = _tiempoReparto ?? throw new System.ArgumentNullException(nameof(_tiempoReparto)); }