public async Task <IActionResult> UpdateRecipe(int recipeId, [FromForm] UpdateRecipeBindingModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelStateErrors())); } var result = await _recipeService.UpdateRecipe(recipeId, model, model.Photo); if (result.ErrorOccured) { return(BadRequest(result)); } return(Ok(result)); }
public async Task <ResponseDTO <BaseModelDTO> > UpdateRecipe(int recipeId, UpdateRecipeBindingModel recipeBindingModel, IFormFile photo) { var response = new ResponseDTO <BaseModelDTO>(); var fileName = ""; var recipeExist = await _recipeRepository.ExistAsync(x => x.Id == recipeId); if (!recipeExist) { response.Errors.Add("Nie znaleziono takiego przepisu."); } var recipe = await _recipeRepository.GetAsync(recipeId); if (photo == null) { response.Errors.Add("Nie dodałeś zdjęcia."); return(response); } string uploadFolder = "wwwroot\\RecipePhotos"; if (!Directory.Exists(uploadFolder)) { Directory.CreateDirectory(uploadFolder); } fileName = Guid.NewGuid() + Path.GetExtension(photo.FileName); var path = Path.Combine(uploadFolder, fileName); using (var stream = new FileStream(path, FileMode.Create)) { await photo.CopyToAsync(stream); } recipe.PhotoName = fileName; var mappedRecipe = _mapper.Map(recipeBindingModel, recipe); if (await _recipeRepository.UpdateAsync(mappedRecipe, recipeId) == null) { return(response); } return(response); }