Exemplo n.º 1
0
        public async Task ImportTransactionsAsync(string fileName, FileType fileType, Encoding encoding)
        {
            var uploaded = (await _reader.ReadFile(fileName, fileType, encoding)).Select(t => new Model.Transaction
            {
                Amount           = t.Amount,
                Date             = t.Date,
                Description      = t.Description + " " + t.ExtraDescription,
                OriginalCategory = t.Category
            }).ToList();

            foreach (var t in uploaded)
            {
                var ruleMet = new MappingRules().FirstOrDefault(r => r.Predicate(t));
                if (t.Amount < 0 && ruleMet != null)
                {
                    t.Category = ruleMet.Category;
                }
            }

            _transactions.AddRange(uploaded);
        }