Exemplo n.º 1
0
        public async Task <IActionResult> GetUsers([FromQuery] UserForFilterDto filterDto)
        {
            var users = await _service.GetUsers(base.GetUserIdFromToken(), filterDto);

            Response.AddPagination(users.CurrentPage, users.PageSize, users.TotalCount, users.TotalPages);

            return(Ok(_mapper.To <IEnumerable <UserForListDto> >(users)));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> GetPhoto(int photoId)
        {
            var photo = await _service.GetPhoto(photoId);

            if (photo is null)
            {
                return(NotFound($"Could not find the photo '{photoId}'."));
            }

            return(Ok(_mapper.To <PhotoToReturnDto>(photo)));
        }
Exemplo n.º 3
0
        public async Task <Photo> UploadPhoto(int userId, PhotoForCreationDto userDto)
        {
            var user = await _usersService.GetUser(userId, true);

            var file = userDto.File;

            if (file is null || file.Length <= 0)
            {
                throw new BadRequestException("The photo was not provided.");
            }

            var uploadResult = await _imageUploader.UploadAsync(file);

            var photo = _mapper.To <Photo>(userDto);

            photo.Url      = uploadResult.Url;
            photo.PublicId = uploadResult.PublicId;

            if (!user.Photos.Any(u => u.IsMain))
            {
                photo.IsMain = true;
            }

            user.Photos.Add(photo);

            await _unitOfWork.CommitAsync();

            return(photo);
        }
Exemplo n.º 4
0
        public async Task <UploadedFileResult> UploadAsync(IFormFile file)
        {
            var result = new ImageUploadResult();

            using (var stream = file.OpenReadStream())
            {
                var uploadParams = new ImageUploadParams()
                {
                    File           = new FileDescription(file.Name, stream),
                    Transformation = new Transformation().Width(500).Height(500).Crop("fill").Gravity("face")
                };

                result = await _cloudinary.UploadAsync(uploadParams);
            }

            return(_mapper.To <UploadedFileResult>(result));
        }
Exemplo n.º 5
0
        public async Task <IActionResult> GetMessage(int id)
        {
            var message = await _service.GetMessage(id);

            if (message == null)
            {
                return(NotFound());
            }

            var user = await _usersService.GetUser(base.GetUserIdFromToken(), true);

            if (!user.MessagesSent.Any(p => p.Id == id) && !user.MessagesReceived.Any(p => p.Id == id))
            {
                return(Unauthorized());
            }

            return(Ok(_mapper.To <MessageToReturnDto>(message)));
        }
Exemplo n.º 6
0
        public async Task <Message> SaveMessage(int userId, MessageForCreationDto messageDto)
        {
            var recipient = await _usersService.GetUser(messageDto.RecipientId, false);

            if (recipient == null)
            {
                throw new BadRequestException($"Could not find user id '{messageDto.RecipientId}'.");
            }

            var message = _mapper.To <Message>(messageDto);

            message.SenderId = userId;

            _unitOfWork.Messages.Add(message);

            await _unitOfWork.CommitAsync();

            return(message);
        }