public IHttpActionResult DeleteAllergen(int id) { Allergen allergen = db.Allergens.Find(id); string userId = User.Identity.GetUserId(); RemoveAllergenFromLog(id); Customer customer = db.Customers.Where(c => c.ApplicationUserId == userId).FirstOrDefault(); if (allergen == null) { return(NotFound()); } try { AllergenTotal total = db.AllergenTotals.Where(a => a.AllergenId == id).FirstOrDefault(); db.AllergenTotals.Remove(total); } catch { } try { AllergenJunction user = db.AllergensJunction.Where(a => a.AllergenId == id && a.CustomerId == customer.id).FirstOrDefault(); db.AllergensJunction.Remove(user); } catch { } try { List <AllergenReactionJunction> logged = db.AllergensReactionsJunction.Where(a => a.AllergenId == id && a.CustomerId == customer.id).ToList(); db.AllergensReactionsJunction.RemoveRange(logged); } catch { } db.Allergens.Remove(allergen); db.SaveChanges(); return(Ok(allergen)); }
public ActionResult LogFood(int?routeId) //find a way to break this up { List <string> editedAllergens = new List <string>(); string mealName = ""; //goes this route if logging a beer if (routeId > 0) { BeerClass1[] beers = TempData["BeerIngredients"] as BeerClass1[]; BeerClass1 selectedBeer = beers.Where(a => a.id == routeId).FirstOrDefault(); string ingredients = ""; if (selectedBeer.ingredients.hops != null) { ingredients += "hops, "; } if (selectedBeer.ingredients.malt != null) { ingredients += "malt, "; } if (selectedBeer.ingredients.yeast != null) { ingredients += "yeast, "; } editedAllergens = FindAllergens(ingredients, true); } //goes this route if logging a non-restaurant item else if (routeId == 0 || routeId == null) { List <string> allergensToLog = TempData["foundAllergies"] as List <string>; editedAllergens = allergensToLog.Distinct().ToList(); mealName = TempData["MealName"] as string; } //goes this way if logging a restaurant meal or LogByAllergen else { editedAllergens = TempData["foundAllergens"] as List <string>; //goes this way if coming from LogByAllergen if (routeId == -2) { mealName = TempData["MealName"] as string; } } var customer = GetCustomer(); FoodLog logger = new FoodLog(); AllergenTotal logAllergen = new AllergenTotal(); if (editedAllergens == null) { TempData["foods"] = null; return(RedirectToAction("Index")); } for (int i = 0, j = 1; i < editedAllergens.Count; i += 2, j += 2) { logger.Allergens += editedAllergens[i] + ","; int tempId = int.Parse(editedAllergens[j]); var temp = db.AllergenTotals.Where(a => a.CustomerId == customer.id && a.AllergenId == tempId).FirstOrDefault(); if (temp == null) { logAllergen.CustomerId = customer.id; logAllergen.AllergenId = tempId; logAllergen.Total = 1; db.AllergenTotals.Add(logAllergen); db.SaveChanges(); } else { temp.Total += 1; } } logger.Reactions = null; logger.CustomerId = customer.id; logger.MealName = mealName; logger.MealId = db.FoodLogs.Where(f => f.CustomerId == customer.id).Max(m => m.MealId); if (logger.MealId == null) { logger.MealId = 1; } else { logger.MealId++; } db.FoodLogs.Add(logger); db.SaveChanges(); TempData["foods"] = null; return(RedirectToAction("Index")); }