private static void SetSelectedAccountId(HomeIndexViewModel vm)
        {
            var selectedAccount = vm.Accounts.FirstOrDefault();

            if (selectedAccount != null)
                vm.SelectedAccountId = selectedAccount.Id;
        }
 private static void SetFromAndToDates(HomeIndexViewModel vm)
 {
     vm.FromDate = DateTime.Now.AddYears(-1);
     vm.ToDate = DateTime.Now;
 }
        private static void SetExpenseProgress(HomeIndexViewModel vm, IEnumerable<Expense> expenses)
        {
            var expenseProgesses = expenses.Select(e => new ExpenseProgessViewModel
            {
                Name = e.Name,
                AmountLeft = e.Balance,
                AmountSpent = e.Amount - e.Balance,
                AmountLeftPerc = (e.Balance / e.Amount) * 100,
                AmountSpentPerc = ((e.Amount - e.Balance) / e.Amount) * 100
            }).ToList();

            vm.ExpenseProgess = expenseProgesses;
        }
 private static void SetBudgetsAndAccounts(HomeIndexViewModel vm, IEnumerable<Budget> budgets, IEnumerable<Account> accounts)
 {
     vm.Budgets = budgets.Select(m => new BudgetViewModel
     {
         Id = m.Id,
         StartDate = m.StartDate,
         EndDate = m.EndDate,
         Name = m.Name
     }).ToList();
     vm.Accounts = accounts.Select(m => new AccountViewModel
     {
         Id = m.Id,
         Amount = m.Amount,
         Name = m.Name,
         UserName = m.UserName
     }).ToList();
 }
 private static void SetBudgetId(HomeIndexViewModel vm, Budget selectedBudget)
 {
     vm.SelectedBudgetId = selectedBudget.Id;
 }
        public HomeIndexViewModel MapHomeIndexViewModel(string username)
        {
            var vm = new HomeIndexViewModel();
            var accounts = FinancialPlannerRepository.GetAccounts().Where(m => m.UserName == username);
            var budgets = FinancialPlannerRepository.GetBudgets().Where(m => m.Username == username).ToList();
            SetBudgetsAndAccounts(vm, budgets, accounts);

            SetSelectedAccountId(vm);

            var selectedBudget = budgets.FirstOrDefault();

            if (selectedBudget != null)
            {
                SetBudgetId(vm, selectedBudget);
                var expenses = FinancialPlannerRepository.GetExpenses().Where(m => m.Username == username).ToList();
                SetExpenseProgress(vm, expenses);
            }

            SetFromAndToDates(vm);

            return vm;
        }