public async Task <IActionResult> Edit(IFormCollection model)
        {
            foreach (var item in model.Keys)
            {
                if (item != "__RequestVerificationToken" && item != "BudgetId")
                {
                    var mapper = new BudgetCategoryMapper()
                    {
                        BudgetId   = Guid.Parse(model["BudgetId"].ToString()),
                        CategoryId = Guid.Parse(item.ToString()),
                        Amount     = model[item].ToString() == "" ? 0 : float.Parse(model[item].ToString())
                    };

                    if (await _repo.BudgetMapExists(mapper.BudgetId, mapper.CategoryId))
                    {
                        _repo.Edit <BudgetCategoryMapper>(mapper);
                    }
                    else
                    {
                        _repo.Add <BudgetCategoryMapper>(mapper);
                    }
                }
            }

            if (await _repo.SaveAll())
            {
                return(RedirectToAction("Index"));
            }

            return(View());
        }
        public async Task <IActionResult> Add(IFormCollection model)
        {
            var budget = new Budget {
                Period = DateTime.Now
            };

            _repo.Add <Budget>(budget);

            foreach (var item in model.Keys)
            {
                if (item != "__RequestVerificationToken")
                {
                    var mapper = new BudgetCategoryMapper()
                    {
                        BudgetId   = budget.Id,
                        CategoryId = Guid.Parse(item.ToString()),
                        Amount     = model[item].ToString() == "" ? 0 : float.Parse(model[item].ToString())
                    };

                    _repo.Add <BudgetCategoryMapper>(mapper);
                }
            }

            if (await _repo.SaveAll())
            {
                return(RedirectToAction("Index"));
            }

            return(View());
        }