public void Test_DeleteRecipe_DeleteRecipeFromDatabase() { //Arrange Recipe testRecipe = new Recipe("Spaghetti", "<Pasta, <Marinara Sauce", "Boil water, cook pasta, strain pasta, add sauce", 5, "30 mins"); //Act testRecipe.Save(); testRecipe.Delete(); //Assert List <Recipe> expectedResult = new List <Recipe> { }; List <Recipe> actualResult = Recipe.GetAll(); Assert.Equal(expectedResult, actualResult); }
public void Test_DeleteRecipe_DeleteRecipeFromJoinTable() { //Arrange Recipe testRecipe = new Recipe("Spaghetti", "<Pasta, <Marinara Sauce", "Boil water, cook pasta, strain pasta, add sauce", 5, "30 mins"); //Act testRecipe.Save(); testRecipe.Delete(); //Assert List <Recipe> expectedResult = new List <Recipe> { }; List <Recipe> allrecipes = new List <Recipe> { }; SqlConnection conn = DB.Connection(); conn.Open(); SqlCommand cmd = new SqlCommand("SELECT * FROM recipes_tags WHERE recipe_id = 5;", conn); SqlDataReader rdr = cmd.ExecuteReader(); while (rdr.Read()) { int id = rdr.GetInt32(0); string name = rdr.GetString(1); string ingredients = rdr.GetString(2); string instructions = rdr.GetString(3); int rate = rdr.GetInt32(4); string time = rdr.GetString(5); Recipe newRecipe = new Recipe(name, ingredients, instructions, rate, time, id); allrecipes.Add(newRecipe); } if (rdr != null) { rdr.Close(); } if (conn != null) { conn.Close(); } Assert.Equal(expectedResult, allrecipes); }
public void Test_Delete_DeletesRecipeFromCategory() { //Arrange Category testCategory = new Category("Asian"); testCategory.Save(); Recipe testRecipe = new Recipe("Spicy Yaki Soba", "Spicy, Soba", "Pour Spicy into Soba"); testRecipe.Save(); //Act testRecipe.AddCategory(testCategory); testRecipe.Delete(); List <Recipe> resultCategoryRecipes = testCategory.GetRecipes(); List <Recipe> testCategoryRecipes = new List <Recipe> { }; //Assert Assert.Equal(testCategoryRecipes, resultCategoryRecipes); }
public void Test_Delete_DeletesRecipeAssociationsFromDatabase() { //Arrange Category testCategory = new Category("Mexican"); testCategory.Save(); Recipe testRecipe = new Recipe("Mac and cheese", "cheese and noodles", "cook it", 5); testRecipe.Save(); //Act testRecipe.AddCategory(testCategory); testRecipe.Delete(); List <Recipe> resultCategoriesRecipes = testCategory.GetRecipes(); List <Recipe> testCategoriesRecipes = new List <Recipe> { }; //Assert Assert.Equal(testCategoriesRecipes, resultCategoriesRecipes); }
public HomeModule() { Get["/"] = _ => { List <Category> AllCategories = Category.GetAll(); return(View["index.cshtml", AllCategories]); }; Get["/recipes"] = _ => { List <Recipe> AllRecipes = Recipe.GetAll(); return(View["recipes.cshtml", AllRecipes]); }; Get["/categories"] = _ => { List <Category> AllCategories = Category.GetAll(); return(View["categories.cshtml", AllCategories]); }; Get["/categories/new"] = _ => { return(View["categories_form.cshtml"]); }; Post["/categories/new"] = _ => { Category newCategory = new Category(Request.Form["category-name"]); newCategory.Save(); return(View["categories.cshtml", Category.GetAll()]); }; Get["/recipes/new"] = _ => { List <Category> AllCategories = Category.GetAll(); return(View["recipes_form.cshtml", AllCategories]); }; Post["/recipes/new"] = _ => { Recipe newRecipe = new Recipe(Request.Form["recipe-name"], Request.Form["recipe-ingredient"], Request.Form["recipe-instruction"], Request.Form["recipe-rating"]); newRecipe.Save(); return(View["recipes.cshtml", Recipe.GetAll()]); }; Get["recipes/{id}"] = parameters => { Dictionary <string, object> model = new Dictionary <string, object>(); Recipe SelectedRecipe = Recipe.Find(parameters.id); List <Category> RecipeCategories = SelectedRecipe.GetCategories(); List <Category> AllCategories = Category.GetAll(); model.Add("recipe", SelectedRecipe); model.Add("recipeCategories", RecipeCategories); model.Add("allCategories", AllCategories); return(View["recipe.cshtml", model]); }; Get["/categories/{id}"] = parameters => { Dictionary <string, object> model = new Dictionary <string, object>(); var SelectedCategory = Category.Find(parameters.id); var CategoryRecipes = SelectedCategory.GetRecipes(); List <Recipe> AllRecipes = Recipe.GetAll(); model.Add("category", SelectedCategory); model.Add("categoryRecipes", CategoryRecipes); model.Add("allRecipes", AllRecipes); return(View["category.cshtml", model]); }; Post["/recipe/add_category"] = _ => { Category category = Category.Find(Request.Form["category-id"]); Recipe recipe = Recipe.Find(Request.Form["recipe-id"]); recipe.AddCategory(category); return(View["category-list.cshtml", recipe.GetCategories()]); }; Post["/category/add_recipe"] = _ => { Category category = Category.Find(Request.Form["category-id"]); Recipe recipe = Recipe.Find(Request.Form["recipe-id"]); category.AddRecipe(recipe); return(View["recipe-list.cshtml", category.GetRecipes()]); }; Patch["/category/edit/{id}"] = parameters => { Category SelectedCategory = Category.Find(parameters.id); SelectedCategory.UpdateCategories(Request.Form["new-category-name"]); return(View["categories.cshtml", Category.GetAll()]); }; Patch["/recipe/edit/{id}"] = parameters => { Recipe SelectedRecipe = Recipe.Find(parameters.id); SelectedRecipe.UpdateRecipes(Request.Form["new-recipe-name"], Request.Form["new-recipe-ingredient"], Request.Form["new-recipe-instruction"], Request.Form["new-recipe-rating"]); return(View["recipes.cshtml", Recipe.GetAll()]); }; Get["/recipes/detail/{id}"] = parameters => { Recipe recipe = Recipe.Find(parameters.id); return(View["recipe-detail.cshtml", recipe]); }; Delete["/categories/{id}"] = parameters => { Category targetCategory = Category.Find(parameters.id); targetCategory.Delete(); return(View["categories.cshtml", Category.GetAll()]); }; Delete["/recipes/{id}"] = parameters => { Recipe targetRecipe = Recipe.Find(parameters.id); targetRecipe.Delete(); return(View["recipes.cshtml", Recipe.GetAll()]); }; Post["/recipe/search/results"] = _ => { List <Recipe> FoundList = new List <Recipe> { }; Recipe foundRecipe = Recipe.FindByIngredient(Request.Form["recipe-search"]); FoundList.Add(foundRecipe); return(View["search.cshtml", FoundList]); }; Post["/categories/delete"] = _ => { Category.DeleteAll(); Recipe.DeleteAll(); return(View["index.cshtml"]); }; Post["/recipes/delete"] = _ => { Recipe.DeleteAll(); return(View["index.cshtml"]); }; }
public HomeModule() { Get["/"] = _ => { List <Category> AllCategories = Category.GetAll(); return(View["index.cshtml", AllCategories]); }; Get["/recipe/new"] = _ => { return(View["category_recipes.cshtml"]); }; Post["/"] = _ => { Category newCategory = new Category(Request.Form["category-name"]); newCategory.Save(); return(View["index.cshtml", Category.GetAll()]); }; Post["/category/{id}/recipe/new"] = parameters => { Recipe newRecipe = new Recipe(Request.Form["recipe-name"], Request.Form["recipe-ingredients"], Request.Form["recipe-instructions"]); newRecipe.Save(); Category SelectedCategory = Category.Find(parameters.id); SelectedCategory.AddRecipe(newRecipe); Dictionary <string, object> model = new Dictionary <string, object>(); List <Recipe> RecipeList = SelectedCategory.GetRecipes(); model.Add("category", SelectedCategory); model.Add("recipes", RecipeList); return(View["category_recipes.cshtml", model]); }; Get["/category/{id}"] = parameters => { Dictionary <string, object> model = new Dictionary <string, object>(); Category SelectedCategory = Category.Find(parameters.id); List <Recipe> RecipeList = SelectedCategory.GetRecipes(); model.Add("category", SelectedCategory); model.Add("recipes", RecipeList); return(View["category_recipes.cshtml", model]); }; Get["/recipe/{id}"] = parameters => { Dictionary <string, object> model = new Dictionary <string, object>(); Recipe SelectedRecipe = Recipe.Find(parameters.id); List <Category> RecipeCategory = SelectedRecipe.GetCategories(); model.Add("recipe", SelectedRecipe); return(View["index.cshtml"]); }; Delete["/category/delete/{id}"] = parameters => { Dictionary <string, object> model = new Dictionary <string, object>(); Category SelectedCategory = Category.Find(parameters.id); SelectedCategory.Delete(); model.Add("category", SelectedCategory); return(View["success.cshtml", model]); }; Get["/recipe/delete/{id}"] = parameters => { Recipe SelectedRecipe = Recipe.Find(parameters.id); return(View["category_recipes.cshtml", SelectedRecipe]); }; Patch["/recipe/edit/{id}"] = parameters => { Recipe SelectedRecipe = Recipe.Find(parameters.id); SelectedRecipe.UpdateRecipe(Request.Form["recipe-name"], Request.Form["recipe-ingredients"], Request.Form["recipe-instructions"]); return(View["success.cshtml", Recipe.GetAll()]); }; Delete["/recipe/delete/{id}"] = parameters => { Dictionary <string, object> model = new Dictionary <string, object>(); Recipe SelectedRecipe = Recipe.Find(parameters.id); SelectedRecipe.Delete(); model.Add("recipe", SelectedRecipe); return(View["success.cshtml", model]); }; }
public HomeModule() { Get["/"] = _ => { List <Recipe> allRecipes = Recipe.GetAll(); return(View["index.cshtml", allRecipes]); }; Get["/new-recipe"] = _ => { return(View["recipe_form.cshtml"]); }; Post["/recipe/added"] = _ => { Recipe newRecipe = new Recipe(Request.Form["recipe-name"], "", "", 0, ""); newRecipe.Save(); List <String> IngredientNames = new List <String> { }; string Ingredients = newRecipe.GetIngredients(); if (Ingredients != "") { string[] IngredientsArray = Ingredients.Split(' '); foreach (string name in IngredientsArray) { IngredientNames.Add(name.Substring(1, name.Length - 1)); } } else { IngredientNames = new List <String> { "You have no ingredients so far" }; } List <String> Instructions = new List <String> { }; string InstructionsString = newRecipe.GetInstructions(); if (InstructionsString != "") { string[] InstructionsArray = InstructionsString.Split(' '); foreach (string name in InstructionsArray) { Console.WriteLine(name); Instructions.Add(name.Substring(1, name.Length - 2)); } } else { Instructions = new List <String> { "You have no steps of instructions so far" }; } Dictionary <string, object> model = new Dictionary <string, object> { { "recipe", newRecipe }, { "ingredients", IngredientNames }, { "instructions", Instructions } }; return(View["recipe.cshtml", model]); }; Post["/{id}/ingredient/added"] = parameters => { Recipe thisRecipe = Recipe.Find(parameters.id); Console.WriteLine("ingredient-name"); thisRecipe.AddIngredient(Request.Form["ingredient-name"]); List <String> IngredientNames = new List <String> { }; string Ingredients = thisRecipe.GetIngredients(); string[] IngredientsArray = Ingredients.Split(' '); foreach (string name in IngredientsArray) { if ((!(String.IsNullOrEmpty(name)))) { IngredientNames.Add(name.Substring(1, name.Length - 2)); } } List <String> Instructions = new List <String> { }; string InstructionsString = thisRecipe.GetInstructions(); string[] InstructionsArray = InstructionsString.Split('|'); foreach (string name in InstructionsArray) { if ((!(String.IsNullOrEmpty(name)))) { Instructions.Add(name.Substring(1, name.Length - 2)); } } Dictionary <string, object> model = new Dictionary <string, object> { { "recipe", thisRecipe }, { "ingredients", IngredientNames }, { "instruction", Instructions } }; return(View["recipe.cshtml", model]); }; Post["/{id}/instructions/added"] = parameters => { Recipe thisRecipe = Recipe.Find(parameters.id); thisRecipe.AddInstruction(Request.Form["instructions"]); List <String> IngredientNames = new List <String> { }; string Ingredients = thisRecipe.GetIngredients(); string[] IngredientsArray = Ingredients.Split(' '); foreach (string name in IngredientsArray) { if ((!(String.IsNullOrEmpty(name)))) { IngredientNames.Add(name.Substring(1, name.Length - 2)); } } List <String> Instructions = new List <String> { }; string InstructionsString = thisRecipe.GetInstructions(); string[] InstructionsArray = InstructionsString.Split('|'); foreach (string name in InstructionsArray) { if ((!(String.IsNullOrEmpty(name)))) { Instructions.Add(name.Substring(1, name.Length - 2)); } } Dictionary <string, object> model = new Dictionary <string, object> { { "recipe", thisRecipe }, { "ingredients", IngredientNames }, { "instruction", Instructions } }; return(View["recipe.cshtml", model]); }; Post["/recipe/{id}"] = parameters => { Recipe thisRecipe = Recipe.Find(parameters.id); thisRecipe.Update(null, null, null, int.Parse(Request.Form["star"]), Request.Form["time"]); List <String> IngredientNames = new List <String> { }; string Ingredients = thisRecipe.GetIngredients(); string[] IngredientsArray = Ingredients.Split(' '); foreach (string name in IngredientsArray) { if ((!(String.IsNullOrEmpty(name)))) { IngredientNames.Add(name.Substring(1, name.Length - 2)); } } List <String> Instructions = new List <String> { }; string InstructionsString = thisRecipe.GetInstructions(); string[] InstructionsArray = InstructionsString.Split('|'); foreach (string name in InstructionsArray) { if ((!(String.IsNullOrEmpty(name)))) { Instructions.Add(name.Substring(1, name.Length - 2)); } } Dictionary <string, object> Model = new Dictionary <string, object> { }; Model.Add("recipe", thisRecipe); Model.Add("ingredients", IngredientNames); Model.Add("instructions", Instructions); Model.Add("rate", thisRecipe.GetRate()); Model.Add("time", thisRecipe.GetTime()); return(View["recipe-info.cshtml", Model]); }; Delete["/deleteall"] = _ => { Recipe.DeleteAll(); List <Recipe> allRecipes = Recipe.GetAll(); return(View["index.cshtml", allRecipes]); }; Get["/recipe/{id}/info"] = parameters => { Recipe thisRecipe = Recipe.Find(parameters.id); List <String> IngredientNames = new List <String> { }; string Ingredients = thisRecipe.GetIngredients(); string[] IngredientsArray = Ingredients.Split(' '); foreach (string name in IngredientsArray) { if ((!(String.IsNullOrEmpty(name)))) { IngredientNames.Add(name.Substring(1, name.Length - 2)); } } List <String> Instructions = new List <String> { }; string InstructionsString = thisRecipe.GetInstructions(); string[] InstructionsArray = InstructionsString.Split('|'); foreach (string name in InstructionsArray) { if ((!(String.IsNullOrEmpty(name)))) { Instructions.Add(name.Substring(1, name.Length - 2)); } } Dictionary <string, object> Model = new Dictionary <string, object> { }; Model.Add("recipe", thisRecipe); Model.Add("ingredients", IngredientNames); Model.Add("instructions", Instructions); Model.Add("rate", thisRecipe.GetRate()); Model.Add("time", thisRecipe.GetTime()); return(View["recipe-info.cshtml", Model]); }; Delete["/recipe/{id}/delete"] = parameters => { Recipe thisRecipe = Recipe.Find(parameters.id); thisRecipe.Delete(); List <Recipe> allRecipes = Recipe.GetAll(); return(View["index.cshtml", allRecipes]); }; Get["/recipe/{id}/update"] = parameters => { Recipe thisRecipe = Recipe.Find(parameters.id); List <String> IngredientNames = new List <String> { }; string Ingredients = thisRecipe.GetIngredients(); string[] IngredientsArray = Ingredients.Split(' '); foreach (string name in IngredientsArray) { if ((!(String.IsNullOrEmpty(name)))) { IngredientNames.Add(name.Substring(1, name.Length - 2)); } } List <String> Instructions = new List <String> { }; string InstructionsString = thisRecipe.GetInstructions(); string[] InstructionsArray = InstructionsString.Split('|'); foreach (string name in InstructionsArray) { if ((!(String.IsNullOrEmpty(name)))) { Instructions.Add(name.Substring(1, name.Length - 2)); } } Dictionary <string, object> Model = new Dictionary <string, object> { }; Model.Add("recipe", thisRecipe); Model.Add("ingredients", IngredientNames); Model.Add("instructions", Instructions); Model.Add("rate", thisRecipe.GetRate()); Model.Add("time", thisRecipe.GetTime()); return(View["recipe_update_form.cshtml", Model]); }; Patch["/{id}/update/ingredient/{IngredientName}"] = parameters => { Recipe thisRecipe = Recipe.Find(parameters.id); List <String> IngredientNames = new List <String> { }; string Ingredients = thisRecipe.GetIngredients(); string[] IngredientsArray = Ingredients.Split(' '); foreach (string name in IngredientsArray) { if (!((String.IsNullOrEmpty(name)) || (name.Substring(1, name.Length - 2) == (string)parameters.IngredientName))) { IngredientNames.Add(name.Substring(1, name.Length - 2)); } } thisRecipe.AddIngredients(IngredientNames); List <String> Instructions = new List <String> { }; string InstructionsString = thisRecipe.GetInstructions(); string[] InstructionsArray = InstructionsString.Split('|'); foreach (string name in InstructionsArray) { if ((!(String.IsNullOrEmpty(name)))) { Instructions.Add(name.Substring(1, name.Length - 2)); } } Dictionary <string, object> Model = new Dictionary <string, object> { }; Model.Add("recipe", thisRecipe); Model.Add("ingredients", IngredientNames); Model.Add("instructions", Instructions); Model.Add("rate", thisRecipe.GetRate()); Model.Add("time", thisRecipe.GetTime()); return(View["recipe_update_form.cshtml", Model]); }; Post["/{id}/ingredient/update/added"] = parameters => { Recipe thisRecipe = Recipe.Find(parameters.id); Console.WriteLine("ingredient-name"); thisRecipe.AddIngredient(Request.Form["ingredient-name"]); List <String> IngredientNames = new List <String> { }; string Ingredients = thisRecipe.GetIngredients(); string[] IngredientsArray = Ingredients.Split(' '); foreach (string name in IngredientsArray) { if ((!(String.IsNullOrEmpty(name)))) { IngredientNames.Add(name.Substring(1, name.Length - 2)); } } List <String> Instructions = new List <String> { }; string InstructionsString = thisRecipe.GetInstructions(); string[] InstructionsArray = InstructionsString.Split('|'); foreach (string name in InstructionsArray) { if ((!(String.IsNullOrEmpty(name)))) { Instructions.Add(name.Substring(1, name.Length - 2)); } } Dictionary <string, object> Model = new Dictionary <string, object> { }; Model.Add("recipe", thisRecipe); Model.Add("ingredients", IngredientNames); Model.Add("instructions", Instructions); Model.Add("rate", thisRecipe.GetRate()); Model.Add("time", thisRecipe.GetTime()); return(View["recipe_update_form.cshtml", Model]); }; Patch["/{id}/update/instructions/{InstructionName}"] = parameters => { Recipe thisRecipe = Recipe.Find(parameters.id); List <String> IngredientNames = new List <String> { }; string Ingredients = thisRecipe.GetIngredients(); string[] IngredientsArray = Ingredients.Split(' '); foreach (string name in IngredientsArray) { if (!(String.IsNullOrEmpty(name))) { IngredientNames.Add(name.Substring(1, name.Length - 2)); } } thisRecipe.AddIngredients(IngredientNames); List <String> Instructions = new List <String> { }; string InstructionsString = thisRecipe.GetInstructions(); string[] InstructionsArray = InstructionsString.Split('|'); foreach (string name in InstructionsArray) { if (!((String.IsNullOrEmpty(name)) || (name.Substring(1, name.Length - 2) == (string)parameters.InstructionName))) { Instructions.Add(name.Substring(1, name.Length - 2)); } } thisRecipe.AddInstructions(Instructions); Dictionary <string, object> Model = new Dictionary <string, object> { }; Model.Add("recipe", thisRecipe); Model.Add("ingredients", IngredientNames); Model.Add("instructions", Instructions); Model.Add("rate", thisRecipe.GetRate()); Model.Add("time", thisRecipe.GetTime()); return(View["recipe_update_form.cshtml", Model]); }; }