Example #1
0
        /// <summary>
        /// (Re)initialization to provide initial values not derived from events
        /// </summary>
        /// <param name="budgetListRepository">budget list repository</param>
        /// <param name="budgetListItemRepository">budget list item repository</param>
        /// <param name="accountListRepository">account list repository</param>
        /// <param name="commandBus">Command bus</param>
        private void Init(
            BudgetListRepository budgetListRepository,
            BudgetListItemRepository budgetListItemRepository,
            AccountListRepository accountListRepository,
            ICommandBus commandBus)
        {
            // Init with "off-budget" budget
            var list = this.GetBudgetList();
            var offBudgetAccountList = new AccountList();
            var offBudget            = new BudgetListItem(
                BudgetId.OffBudgetId,
                "Off-budget",
                null,
                offBudgetAccountList,
                commandBus);

            list.Add(offBudget);
            accountListRepository.Save(offBudget.BudgetId, offBudgetAccountList);
            budgetListItemRepository.Save(offBudget);
            budgetListRepository.Save(list);
        }