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, }); } }
public async Task <IActionResult> Edit([FromForm] EditRecipeModel model) { var response = await _recipeService.EditAsync(model); if (response.Success) { return(Ok()); } return(BadRequest()); }
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")); }
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)); }