public PaqueteriaFactory(IMedioTransporteFactory _medioTransporteFactory, PaqueteriasDTO _paqueteriasDTO) { MedioTransporteFactory = _medioTransporteFactory; paqueteriasDTO = _paqueteriasDTO; }
static void Main(string[] args) { try { TemporadasMediosDTO temporadasDTO = new TemporadasMediosDTO(); PeriodosDTO periodosDTO = new PeriodosDTO(); PaqueteriasDTO paqueteriasDTO = new PaqueteriasDTO(); RegisterServices(); try { // Open the text file using a stream reader. using (StreamReader sr = new StreamReader("Config.json")) { // Read the stream to a string, and write the string to the console. string line = sr.ReadToEnd(); var Json = JsonConvert.DeserializeObject(line); IEnumerable <object> collection = (IEnumerable <object>)Json; var lst = collection.ToList(); temporadasDTO = JsonConvert.DeserializeObject <TemporadasMediosDTO>(lst[0].ToString()); periodosDTO = JsonConvert.DeserializeObject <PeriodosDTO>(lst[1].ToString()); paqueteriasDTO = JsonConvert.DeserializeObject <PaqueteriasDTO>(lst[2].ToString()); } var medioTransporteFactory = new MedioTransporteFactory(temporadasDTO.MediosTransporte, temporadasDTO.Temporadas); var paqueteriaFactory = new PaqueteriaFactory(medioTransporteFactory, paqueteriasDTO); var lstPaqueterias = new List <IPaqueteria>(); foreach (var paqueteriaDTO in paqueteriasDTO.Paqueterias) { lstPaqueterias.Add(paqueteriaFactory.Create(paqueteriaDTO.Paqueteria)); } var tipoArchivo = args[1]; var extensionArchivo = tipoArchivo.ToLower(); var factoryLectorArchivo = new LectorArchivoFactory(); var lectorArchivo = factoryLectorArchivo.Create(tipoArchivo); var lstPedidos = lectorArchivo.LeerArchivo("pedidos." + extensionArchivo, ""); AdministradorPedidos administrador = new AdministradorPedidos(lstPedidos, lstPaqueterias.ToArray(), new TextoFormateadorFactory()); var lstObtenerEstadosPedido = administrador.ObtenerEstatusPedidos(DateTime.Now); ////Pinta el resultado foreach (var item in lstObtenerEstadosPedido) { Console.ForegroundColor = (ConsoleColor)System.Enum.Parse(typeof(ConsoleColor), item.Color); Console.WriteLine(item.Mensaje + "\n"); } //Crea archivos var paqueteriasConPedido = lstObtenerEstadosPedido.Select(d => d.Paqueteria).Distinct(); foreach (var item in paqueteriasConPedido) { var pathEntregados = item + @"\Entregados"; var pathPendientes = item + @"\Pendientes"; if (!Directory.Exists(item)) { Directory.CreateDirectory(item); Directory.CreateDirectory(pathEntregados); Directory.CreateDirectory(pathPendientes); } var entregados = (from salida in lstObtenerEstadosPedido where salida.Paqueteria.Equals(item) && salida.Estado.Equals("Entregado") group salida by salida.Clasificador into newGroup select new { Key = newGroup.Key, Values = string.Join('\n', newGroup.Select(f => f.Mensaje)) }).ToList(); var pendientes = (from salida in lstObtenerEstadosPedido where salida.Paqueteria.Equals(item) && salida.Estado.Equals("Pendiente") group salida by salida.Clasificador into newGroup select new { Key = newGroup.Key, Values = string.Join('\n', newGroup.Select(f => f.Mensaje)) }).ToList(); foreach (var grupo in entregados) { File.WriteAllText(pathEntregados + @$ "\{grupo.Key}.txt", grupo.Values); } foreach (var grupo in pendientes) { File.WriteAllText(pathPendientes + @$ "\{grupo.Key}.txt", grupo.Values);