public IngredientDetailPage() { InitializeComponent(); var ing = new SimpleIngredient(); viewModel = new IngredientDetailViewModel(ing); BindingContext = viewModel; }
/// <summary> /// Take an ingredient and add it to grocery list /// </summary> /// <param name="value"></param> /// <returns></returns> public IHttpActionResult Post([FromBody] SimpleIngredient value) { // Add by ID // Add by name if no ID present using (var context = new MarcDbEntities()) { // Let's try by id first then name if (value.Id != -1) { var groceryIngredients = context.GroceryIngredients.Where(g => g.IngredientId == value.Id); if (!groceryIngredients.Any()) { var ingredient = context.Ingredients.FirstOrDefault(i => i.Id == value.Id); context.GroceryIngredients.Add(new GroceryIngredient() { Ingredient = ingredient, GroceryId = 1 }); context.SaveChanges(); return(Ok()); } else { // Already exists return(Ok()); } } else { var groceryIngredients = context.GroceryIngredients.Where(g => g.Ingredient.Name == value.Name); // If this ingredient in the grocery list? if (!groceryIngredients.Any()) { // No it's not see if the ingredient actually exists Ingredient ingredient = context.Ingredients.FirstOrDefault(i => i.Name == value.Name); if (ingredient == null) { // Created ingredient ingredient = context.Ingredients.Add(new Ingredient { Name = value.Name }); context.SaveChanges(); } context.GroceryIngredients.Add(new GroceryIngredient() { Ingredient = ingredient, GroceryId = 1 }); context.SaveChanges(); return(Ok()); } else { // Already exists return(Ok()); } } } }