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