public ActionResult LogReaction(LogReactionViewModel model) { var customer = GetCustomer(); var loggedMeal = db.FoodLogs.Where(l => l.id == model.id).FirstOrDefault(); List <string> loggedAllergens = loggedMeal.Allergens.Split(',').ToList(); loggedAllergens.RemoveAt(loggedAllergens.Count - 1); loggedMeal.Reactions = "Logged"; List <int> allergenId = new List <int>(); AllergenReactionJunction toLog = new AllergenReactionJunction(); for (int i = 0; i < model.allReactionIds.Length; i++) { int placeHolder = model.allReactionIds[i]; ReactionTotal reactionTotal = db.ReactionTotals.Where(r => r.ReactionId == placeHolder).FirstOrDefault(); if (reactionTotal == null) { ReactionTotal newReaction = new ReactionTotal(); newReaction.CustomerId = customer.id; newReaction.ReactionId = placeHolder; newReaction.Total = 1; db.ReactionTotals.Add(newReaction); db.SaveChanges(); } else { reactionTotal.Total += 1; db.SaveChanges(); } foreach (var allergen in loggedAllergens) { int tempId = db.Allergens.Where(a => a.KnownAllergies == allergen).Select(a => a.id).FirstOrDefault(); toLog = db.AllergensReactionsJunction.Where(a => a.CustomerId == customer.id && a.ReactionId == placeHolder && a.AllergenId == tempId).FirstOrDefault(); if (toLog == null) { AllergenReactionJunction newEntry = new AllergenReactionJunction(); newEntry.CustomerId = customer.id; newEntry.ReactionId = placeHolder; newEntry.AllergenId = tempId; newEntry.Total = 1; db.AllergensReactionsJunction.Add(newEntry); db.SaveChanges(); } else { toLog.Total += 1; db.SaveChanges(); } } DetermineAllergy(model.allReactionIds[i]); } TempData["foods"] = null; return(RedirectToAction("Index")); }
public void EditJunctionTable(int?reactionId) { AllergenReactionJunction toChange = new AllergenReactionJunction(); }