コード例 #1
0
        public async Task <ImageDto> UpdateImage(UpdateImageDto dto)
        {
            await _validator.ValidateAsync(dto);

            var imageEntity = _context.Images
                              .Include(n => n.ImageCategories)
                              .First(n => n.Id == dto.Id);

            _mapper.Map(dto, imageEntity);

            var categoriesToAdd        = dto.CategoryIds.Where(categoryId => imageEntity.ImageCategories.All(n => n.CategoryId != categoryId));
            var imgeCategoriesToDelete = imageEntity.ImageCategories.Where(n => !dto.CategoryIds.Contains(n.CategoryId));

            categoriesToAdd.ForEach(categoryId =>
            {
                if (imageEntity.ImageCategories.All(n => n.CategoryId != categoryId))
                {
                    imageEntity.ImageCategories.Add(new ImageCategoryEntity {
                        CategoryId = categoryId, ImageId = imageEntity.Id
                    });
                }
            });

            _context.ImageCategories.RemoveRange(imgeCategoriesToDelete);

            await _context.SaveChangesAsync();

            return(_mapper.Map <ImageDto>(imageEntity));
        }
コード例 #2
0
        public async Task <IActionResult> UpdateImage(Guid id, UpdateImageDto updateImageDto)
        {
            if (id != updateImageDto.ImageId)
            {
                return(BadRequest("Not consistent request"));
            }

            try
            {
                await _imagesService.UpdateImage(updateImageDto.ImageId, updateImageDto.ImageNewName);

                return(NoContent());
            }
            catch (ArgumentException exc)
            {
                return(BadRequest(exc.Message));
            }
        }
コード例 #3
0
 public async Task <IActionResult> Update(int id, [FromForm] UpdateImageDto dto)
 => await GetResponse(async() =>
                      new ApiResponseViewModel(true, "Update Image Successfully",
                                               await _imageService.Update(id, dto, UserId)));