public FileValidationResult UploadFile(Stream inputSteam) { var validationResult = new FileValidationResult(); using (StreamReader sr = new StreamReader(inputSteam)) { string currentLine; var count = 0; while ((currentLine = sr.ReadLine()) != null) { var splitData = currentLine.Split(','); if (splitData.Length < 4) { validationResult.NumberOfLinesIgnored++; validationResult.ValidationResults.Add(count, new List<string>{"Incomplete Data"}); } else { if (!RowIsHeadingOfTheFile(splitData)) { var accountTransaction = new AccountTransaction(splitData[0], splitData[1], splitData[2], (splitData[3])); if (accountTransaction.Valid()) { validationResult.NumberOfLinesUploaded++; using (var context = _repositoryFactory.Create()) { context.Save(accountTransaction); } } else { validationResult.NumberOfLinesIgnored++; validationResult.ValidationResults.Add(count, accountTransaction.ErrorMessages); } } } count++; } } return validationResult; }
public void Save(AccountTransaction transaction) { AccountTransactions.Add(transaction); base.SaveChanges(); }