Example #1
0
        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);
            }
        }
Example #2
0
        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;
            }
        }