public async Task AddImage(AddImage.Request request, CancellationToken cancellationToken) { var userId = await _identity.GetCurrentUserId(cancellationToken); if (string.IsNullOrEmpty(userId)) { throw new NoUserFoundException($"Пользователь не найден"); } var response = await _imageService.Upload( new UploadImage.Request { Image = request.Image }, cancellationToken); var user = await _repository.FindById(userId, cancellationToken); if (!string.IsNullOrEmpty(user.Avatar)) { await _imageService.Delete( new Image.Contracts.DeleteImage.Request { Id = user.Avatar }, cancellationToken); } user.Avatar = response.Id; await _repository.Save(user, cancellationToken); }
public async Task AddImage(AddImage.Request request, CancellationToken cancellationToken) { var userId = await _identityService.GetCurrentUserId(cancellationToken); if (string.IsNullOrEmpty(userId)) { throw new NoUserFoundException($"Пользователь не найден"); } var advertisement = await _repository.FindById(request.Id, cancellationToken); if (advertisement == null) { throw new AdNotFoundException(request.Id); } if (advertisement.Status == Domain.Advertisement.Statuses.Closed) { throw new AdNotFoundException(request.Id); } if (advertisement.OwnerId != userId) { throw new NoRightsException("Нет прав для выполнения операции."); } var response = await _imageService.Upload( new UploadImage.Request { Image = request.Image }, cancellationToken); var image = await _imageRepository.FindById(response.Id, cancellationToken); advertisement.Images.Add(image); await _repository.Save(advertisement, cancellationToken); }