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));
        }
Exemple #2
0
        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);
        }