public async Task<IHttpActionResult> Create(BudgetItem model)
        {
            var user = db.Users.Find(User.Identity.GetUserId());

            if (BP_Helper.IsNewCategory(model.Category.Name))
            {
                BP_Helper.NewCategory(model.Category.Name);
                model.CategoryId = user.Household.Categories.Where(c => c.Name == model.Category.Name).FirstOrDefault().Id;
            }

            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            var budgetItemExits = user.Household.BudgetItems.Any(bi => bi.Name == model.Name);

            if (budgetItemExits)
            {
                return BadRequest("You already have a budget item called: " + model.Name + " . Please chose another name.");
            }

            else
            {
                model.HouseholdId = (int)user.HouseholdId;
                model.CategoryId = model.Category.Id;
                model.Category = null;

                db.BudgetItems.Add(model);
                await db.SaveChangesAsync();

                return Ok();
            }

        }
        public async Task<IHttpActionResult> Edit(BudgetItem model)
        {
            var user = db.Users.Find(User.Identity.GetUserId());

            if (BP_Helper.IsNewCategory(model.Category.Name))
            {
                BP_Helper.NewCategory(model.Category.Name);
                model.CategoryId = user.Household.Categories.Where(c => c.Name == model.Category.Name).FirstOrDefault().Id;
            }

            else
            {
                model.CategoryId = model.Category.Id;
                model.Category = null;
            }

            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            db.Update<BudgetItem>(model, "Amount", "Name", "Frequency", "isExpense", "CategoryId");
            await db.SaveChangesAsync();

            return Ok();

        }