public CreateLine ToCreateLine(DateTime timestamp, BudgetId budgetId, string userId, IEnumerable<MyBudget.Projections.Category> categories) { var category = Categoria.Trim().Replace((char)160, ' '); var categoryId = categories.FirstOrDefault(d => string.Compare(d.Name, category, true) == 0).Id; var expense = new Expense(new Amount(Currencies.Euro(), Spesa), Data, categoryId, Descrizione, DistributionKey); return new CreateLine { Id = Guid.NewGuid(), Timestamp = timestamp, BudgetId = budgetId.ToString(), LineId = LineId.Create(budgetId).ToString(), UserId = userId, Expense = expense, }; }
public static CreateLine ToCreateLine(this Movement mov, BudgetId budgetId, string userId, IEnumerable<MyBudget.Projections.Category> categories) { var category = mov.Category.Trim().Replace((char)160, ' '); var categoryId = categories.FirstOrDefault(d => string.Compare(d.Name, category, true) == 0).Id; var expense = new Expense(new Amount(Currencies.Euro(), Convert.ToDecimal(mov.Import)), mov.DateTime, categoryId, mov.ShortDescription); return new CreateLine { Id = Guid.NewGuid(), Timestamp = DateTime.Now, BudgetId = budgetId.ToString(), LineId = LineId.Create(budgetId).ToString(), UserId = userId, Expense = expense, }; }
public IEnumerable<Category> GetBudgetsCategories(BudgetId budgetId) { if (HasLoaded == false) throw new Exception("Not loaded"); List<Category> categories; if (_categories.TryGetValue(budgetId.ToString(), out categories) == false) _categories[budgetId.ToString()] = categories = new List<Category>(); return categories.OrderBy(d => d.Name); }
public Budget GetBudgetById(BudgetId budgetId) { return _budgets[budgetId.ToString()]; }