Exemplo n.º 1
0
        public void Recipe_Update_UpdateDatabaseAndLocalObject()
        {
            Recipe testRecipe = new Recipe("Pot Pie", "Microwave it");

            testRecipe.Save();

            testRecipe.Update("Chicken Pot Pie", "Boil it", 4);
            Recipe expectedRecipe = new Recipe("Chicken Pot Pie", "Boil it", 4, testRecipe.GetId());

            Assert.Equal(expectedRecipe, Recipe.Find(testRecipe.GetId()));
        }
Exemplo n.º 2
0
        public HomeModule()
        {
            Get["/"] = _ => {
                return(View["index.cshtml"]);
            };

            Get["/recipes"] = _ => {
                return(View["recipes.cshtml", ModelMaker()]);
            };

            Post["/recipes"] = _ => {
                Recipe newRecipe = new Recipe(Request.Form["recipe-name"], Request.Form["instruction"], int.Parse(Request.Form["rating"]));
                newRecipe.Save();
                int ingredientCounter = int.Parse(Request.Form["ingredient-counter"]);
                for (int index = 1; index <= ingredientCounter; index++)
                {
                    Ingredient newIngredient = new Ingredient(Request.Form["ingredient-" + index.ToString()]);
                    newIngredient.Save();
                    string newAmount = Request.Form["ingredient-amount-" + index.ToString()];
                    newRecipe.AddIngredient(newIngredient, newAmount);
                }
                return(View["recipes.cshtml", ModelMaker()]);
            };

            Delete["/recipes"] = _ => {
                Recipe.DeleteAll();
                return(View["recipes.cshtml", ModelMaker()]);
            };

            Get["/recipes/{id}"] = parameters => {
                Dictionary <string, object> model = ModelMaker();
                model.Add("recipe", Recipe.Find(parameters.id));
                return(View["recipe.cshtml", model]);
            };

            Delete["/recipes/{id}"] = parameters => {
                Recipe.Find(parameters.id).Delete();
                return(View["recipes.cshtml", ModelMaker()]);
            };

            Patch["/recipes/{id}"] = parameters => {
                Recipe newRecipe = Recipe.Find(parameters.id);
                newRecipe.Update(Request.Form["update-recipe-name"], Request.Form["instruction"], Request.Form["rating"]);
                newRecipe.DeleteIngredients();
                int ingredientCounter = int.Parse(Request.Form["ingredient-counter"]);
                for (int index = 1; index <= ingredientCounter; index++)
                {
                    Ingredient newIngredient = new Ingredient(Request.Form["ingredient-" + index.ToString()]);
                    newIngredient.Save();
                    string newAmount = Request.Form["ingredient-amount-" + index.ToString()];
                    newRecipe.AddIngredient(newIngredient, newAmount);
                }
                Dictionary <string, object> model = ModelMaker();
                model.Add("recipe", newRecipe);
                return(View["recipe.cshtml", model]);
            };


            Post["/recipes/{id}/add-category"] = parameters => {
                Recipe   foundRecipe   = Recipe.Find(parameters.id);
                Category foundCategory = Category.Find(Request.Form["new-category"]);
                foundRecipe.AddCategory(foundCategory);
                Dictionary <string, object> model = ModelMaker();
                model.Add("recipe", Recipe.Find(parameters.id));
                return(View["recipe.cshtml", model]);
            };

            Get["/categories"] = _ => {
                return(View["categories.cshtml", ModelMaker()]);
            };

            Post["/categories"] = _ => {
                Category newCategory = new Category(Request.Form["category-name"]);
                newCategory.Save();
                return(View["categories.cshtml", ModelMaker()]);
            };

            Delete["/categories"] = _ => {
                Category.DeleteAll();
                return(View["recipes.cshtml", ModelMaker()]);
            };

            Get["/categories/{id}"] = parameters => {
                Category foundCategory = Category.Find(parameters.id);
                return(View["category.cshtml", foundCategory]);
            };

            Patch["/categories/{id}"] = parameters => {
                Category foundCategory = Category.Find(parameters.id);
                foundCategory.Update(Request.Form["update-category-name"]);
                return(View["categories.cshtml", ModelMaker()]);
            };

            Delete["/categories/{id}"] = parameters => {
                Category foundCategory = Category.Find(parameters.id);
                foundCategory.Delete();
                return(View["categories.cshtml", ModelMaker()]);
            };

            Get["/ingredients"] = _ => {
                return(View["ingredients.cshtml", ModelMaker()]);
            };

            Post["/ingredients"] = _ => {
                Ingredient newIngredient = new Ingredient(Request.Form["ingredient-name"]);
                newIngredient.Save();
                return(View["ingredients.cshtml", ModelMaker()]);
            };

            Delete["/ingredients"] = _ => {
                Ingredient.DeleteAll();
                return(View["ingredients.cshtml", ModelMaker()]);
            };

            Get["/ingredients/{id}"] = parameters => {
                Ingredient foundIngredient = Ingredient.Find(parameters.id);
                return(View["ingredient.cshtml", foundIngredient]);
            };

            Patch["/ingredients/{id}"] = parameters => {
                Ingredient foundIngredient = Ingredient.Find(parameters.id);
                foundIngredient.Update(Request.Form["update-ingredient-name"]);
                return(View["ingredients.cshtml", ModelMaker()]);
            };

            Delete["/ingredients/{id}"] = parameters => {
                Ingredient foundIngredient = Ingredient.Find(parameters.id);
                foundIngredient.Delete();
                return(View["ingredients.cshtml", ModelMaker()]);
            };
        }