public void LeerArchivo_EnviarNombreArchivoVacio_LanzaExcepcion() { // Arrange ILector DOC = new LectorCSV(); string ruta = ""; // ACT var ACT = DOC.LeerDatos(ruta); // Assert Assert.ThrowsException <FileNotFoundException>(() => ACT); }
public void LeerDatos_ArchivoExistenteConDatos_DeveulveListaConDatos() { // Arrange ILector DOC = new LectorCSV(); string ruta = "C:\\Pedidos.xlsx"; // ACT var ACT = DOC.LeerDatos(ruta); // Assert Assert.IsTrue(ACT.Any()); }
public void LeerArchivo_ArchivoExistenteConEspaciosEnBlanco_DeveulveListaVacia() { // Arrange ILector DOC = new LectorCSV(); string ruta = "C:\\PedidosEspaciosEnBlanco.xlsx"; // ACT var ACT = DOC.LeerDatos(ruta); // Assert Assert.IsFalse(ACT.Any()); }
public void LeerDatos_ArchivoNoExistente_LanzaExcepcion() { // Arrange ILector DOC = new LectorCSV(); string ruta = "C:\\pruebas.txt"; // ACT var ACT = DOC.LeerDatos(ruta); // Assert Assert.ThrowsException <FileNotFoundException>(() => ACT); }
static void Main(string[] args) { ILector lector = new LectorCSV(); IConvertidor convertidor = new ConvertidorObjetos(); string ruta = Path.GetFullPath("Pedidos.xlsx"); var datos = lector.LeerDatos(ruta); List <Pedido> pedidos = new List <Pedido>(); pedidos = convertidor.ConvertirDatos(datos); Context context = new Context(); List <IEmpresa> empresas = new List <IEmpresa>(); //Fedex context.AsignarEstrategia(new EstrategiaFedex()); List <IFabricaMedioTransporte> fabricas = new List <IFabricaMedioTransporte>(); fabricas.Add(new FabricaBarco()); var fedex = context.EjecutarEstrategia(fabricas, new Barco()); empresas.Add(fedex); //DHL context.AsignarEstrategia(new EstrategiaDHL()); List <IFabricaMedioTransporte> fabricas2 = new List <IFabricaMedioTransporte>(); fabricas2.Add(new FabricaAvion()); fabricas2.Add(new FabricaBarco()); var dhl = context.EjecutarEstrategia(fabricas2, new Avion()); empresas.Add(dhl); //Estafeta context.AsignarEstrategia(new EstrategiaEstafeta()); List <IFabricaMedioTransporte> fabricas3 = new List <IFabricaMedioTransporte>(); fabricas3.Add(new FabricaTren()); var estafeta = context.EjecutarEstrategia(fabricas3, new Tren()); empresas.Add(estafeta); IProcesarDatos procesarDatos = new ProcesarDatos(); IArmarMensajes armarMensajes = new ArmarMensajes(); IPresentador presentador = new Presentador(); ValidadorService validador = new ValidadorService(procesarDatos, armarMensajes, presentador); Dictionary <string, string> mensajes = new Dictionary <string, string>(); validador.Validar(empresas, pedidos); Console.ReadLine(); }
//**INCOMPLETO public void LeerDatosTxt() { // Resultado funcion leer del LectorCSV en listaPuntos con argumento archivoInput Debug.Log("LLamadaLectorCSV"); listaDatos = LectorCSV.Leer(archivoInput); // Lista de cadenas, leyendo las keys de la primera fila (nombres de las personas) listaNombres = new List <string>(listaDatos[1].Keys); // Loop en listaNombres a lo largo de todas las columnas que haya for (var j = 0; j < listaNombres.Count; j++) { // Loop en listaDatos a lo largo de todos los datos que haya for (var i = 0; i < listaDatos.Count; i++) // listaPuntos.Count devuelve el número de filas en la lista { // Convierte el objeto leído por LectorCSV a string para poder ser utilizado // AQUÍ HAY UN ERROR EL TIPO DE listaDatos[i][listaNombres[j]] NO ES OBJETO matrizDatos[i, j] = (string)listaDatos[i][listaNombres[j]]; Debug.Log("Dato almacenado en fila " + i + "y columna " + j + ": " + matrizDatos[i, j]); } } }
private void tsButtonCargaNumNFSe_Click(object sender, EventArgs e) { try { openFileDialog1.Filter = "CSV files|*.csv"; // "Excel Files|*.xls|*.xlsx"; openFileDialog1.Multiselect = false; DialogResult dr = openFileDialog1.ShowDialog(); if (dr == DialogResult.OK) { string[] filenames = openFileDialog1.FileNames; var nombreArchivos = filenames .Select(y => new { archivo = System.IO.Path.GetFileName(y), carpeta = System.IO.Path.GetDirectoryName(y) }); string nombreArchivo = nombreArchivos.Select(a => a.archivo).ToList().FirstOrDefault(); string carpetaOrigen = nombreArchivos.Select(a => a.carpeta).FirstOrDefault(); System.Globalization.CultureInfo culInfo = new System.Globalization.CultureInfo(configuracion.CulturaParaMontos); LectorCSV csv = new LectorCSV(configuracion.CodigosServicioDflt); csv.ProgressHandler += reportaProgreso; var archivoCsv = csv.LeeArchivoCsv(carpetaOrigen, nombreArchivo, culInfo); ProcesaCfdi proc = new ProcesaCfdi(lblUsuario.Text); proc.Progreso += new ProcesaCfdi.LogHandler(reportaProgreso); proc.ProcesaActualizacionDeNumeroFiscalE(archivoCsv, carpetaOrigen, nombreArchivo, mainController); filtrarFacturas(); } } catch (Exception ex) { reportaProgreso(0, ex.Message); } }
private void tsBtnIntegraFactura_Click(object sender, EventArgs e) { try { openFileDialog1.Filter = "CSV files|*.csv"; // "Excel Files|*.xls|*.xlsx"; openFileDialog1.Multiselect = true; DialogResult dr = openFileDialog1.ShowDialog(); if (dr == DialogResult.OK) { string[] filenames = openFileDialog1.FileNames; var nombreArchivos = filenames .Select(y => new { archivo = System.IO.Path.GetFileName(y), carpeta = System.IO.Path.GetDirectoryName(y) }); List <string> lNombreArchivos = nombreArchivos.Select(a => a.archivo).ToList(); string carpetaOrigen = nombreArchivos.Select(a => a.carpeta).FirstOrDefault(); IntegraVentasBandejaXL bandejaXL = new IntegraVentasBandejaXL(configuracion); bandejaXL.ProgressHandler += reportaProgreso; LectorCSV csv = new LectorCSV(); csv.ProgressHandler += reportaProgreso; System.Globalization.CultureInfo culInfo = new System.Globalization.CultureInfo(configuracion.CulturaParaMontos); var archivosXl = csv.ConvierteCsvAExcel(carpetaOrigen, lNombreArchivos, culInfo); bandejaXL.ProcesaCarpetaEnTrabajo(carpetaOrigen, archivosXl); filtrarFacturas(); } } catch (Exception ex) { reportaProgreso(0, ex.Message); } }
static void Main(string[] args) { ContenedorDependencias contenedor = new ContenedorDependencias(); IServiceProvider services = contenedor.Services(); var instancia = services.GetService <ICrearInstanciaPaqueteriaFactory>(); var ObtenerMasBarata = services.GetService <IObtenerMensajeMejorPaqueteria>(); var validaPaqueteria = services.GetService <IValidarPaqueteria>(); var validaMedioTransporte = services.GetService <IValidarMedioTransporte>(); var EvaluadorFormatearMsg = services.GetService <IEvaluadorEstrategiaFormatearMensajeEnvio>(); var ObtenerRangoTiempo = services.GetService <IConvertirTiempo>(); LectorCSV objLecto = new LectorCSV(); LectorJson objJson = new LectorJson(); string cClave = "JSON"; List <ParametrosDTO> lstDatosCsv = new List <ParametrosDTO>(); ParametrosDTO imprimir = new ParametrosDTO(); List <IMensajeEnvio> lstEstrategias = new List <IMensajeEnvio>(); List <ILectorArchivos> lstEstrategiasArchivo = new List <ILectorArchivos>(); lstEstrategias.Add(new MensajesPaqueteriaFuturo(new List <string>(), new MensajeEnvioDTO(), new MensajesColoresDTO())); lstEstrategias.Add(new MensajesPaqueteriaPasado(new List <string>(), new MensajeEnvioDTO(), new MensajesColoresDTO())); lstEstrategiasArchivo.Add(new LectorCSV()); lstEstrategiasArchivo.Add(new LectorJson()); ObtenerConfiguración config = new ObtenerConfiguración(); List <Configuracion> configuracion = config.ObtenerDatos(); var obtenerArchivo = lstEstrategiasArchivo.FirstOrDefault(c => c.cTipoArchivo == cClave); lstDatosCsv = obtenerArchivo.ObtenerDatosDTO(); string[] cPaqueterias = { "FEDEX", "DHL", "ESTAFETA" }; foreach (var x in lstDatosCsv) { List <IEmpresa> paqueterias = instancia.CrearInstancia(x.cMedioTransporte, configuracion); List <ParametrosDTO> lstResultados = new List <ParametrosDTO>(); string cPaqueteria = x.cPaqueteria; string cMedioTransporte = x.cMedioTransporte; if (paqueterias != null) { foreach (var i in paqueterias) { ParametrosDTO parametro = new ParametrosDTO(); parametro = i.ObtenerDatosPaqueteria(x); lstResultados.Add(parametro); } } Dictionary <string, double> lstTiempos = new Dictionary <string, double>(); string cValidaPaqueteria = validaPaqueteria.ValidarPaqueteria(paqueterias, cPaqueteria, cPaqueterias); if (cValidaPaqueteria != "") { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(cValidaPaqueteria + "\n"); continue; } string cValidarMedioTransporte = validaMedioTransporte.ValidarMedioTransporte(paqueterias, cPaqueteria, cMedioTransporte); if (cValidarMedioTransporte != "") { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(cValidarMedioTransporte + "\n"); continue; } imprimir = lstResultados.Where(i => i.cPaqueteria == cPaqueteria).Select(y => y).FirstOrDefault(); string cClaveEstrategia = EvaluadorFormatearMsg.ObtenerClaveEstrategia(imprimir.dtFechaEntrega); var ObtenerMensaje = lstEstrategias.FirstOrDefault(c => c.cConjugacion == cClaveEstrategia); TimeSpan difFechas = DateTime.Now - imprimir.dtFechaEntrega; double dTotalMinutos = Math.Abs(difFechas.TotalMinutes); IConvertirTiempo h1 = new CalculadorMinutos(); IConvertirTiempo h2 = new CalculadorHoras(); IConvertirTiempo h3 = new CalculadorDias(); IConvertirTiempo h4 = new CalculadorSemanas(); IConvertirTiempo h5 = new CalculadorMeses(); IConvertirTiempo h6 = new CalculadorBimestre(); IConvertirTiempo h7 = new CalculadorAnios(); h1.setNext(h2); h2.setNext(h3); h3.setNext(h4); h4.setNext(h5); h5.setNext(h6); h6.setNext(h7); h1.ObtenerTiempo(dTotalMinutos, lstTiempos); MensajesColoresDTO Mensaje = ObtenerMensaje.FormatearMensaje(lstTiempos, imprimir); Console.ForegroundColor = (ConsoleColor)System.Enum.Parse(typeof(ConsoleColor), Mensaje.cColor); Console.Write(Mensaje.cMensaje + "\n"); string cOpcionMaBarata = ObtenerMasBarata.ImprimirMensajePaqueteriaMasBarata(lstResultados, imprimir); if (cOpcionMaBarata != "") { Console.ForegroundColor = ConsoleColor.White; Console.WriteLine(cOpcionMaBarata + "\n"); } } Console.ReadKey(); }
// Función para trazar el gráfico, tanto 2D como 3D public void TrazarGrafico() { // Se destruye el anterior gráfico, destruyendo soportePuntos y lineRenderer, y se vuelve a instanciar //Destroy(soportePuntos); soportePuntos = Instantiate( SoportePuntos, new Vector3(0, 0, 0), Quaternion.identity); // Se destruye la anterior línea //Destroy(lineaGrafico); lineaGrafico = Instantiate( PrefabLinea, new Vector3(0, 0, 0), Quaternion.identity); // Se accede al Component LineRenderer de lineaGrafico para cambiar valores de ancho de inicio y final lineaGrafico.GetComponent <LineRenderer>().startWidth = inicioLineaGrafico; lineaGrafico.GetComponent <LineRenderer>().endWidth = finalLineaGrafico; // Se establece el color de lineaGrafico lineaGrafico.GetComponent <LineRenderer>().startColor = DimeColor(columnaY); lineaGrafico.GetComponent <LineRenderer>().endColor = DimeColor(columnaY); // Resultado funcion leer del LectorCSV en listaPuntos con argumento archivoInput. Se manda false porque se quiere leer números listaPuntos = LectorCSV.Leer(archivoInput); // Lista de cadenas, con las keys (nombres de las columnas) List <string> listaColumnas = new List <string>(listaPuntos[1].Keys); // Asignacion nombres columnas desde listaColumnas a variables nombre nombreX = listaColumnas[columnaX]; nombreY = listaColumnas[columnaY]; nombreZ = listaColumnas[columnaZ]; // Obtención máximos en cada eje float xMax = EncontrarValorMaximo(nombreX); float yMax = EncontrarValorMaximo(nombreY); float zMax = EncontrarValorMaximo(nombreZ); // Obtención de mínimos en cada eje float xMin = EncontrarValorMinimo(nombreX); float yMin = EncontrarValorMinimo(nombreY); float zMin = EncontrarValorMinimo(nombreZ); float x; float y; float z; // El número de vértices del lineRenderer es el número de puntos en listaPuntos lineaGrafico.GetComponent <LineRenderer>().positionCount = listaPuntos.Count; // Loop en listaPuntos for (var i = 0; i < listaPuntos.Count; i++) // listaPuntos.Count devuelve el número de filas en la lista { // Obtener valor en listaPuntos en la iesima fila de la columna con nombre determinado, normalizado if (xMax != xMin) { x = (System.Convert.ToSingle(listaPuntos[i][nombreX]) - xMin) / (xMax - xMin) + xInicial / escalaGrafico; } else { x = System.Convert.ToSingle(listaPuntos[i][nombreX]) + xInicial / escalaGrafico; } if (yMax != yMin) { y = (System.Convert.ToSingle(listaPuntos[i][nombreY]) - yMin) / (yMax - yMin) + yInicial / escalaGrafico; } else { y = System.Convert.ToSingle(listaPuntos[i][nombreY]) + yInicial / escalaGrafico; } // Si el modo 2D está desactivado se da valor a z de la forma habitual if (modo2D == false) { if (zMax != zMin) { z = (System.Convert.ToSingle(listaPuntos[i][nombreZ]) - zMin) / (zMax - zMin) + zInicial / escalaGrafico; } else { z = System.Convert.ToSingle(listaPuntos[i][nombreZ]) + zInicial / escalaGrafico; } } // Si el modo 2D está activado todos los puntos tienen el mismo valor en z else { // Se multiplica el valor por escalaGrafico al instanciar posteriormente z = zInicial / escalaGrafico; // Se añade punto al lineRenderer lineaGrafico.GetComponent <LineRenderer>().SetPosition(i, new Vector3(x, y, z) * escalaGrafico); } // Se instancia un PrefabPunto GameObject puntoDatos = Instantiate( PrefabPunto, new Vector3(x, y, z) * escalaGrafico, Quaternion.identity); EsferaDatos esferaDatos = puntoDatos.GetComponent <EsferaDatos>(); // Se hace puntoDatos derivada de SoportePuntos puntoDatos.transform.parent = soportePuntos.transform; // Asignacion valor a nombrePuntoDatos string nombrePuntoDatos = listaPuntos[i][nombreX] + " " + listaPuntos[i][nombreY] + " " + listaPuntos[i][nombreZ]; // Se asigna nombre coherente al prefab puntoDatos.transform.name = nombrePuntoDatos; // Se guardan los valores del punto Vector3 valores = new Vector3( System.Convert.ToSingle(listaPuntos[i][nombreX]), System.Convert.ToSingle(listaPuntos[i][nombreY]), System.Convert.ToSingle(listaPuntos[i][nombreZ]) ); esferaDatos.GuardarValores(valores); esferaDatos.GuardarVariables(nombreX, nombreY, nombreZ); // Define un color RGBA para el punto if (modo2D == true) { // En modo 2D los puntos tienen el color de la línea puntoDatos.GetComponent <Renderer>().material.color = DimeColor(columnaY); } else { // Interpolación de colores para cada esfera pesoX = x / (x + y + z); pesoY = y / (x + y + z); pesoZ = z / (x + y + z); puntoDatos.GetComponent <Renderer>().material.color = new Color( DimeColor(columnaX).r *pesoX + DimeColor(columnaY).r *pesoY + DimeColor(columnaZ).r *pesoZ, DimeColor(columnaX).g *pesoX + DimeColor(columnaY).g *pesoY + DimeColor(columnaZ).g *pesoZ, DimeColor(columnaX).b *pesoX + DimeColor(columnaY).b *pesoY + DimeColor(columnaZ).b *pesoZ, 1.0f); } } // Si se está en modo 3D, se deben instanciar los ejes y girar todo 90 grados if (modo2D == false) { InstanciaEjes(); conoEjeX.transform.parent = lineaGraficoX.transform; conoEjeY.transform.parent = lineaGraficoY.transform; conoEjeZ.transform.parent = lineaGraficoZ.transform; // Se gira soportePuntos, los ejes y las flechas para que apunten de cara soportePuntos.transform.rotation = Quaternion.Euler(0, 90, 0); lineaGraficoX.transform.rotation = Quaternion.Euler(0, 90, 0); lineaGraficoY.transform.rotation = Quaternion.Euler(0, 90, 0); lineaGraficoZ.transform.rotation = Quaternion.Euler(0, 90, 0); // Se giran los conos para que apunten en la dirección adecuada conoEjeX.transform.rotation = Quaternion.Euler(-90, 0, 0); conoEjeY.transform.rotation = Quaternion.Euler(0, 0, 0); conoEjeZ.transform.rotation = Quaternion.Euler(0, 0, -90); } }