public ActionResult Create() { if (!m.waiverAccepted()) { return(RedirectToAction("AcceptWaiver", "Home", new { Id = m.GetCurrentUserId().ToString(), error = "Please accept the waiver to view recipes and its related features" })); } var form = new RecipeAddViewForm(); form.ingredients = m.IngredientGetAll(); form.selectedIngredsId = new string[0]; form.diets = m.DietGetAll(); form.selectedDietsId = new string[0]; return(View(form)); }
public ActionResult Create(RecipeAddViewForm newItem, HttpPostedFileBase file) { // Validate the input if (!ModelState.IsValid) { newItem.ingredients = m.IngredientGetAll(); newItem.selectedIngredsId = new string[0]; newItem.diets = m.DietGetAll(); newItem.selectedDietsId = new string[0]; return(View(newItem)); } if (m.IsNoSpecial(newItem.title) == false || m.IsNoSpecial(newItem.country) == false || m.IsNoSpecial(newItem.mealTimeType) == false) { ModelState.AddModelError("", "No Special Characters Allowed"); newItem.ingredients = m.IngredientGetAll(); newItem.selectedIngredsId = new string[0]; newItem.diets = m.DietGetAll(); newItem.selectedDietsId = new string[0]; return(View(newItem)); } try { //Check for Diet conflict bool compatDiet = true; if (newItem.selectedDietsId != null) { for (int i = 0; i < newItem.selectedDietsId.Length; i++) { //None apply cannot be selected with anything else if (newItem.selectedDietsId[i] == "10" && newItem.selectedDietsId.Length > 1) { compatDiet = false; } //Vegan and Vegetarian shouldn't have meat else if (newItem.selectedDietsId[i] == "8" || newItem.selectedDietsId[i] == "5") { for (int j = 0; j < newItem.selectedDietsId.Length; j++) { if (newItem.selectedDietsId[j] != "6" && newItem.selectedDietsId[j] != "5" && newItem.selectedDietsId[j] != "8") { compatDiet = false; } } } } if (compatDiet == false) { ModelState.AddModelError("", "Incompatable Diets Selected"); newItem.ingredients = m.IngredientGetAll(); newItem.selectedIngredsId = new string[0]; newItem.diets = m.DietGetAll(); newItem.selectedDietsId = new string[0]; return(View(newItem)); } } // Process the input newItem.verified = false; newItem.rating = 0; newItem.lastUpdated = DateTime.Now; if (file != null && file.ContentLength > 0) { if (file.ContentLength / 1024 > 50) { var form = new RecipeVerifiedAddViewModel(); form.author = newItem.author; form.country = newItem.country; form.mealTimeType = newItem.mealTimeType; form.instructions = newItem.instructions; form.title = newItem.title; form.ingredients = m.IngredientGetAll(); form.selectedIngredsId = new string[0]; form.diets = m.DietGetAll(); form.selectedDietsId = new string[0]; ModelState.AddModelError("", "Image size should be less than 50kb"); return(View(form)); } newItem.Content_Type = file.ContentType; using (var reader = new System.IO.BinaryReader(file.InputStream)) { newItem.Content = reader.ReadBytes(file.ContentLength); } } var addedItem = m.RecipeAdd(newItem); addedItem = m.RecipeIDUpdate(addedItem); // If the item was not added, return the user to the Create page // otherwise redirect them to the Details page. if (addedItem == null) { return(View(newItem)); } else { return(RedirectToAction("Details", new { id = addedItem.recipe_Id })); } } catch { newItem.ingredients = m.IngredientGetAll(); newItem.selectedIngredsId = new string[0]; newItem.diets = m.DietGetAll(); newItem.selectedDietsId = new string[0]; return(View(newItem)); } }