Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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));
            }
        }