예제 #1
0
        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"]);
            };
        }