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; } }
static void Main(string[] args) { Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); List <SolicitudEnvio> LstSolicitudes = new List <SolicitudEnvio>(); IFormatProvider culture = new CultureInfo("ES-MX", true); Configuraciones configuraciones = new Configuraciones(); ConfiguracionesDTO Configuracion = configuraciones.ObtenerConfiguraciones(); configuraciones.Bitacora(); string Comando = string.Empty; do { Console.WriteLine("Seleccione el origen de los envíos:"); Comando = Console.ReadLine(); try { AdaptadorLectura Adaptador = new AdaptadorLectura(Comando, culture); Adaptador.ObtenerPaquetes(ref LstSolicitudes); } catch (Exception Ex) { Console.WriteLine(Ex.Message); Comando = string.Empty; } }while (Comando == string.Empty); foreach (SolicitudEnvio solicitud in LstSolicitudes) { try { FactoryEnvios factoryEnvios = new FactoryEnvios(solicitud, Configuracion); IEnviosPaquetes Envio = factoryEnvios.CrearEnvio(); Console.WriteLine(Envio.ProcesarEnvios()); Console.WriteLine(""); } catch (Exception ex) { Console.WriteLine(ex.Message); Console.WriteLine(); } } Console.WriteLine("finalizado..."); Console.ReadKey(); }
public ConfiguracionesDTO ObtenerConfiguraciones() { StreamReader reader = new StreamReader(File.OpenRead(AppDomain.CurrentDomain.BaseDirectory + "../../Config.json")); var cEnvios = reader.ReadToEnd(); //JObject parsed = JObject.Parse(cEnvios); //var JSonPedidos = parsed["Pedidos"]; ConfiguracionesDTO Configuracion = new ConfiguracionesDTO(); //foreach (var Envio in JSonPedidos) //{ //} return(Configuracion); }
public ActionResult GetConfiguracion(int idProducto, string codigo = "") { ConfiguracionesDTO model = new ConfiguracionesDTO(); var configuracion = db.formulacion_comodin.Where(m => m.ID_PRODUCTO == idProducto).Include(m => m.atributo_subatributo); var carasDistintas = configuracion.Select(m => m.ID_PIEZA).Distinct().ToList(); model.ListaCaras = new List <caraDTO>(); model.idProducto = idProducto; string[] ArrayCode = { }; string[] ArrayM = { }; string[] ArrayT = { }; string[] ArrayA = { }; Boolean configurado = false; try { if (codigo != "") { var selecionados = new atributoSeleccionadosDTO(); configurado = true; ArrayCode = codigo.Split('/'); ArrayM = ArrayCode[0].Split('M').Where(m => m != "").ToArray(); ArrayT = ArrayCode[1].Split('T').Where(m => m != "").ToArray(); ArrayA = ArrayCode[2].Split('A').Where(m => m != "").ToArray(); } int numCara = 0; foreach (int idCara in carasDistintas) { caraDTO cara = new caraDTO(); cara.ListaComodines = new List <comodinDTO>(); cara.idProducto = idProducto; cara.idCara = idCara; cara.cara = db.piezas_configurables.FirstOrDefault(m => m.ID == idCara).NOMBRE; var comodinesporCara = configuracion.Where(m => m.ID_PIEZA == idCara); foreach (formulacion_comodin comodin in comodinesporCara) { var atributoByComodin = comodin.atributo_subatributo; if (atributoByComodin.Count > 0) { comodinDTO cmdnDTO = new comodinDTO(); cmdnDTO.listaCombos = new List <combosDTO>(); cmdnDTO.idFormulacion = comodin.ID; cmdnDTO.idAtributo = comodin.ID_COMODIN; cmdnDTO.startLevel = atributoByComodin.FirstOrDefault(m => m.ID == comodin.ID_COMODIN).NIVEL; cmdnDTO.endLevel = atributoByComodin.Max(m => m.NIVEL); var atributoIncial = atributoByComodin.FirstOrDefault(m => m.NIVEL == cmdnDTO.startLevel); //indica el contenido del primer combo var CodigotipoAtributo = atributoByComodin.FirstOrDefault(m => m.NIVEL == 0).CODIGO; int?idPadre = null; int numCombo = 0; for (int i = 0; i < cmdnDTO.endLevel; i++) { int nivel = i + 1; combosDTO combo = new combosDTO(); combo.nombre = atributoIncial.NOMBRE; combo.nivel = nivel; combo.numCmbo = numCombo; if (i == cmdnDTO.endLevel - 1) { combo.ultimoCmbo = true; } if (configurado) { String cod = ""; switch (CodigotipoAtributo) { case "M": if (i == 0) { idPadre = 2; } cod = ArrayM[numCara].Substring(i * 2, 2); break; case "T": if (i == 0) { idPadre = 3; } if (i == 2) { cod = ArrayT[numCara].Substring(i * 2, 3); } else { cod = ArrayT[numCara].Substring(i * 2, 2); } break; case "A": if (i == 0) { idPadre = 4; } cod = ArrayA[numCara].Substring(i * 2, 2); break; } combo.seleccionado = atributoByComodin.FirstOrDefault(m => m.NIVEL == nivel && m.CODIGO == cod && m.ID_PADRE == idPadre).ID; idPadre = combo.seleccionado; } if (i >= cmdnDTO.startLevel) { cmdnDTO.listaCombos.Add(combo); numCombo++; } } cara.ListaComodines.Add(cmdnDTO); } } model.ListaCaras.Add(cara); numCara++; } } catch (Exception e) { var err = e; } return(PartialView("~/Views/Cotizacion/Cotizaciones/Partials/_SeleccionarConfiguracion.cshtml", model)); //return Json(ListaCaras, JsonRequestBehavior.AllowGet); }