public async Task<IHttpActionResult> PostCategory(string name)
        {
            var user = db.Users.Find(User.Identity.GetUserId());
            if (!db.Categories.Any(c => c.Name == name && c.HouseholdId == user.HouseholdId))
            {
                Category category = new Category()
                {
                    Name = name,
                };
                db.Categories.Add(category);
                await db.SaveChangesAsync();
            }

            return Ok();
        }
        public async Task<IHttpActionResult> CreateBudgetItem(BudgetItem budgetItem)
        {
            budgetItem.HouseholdId = (int)db.Users.Find(User.Identity.GetUserId()).HouseholdId;
            var defCats = new List<string>() {"Salary","Rent | Mortgage","Utilities", "Gas", "Misc"};
            var cats = db.Categories.Where(c => defCats.Contains(c.Name)  || c.HouseholdId == budgetItem.HouseholdId);
            if (!cats.Any(c => c.Name == budgetItem.Category.Name))
            {
                var newCat = new Category()
                {
                    HouseholdId = budgetItem.HouseholdId,
                    Name = budgetItem.Category.Name
                };

                db.Categories.Add(newCat);
                await db.SaveChangesAsync();
                budgetItem.Category.Id = newCat.Id;
            }

            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }
            budgetItem.CategoryId = budgetItem.Category.Id;
            budgetItem.Category = null;
            db.BudgetItems.Add(budgetItem);
            await db.SaveChangesAsync();

            return Ok(budgetItem);
        }