public async Task Execute(IJobExecutionContext context) { var inputPath = context.Trigger.JobDataMap.GetString("INPUT_PATH"); var outputDirPath = context.Trigger.JobDataMap.GetString("OUTPUT_DIR_PATH"); var completedDirPath = context.Trigger.JobDataMap.GetString("COMPLETED_DIR_PATH"); var fileName = Path.GetFileName(inputPath); var outputPath = Path.Combine(outputDirPath, fileName); var completedPath = Path.Combine(completedDirPath, fileName); using (var fileStream = File.OpenRead(inputPath)) { var salesReportCsv = new SalesReportCsvReader(fileStream, "ç"); salesReportCsv.Process(); var summary = new SalesReportCsvWriter(salesReportCsv); using (var fs = File.OpenWrite(outputPath)) { summary.Save(fs); } } File.Move(inputPath, completedPath); }
public void MinMaxSalaryValueTest() { { var ms = TestUtils.GetStreamFromString(@"001ç3245678865434çPauloç79228162514264337593543950335"); var ish = new SalesReportCsvReader(ms, "ç"); ish.Process(); Assert.AreEqual(1, ish.Result.Length); var sellerPaulo = ish.Result[0] as Seller; Assert.AreEqual("3245678865434", sellerPaulo.CPF); Assert.AreEqual("Paulo", sellerPaulo.Name); Assert.AreEqual(decimal.MaxValue, sellerPaulo.Salary); } { var ms = TestUtils.GetStreamFromString(@"001ç3245678865434çPauloç-79228162514264337593543950335"); var ish = new SalesReportCsvReader(ms, "ç"); ish.Process(); Assert.AreEqual(1, ish.Result.Length); var sellerPaulo = ish.Result[0] as Seller; Assert.AreEqual("3245678865434", sellerPaulo.CPF); Assert.AreEqual("Paulo", sellerPaulo.Name); Assert.AreEqual(decimal.MinValue, sellerPaulo.Salary); } }
public void AllValuesParsedCorrectly() { var ms = TestUtils.GetStreamFromString(@"001ç3245678865434çPauloç40000.99 002ç2345675434544345çJose da SilvaçRural 003ç08ç[1-34-10,2-33-1.50,3-40-0.10]çPaulo"); var ish = new SalesReportCsvReader(ms, "ç"); ish.Process(); Assert.AreEqual(3, ish.Result.Length); var sellerPaulo = ish.Sellers[0] as Seller; var customerJose = ish.Customers[0] as Customer; var sale_08 = ish.Sales[0] as Sale; Assert.AreEqual("3245678865434", sellerPaulo.CPF); Assert.AreEqual("Paulo", sellerPaulo.Name); Assert.AreEqual(40000.99M, sellerPaulo.Salary); Assert.AreEqual("2345675434544345", customerJose.CNPJ); Assert.AreEqual("Jose da Silva", customerJose.Name); Assert.AreEqual("Rural", customerJose.BusinessArea); Assert.AreEqual(8, sale_08.SaleId); Assert.AreEqual("Paulo", sale_08.SoldBy); Assert.AreEqual(3, sale_08.SoldItems.Count); { var sale_08_item1 = sale_08.SoldItems[0] as ItemSold; Assert.AreEqual(1, sale_08_item1.Id); Assert.AreEqual(34, sale_08_item1.Quantity); Assert.AreEqual(10M, sale_08_item1.Price); } { var sale_08_item2 = sale_08.SoldItems[1] as ItemSold; Assert.AreEqual(2, sale_08_item2.Id); Assert.AreEqual(33, sale_08_item2.Quantity); Assert.AreEqual(1.5M, sale_08_item2.Price); } { var sale_08_item3 = sale_08.SoldItems[2] as ItemSold; Assert.AreEqual(3, sale_08_item3.Id); Assert.AreEqual(40, sale_08_item3.Quantity); Assert.AreEqual(0.1M, sale_08_item3.Price); } }
public void SingleItemParse() { var ms = TestUtils.GetStreamFromString("001;98765432100;John;652500.58"); var ish = new SalesReportCsvReader(ms, ";"); ish.Process(); Assert.AreEqual(1, ish.Result.Length); var john = ish.Result[0] as Seller; Assert.AreEqual("98765432100", john.CPF); Assert.AreEqual("John", john.Name); Assert.AreEqual(652500.58M, john.Salary); }
public (string, SalesReportCsvWriter) GetSaveText(string text) { var ish = new SalesReportCsvReader(TestUtils.GetStreamFromString(text), "ç"); ish.Process(); var summary = new SalesReportCsvWriter(ish, ";"); var outputStream = new MemoryStream(); summary.Save(outputStream); using (var sr = new StreamReader(new MemoryStream(outputStream.ToArray()))) { sr.ReadLine(); return(sr.ReadLine(), summary); } }
public void MultipleItemsParse() { var ms = TestUtils.GetStreamFromString(@"001ç1234567891234çPedroç50000 001ç3245678865434çPauloç40000.99 002ç2345675434544345çJose da SilvaçRural 002ç2345675433444345çEduardo PereiraçRural 003ç10ç[1-10-100,2-30-2.50,3-40-3.10]çPedro 003ç08ç[1-34-10,2-33-1.50,3-40-0.10]çPaulo"); var ish = new SalesReportCsvReader(ms, "ç"); ish.Process(); Assert.AreEqual(6, ish.Result.Length); Assert.AreEqual(2, ish.Sellers.Count); Assert.AreEqual(2, ish.Customers.Count); Assert.AreEqual(2, ish.Sales.Count); }
public void EmptyItemsParsedCorrectly() { var stringsToTest = new string[] { "003ç08ç[]çPaulo da Silva Santos Oliveira Garcia Ramos Pereira Borba Guimarães", "003ç08ççPaulo da Silva Santos Oliveira Garcia Ramos Pereira Borba Guimarães", "003ç08ç[ ]çPaulo da Silva Santos Oliveira Garcia Ramos Pereira Borba Guimarães", "003ç08ç[ \t\t\t\t ]çPaulo da Silva Santos Oliveira Garcia Ramos Pereira Borba Guimarães", }; foreach (var stringToTest in stringsToTest) { var ms = TestUtils.GetStreamFromString(stringToTest); var ish = new SalesReportCsvReader(ms, "ç"); ish.Process(); Assert.AreEqual(1, ish.Result.Length, stringToTest); var sale_08 = ish.Result[0] as Sale; Assert.AreEqual(8, sale_08.SaleId, stringToTest); Assert.AreEqual("Paulo da Silva Santos Oliveira Garcia Ramos Pereira Borba Guimarães", sale_08.SoldBy, stringToTest); Assert.AreEqual(0, sale_08.SoldItems.Count, stringToTest); } }