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))); }
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))); }
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); }
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)); }
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))); }
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); }