Beispiel #1
0
        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 void Main()
        {
            ITransporteFactory transporte     = new TransporteFactory();
            IEmpresaFactory    empresaFactory = new EmpresaFactory();

            do
            {
                ITipoEnvio tipoEnvio = transporte.CrearInstancia(ObtenerTransporte());
                int        iEmpresa  = ObtenerEmpresa();
                string     cProducto = ObtenerProducto();
                Empresas   empresa   = empresaFactory.CrearInstancia(iEmpresa, tipoEnvio, cProducto);

                IniciarMensajeria(empresa);
            } while (true);
        }