Ejemplo n.º 1
0
 async Task IDataService.UpdateRecipeAsync(Guid bookId, Guid recipeId, EditRecipeModel model)
 {
     using (var connection = GetConnection())
     {
         await connection.ExecuteAsync(
             @"
             UPDATE BookRecipe
             SET
                 [Name] = @name,
                 [Description] = @description,
                 Servings = @servings,
                 LastModifiedAt = @now
             WHERE BookId = @bookId AND RecipeId = @recipeId;
             ",
             new
         {
             bookId,
             recipeId,
             name        = model.Name,
             description = model.Description,
             servings    = model.Servings,
             now         = DateTime.UtcNow,
         });
     }
 }
Ejemplo n.º 2
0
        public async Task <IActionResult> Edit([FromForm] EditRecipeModel model)
        {
            var response = await _recipeService.EditAsync(model);

            if (response.Success)
            {
                return(Ok());
            }

            return(BadRequest());
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> Edit(RecipeKeyModel key, EditRecipeModel model)
        {
            var(book, recipe) = await GetRecipeAsync(key);

            if (recipe == null)
            {
                return(NotFound());
            }

            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            await _dataService
            .UpdateRecipeAsync(recipe.BookId, recipe.RecipeId, model);

            return(RedirectToAction("Index"));
        }
Ejemplo n.º 4
0
        public async Task <ServiceResponse> EditAsync(EditRecipeModel model)
        {
            var entity = await _unitOfWork.RecipeRepository.FindOneAsync(x => x.Id == model.Id);

            if (entity == null)
            {
                return(new ServiceResponse(false));
            }

            entity.Title       = model.Title;
            entity.Slug        = model.Title.ConvertToSlugFormat();
            entity.Ingredients = model.Ingredients.Split('\n');
            entity.Directions  = model.Directions.Split('\n');
            entity.Category    = new Category
            {
                Id   = model.CategoryId,
                Name = (await _unitOfWork.CategoryRepository.FindOneAsync(x => x.Id == model.CategoryId)).Name,
                Slug = (await _unitOfWork.CategoryRepository.FindOneAsync(x => x.Id == model.CategoryId)).Slug
            };
            entity.OnHomepage = model.OnHomepage;
            entity.Time       = model.Time;
            entity.Difficulty = model.Difficulty;
            entity.Servings   = model.Servings;

            if (model.ImageFile != null)
            {
                var suffix = Guid.NewGuid().ToString();
                await _imageService.SaveRecipeImage(model.ImageFile, suffix, entity.ImageName);

                entity.ImageName = Path.GetFileNameWithoutExtension(model.ImageFile.FileName) + "-" + suffix + Path.GetExtension(model.ImageFile.FileName);
            }

            await _unitOfWork.RecipeRepository.UpdateAsync(entity);

            return(new ServiceResponse(true));
        }