public static IList <Operation> GetCategorizedTransactionsCreateAndStoreTags(TextReader reader, IRepository repository, Dictionary <string, StandardTag> tagList) { var operations = new List <Operation>(); using (CsvReader csv = new CsvReader(reader, true, CSV_SEPARATOR)) { int fieldCount = csv.FieldCount; string[] headers = csv.GetFieldHeaders(); while (csv.ReadNextRecord()) { var tagName = csv[3]; if (String.IsNullOrWhiteSpace(tagName)) { tagName = "Not set"; } StandardTag tag = null; if (tagList.ContainsKey(tagName)) { tag = tagList[tagName]; } else { tag = new StandardTag(); tag.Name = tagName; tag.Description = tagName; tagList.Add(tag.Name, tag); repository.Save(tag); } var timeString = csv[0]; var description = csv[1]; var amount = csv[2]; if (String.IsNullOrEmpty(timeString) || String.IsNullOrEmpty(amount) || String.IsNullOrEmpty(description)) { break; } Operation operation = ComposeOperation(timeString, ref amount, description); if (operation != null) { operation.Tag = tag; operations.Add(operation); } } return(operations); } }
public static IList<Operation> GetCategorizedTransactionsCreateAndStoreTags(TextReader reader, IRepository repository, Dictionary<string, StandardTag> tagList) { var operations = new List<Operation>(); using (CsvReader csv = new CsvReader(reader, true, CSV_SEPARATOR)) { int fieldCount = csv.FieldCount; string[] headers = csv.GetFieldHeaders(); while (csv.ReadNextRecord()) { var tagName = csv[3]; if (String.IsNullOrWhiteSpace(tagName)) { tagName = "Not set"; } StandardTag tag = null; if (tagList.ContainsKey(tagName)) { tag = tagList[tagName]; } else { tag = new StandardTag(); tag.Name = tagName; tag.Description = tagName; tagList.Add(tag.Name, tag); repository.Save(tag); } var timeString = csv[0]; var description = csv[1]; var amount = csv[2]; if (String.IsNullOrEmpty(timeString) || String.IsNullOrEmpty(amount) || String.IsNullOrEmpty(description)) { break; } Operation operation = ComposeOperation(timeString, ref amount, description); if (operation != null) { operation.Tag = tag; operations.Add(operation); } } return operations; } }