static async System.Threading.Tasks.Task Main(string[] args) { Console.WriteLine("Test de app ACME CSV Importer"); /* * Ingresar el texto en formato json para probar la funcionalidad de insercion en la base * de manera asincrona * ejemplo de 2 registros en JSON: * * [{""pointOfSale"":""121017"",""product"":""17240503200796"",""date"":""2019-06-02"",""stock"":""3""} * ,{""pointOfSale"":""121017"",""product"":""17240503200796"",""date"":""2019-06-03"",""stock"":""3""}] * * Luego de modificar los valores realizar un buil del proyecto acmeTEST * 1.- Ubicarse en la carpeta de Test cd /ACMEApp/acmeSln/AcmeTest/ * 2.- Compilar: dotnet build acmeTest.csproj * 3.- ejecutar el Test : dotnet bin/Debug/net5.0/acmeTest.dll * 4.- Verificacion: * 4.1 Insercion en la tabla tblProductsACME en caso de respuesta positiva (Correcto) * select * from dbo.tblProductsACME with (nolock) --i la respuesta fue * 4.2 Insercion en la tabla tblErrorInsertACME en caso de respuesta negativa (No extraido) * select * from dbo.tblErrorInsertACME with (nolock) --i la respuesta fue * */ ManageACMEData objAcmeData = new ManageACMEData(); string jsonIncorrecto = @"[{""pointOfSale"":""121017"",""product"":""17240503200796"",""date"":""2019-06-02"",""stock"":""3""},{""pointOfSale"":""121017"",""product"":""17240503200796"",""date"":""2019-06-03"",""stock"":""3""}"; string jsonCorrecto = @"[{""pointOfSale"":""121017"",""product"":""17240503200796"",""date"":""2019-06-02"",""stock"":""3""},{""pointOfSale"":""121017"",""product"":""17240503200796"",""date"":""2019-06-03"",""stock"":""3""}]"; string respuesta = await objAcmeData.insertDataACMEAsync(jsonIncorrecto); Console.WriteLine("Cadena: " + jsonIncorrecto); Console.WriteLine(" Resultado: " + ((respuesta == "0")? "No extraido":"Correcto")); respuesta = await objAcmeData.insertDataACMEAsync(jsonCorrecto); Console.WriteLine("Cadena: " + jsonCorrecto); Console.WriteLine(" Resultado: " + ((respuesta == "0")? "No extraido":"Correcto")); }
public async Task readFileAsync(string url, int numRows) { StreamReader s = URLStream(url); string[] delimiters = { ";" }; Console.WriteLine("Iniciando extraccion"); Console.WriteLine("Origen: " + url); using (TextFieldParser csvReader = new TextFieldParser(s)) { ManageACMEData objManage = new ManageACMEData(); List <Product> producto = new List <Product>(); int numLote = 1; string[] fieldsStream; csvReader.SetDelimiters(delimiters); csvReader.HasFieldsEnclosedInQuotes = true; csvReader.ReadLine(); while (!csvReader.EndOfData) { fieldsStream = csvReader.ReadFields(); if (producto.Count <= numRows) { try{//Control data of previous import producto.Add(new Product { pointOfSale = fieldsStream[0], product = fieldsStream[1], date = fieldsStream[2], stock = fieldsStream[3] }); }catch (Exception) { Console.WriteLine("Data omitida de previa importacion:" + fieldsStream.ToString() + " la extraccion continua."); } } else { //add data of this loop try{//Control data of previous import producto.Add(new Product { pointOfSale = fieldsStream[0], product = fieldsStream[1], date = fieldsStream[2], stock = fieldsStream[3] }); }catch (Exception) { Console.WriteLine("Data omitida de previa importacion:" + fieldsStream.ToString() + " la extraccion continua."); } Console.WriteLine("Lote en ejecucion: " + numLote + " con " + numRows.ToString() + " filas."); string stringToSerialize = JsonConvert.SerializeObject(producto); string respuesta = await objManage.insertDataACMEAsync(stringToSerialize); Console.WriteLine(" Resultado: " + ((respuesta == "0")? "No extraido":"Correcto")); producto.Clear(); numLote++; } } } }
static void Main(string[] args) { ManageACMEData objAcmeData= new ManageACMEData(); Console.WriteLine(objAcmeData.insertDataACMEAsync(@"[{""pointOfSale"":""121017"",""product"":""17240503200796"",""date"":""2019-06-02"",""stock"":""3""},{""pointOfSale"":""121017"",""product"":""17240503200796"",""date"":""2019-06-03"",""stock"":""3""}")); }