예제 #1
0
        public async Task <IEnumerable <PictureDto> > Handle(GetPicturesQuery request, CancellationToken cancellationToken)
        {
            Uri requestUrl = new Uri(_httpClient.BaseAddress, ApiConstants.GetPicturesUrl);
            AuthenticationHeaderValue authHeader = await _localStorage.GetAuthHeaderValueAsync();

            return(await _httpClient.PostAsJsonAsync <GetPicturesQuery, IEnumerable <PictureDto> >(requestUrl, request,
                                                                                                   authHeader));
        }
예제 #2
0
        public async Task <IEnumerable <PictureDto> > Handle(GetPicturesQuery request, CancellationToken cancellationToken)
        {
            Album album = await _dbContext.Albums.FindAsync(request.AlbumId);

            Guid userId = _httpContextAccessor.HttpContext.GetUserId();

            if (!album.IsPrivate || userId == album.OwnerId)
            {
                return(album.Pictures.Skip(request.Offset).Take(request.Count).Select(p =>
                                                                                      p.ToPictureDto(_pictureService.GetBigPictureUrl(p.Id, p.Extension),
                                                                                                     _pictureService.GetSmallPictureUrl(p.Id, p.Extension)))
                       .ToArray());
            }
            else
            {
                return(new PictureDto[0]);
            }
        }
예제 #3
0
 public async Task <ActionResult <IEnumerable <PictureDto> > > GetPictures(GetPicturesQuery query)
 => Ok(await _mediator.Send(query));