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