public async Task <ActionResult> Create(FoodItemFormViewModel foodItem)
        {
            try
            {
                var user = await GetUserAsync();

                var pantryId    = user.PantryId;
                var groceryList = await _context.GroceryLists
                                  .FirstOrDefaultAsync(gl => gl.PantryId == user.PantryId);

                var foodMatch = await _context.Foods
                                .FirstOrDefaultAsync(f => f.Name.Contains(foodItem.FoodItemName));

                if (foodMatch == null)
                {
                    var food = new Food()
                    {
                        PantryId       = pantryId,
                        Name           = foodItem.FoodItemName,
                        CategoryId     = foodItem.CategoryId,
                        Quantity       = 0,
                        QuantityUnitId = foodItem.QuantityUnitId,
                        Threshold      = foodItem.Threshold,
                        IsThreshold    = foodItem.IsThreshold
                    };
                    _context.Foods.Add(food);
                    await _context.SaveChangesAsync();

                    var groceryListFoodItem = new GroceryListFood()
                    {
                        FoodId        = food.Id,
                        Quantity      = foodItem.Quantity,
                        GroceryListId = groceryList.Id
                    };
                    _context.GroceryListFoods.Add(groceryListFoodItem);
                    await _context.SaveChangesAsync();

                    return(RedirectToAction(nameof(Index)));
                }
                else
                {
                    var categories = await _context.Categories.Select(c => new SelectListItem()
                    {
                        Text  = c.Name,
                        Value = c.Id.ToString()
                    }).ToListAsync();

                    var quantityUnits = await _context.QuantityUnits.Select(qu => new SelectListItem()
                    {
                        Text  = qu.Name,
                        Value = qu.Id.ToString()
                    }).ToListAsync();

                    foodItem.QuantityUnitOptions = quantityUnits.OrderBy(qu => qu.Text).ToList();
                    foodItem.CategoryOptions     = categories;
                    foodItem.ShowDialog          = true;
                    return(View(foodItem));
                }
            }
            catch (Exception ex)
            {
                return(View());
            }
        }