コード例 #1
0
        public async Task <ActionResult> PublicRecipeDetails(int id)
        {
            Recipe recipe = await repository.GetAsync(id);

            if (recipe == null)
            {
                return(HttpNotFound());
            }
            return(View(recipe));
        }
コード例 #2
0
        public async Task <Recipe> GetByIdAsync(Guid id)
        {
            var recipe = await RecipeRepository.GetAsync(id);

            var ingredientTask = PopulateIngredients(recipe);
            var stepTask       = PopulateSteps(recipe);

            await Task.WhenAll(ingredientTask, stepTask);

            return(recipe);
        }
コード例 #3
0
        public async Task <IActionResult> Delete(string hashtag, string name)
        {
            var recipeGuid = await this.GetRecipeGuid(name);

            var repository = new RecipeRepository(_settings.AzureStorageConnectionString);
            var item       = await repository.GetAsync(recipeGuid);

            await repository.DeleteAsync(item);

            var viewModel = new HashtagLineViewModel(hashtag);

            return(Redirect(UrlBuilder.GetUrl(hashtag)));
        }
コード例 #4
0
        public async Task <IActionResult> Edit(string hashtag, string name)
        {
            Guid recipeGuid = await this.GetRecipeGuid(name);

            var repository = new RecipeRepository(_settings.AzureStorageConnectionString);
            var item       = await repository.GetAsync(recipeGuid);

            item.ProcessRecipe();

            var viewModel = new RecipeEditViewModel(hashtag, item);

            return(View(viewModel));
        }
コード例 #5
0
        public async Task <IActionResult> Edit(RecipeEditViewModel viewModel)
        {
            Recipe item;

            var repository = new RecipeRepository(_settings.AzureStorageConnectionString);

            if (viewModel.IsNew())
            {
                item = new Recipe();
            }
            else
            {
                item = await repository.GetAsync(viewModel.Guid);
            }

            viewModel.FillModel(item);

            await repository.SaveAsync(item);

            return(RedirectToAction("Details", "Recipes", new { hashtag = viewModel.Hashtag, name = item.Name }));
        }
コード例 #6
0
 // GET: Recipes
 public async Task <IActionResult> Index()
 {
     return(View(await _repository.GetAsync()));
 }