public void LineToPaymentSummary(string dataRow, string paymentId, bool isFirstLine) { decimal value = 0; var columns = dataRow.Split(','); // Skip Header if (isFirstLine) { if (!columns.Any(field => decimal.TryParse(field, out value))) { return; } } var paymentSummary = new PaymentSummary() { Id = paymentId, EmployeeInfo = new Employee() { FirstName = columns[0], LastName = columns[1] } }; if (decimal.TryParse(columns[2], out value)) { paymentSummary.AnnualSalary = value; } if (decimal.TryParse(columns[3], out value)) { paymentSummary.SuperRate = value; } DateTime dateTime; if (DateTime.TryParse(columns[4], out dateTime)) { paymentSummary.PaymentStartDate = dateTime; } PaymentSummaries.Add(paymentSummary); }
// Read Data public override IEnumerable <PaymentSummary> GetPaymentSummaries() { var dataFiles = GetDataFiles(); if (dataFiles == null) { return(null); } Parallel.ForEach(dataFiles, (dataFile) => { ProcessDataFile(dataFile); }); if (PaymentSummaries.Count == 0) { LogService.LogInfo("No data found."); return(null); } return(PaymentSummaries.OrderBy(p => p.Id)); }