/// <summary> /// get posts query handler /// </summary> /// <param name="request">request query</param> /// <param name="cancellationToken">thread cancellation notif</param> /// <returns>paging collection of posts</returns> public async Task <PagedResponse <IEnumerable <GetPostDto> > > Handle(GetAllPostsQuery request, CancellationToken cancellationToken) { GetAllPostsParameter validParams = _mapper.Map <GetAllPostsParameter>(request); IReadOnlyList <Post> posts = await _postRepository .GetPagedReponseAsync(validParams.PageNumber, validParams.PageSize); var postViewModel = _mapper.Map <IEnumerable <GetPostDto> >(posts); // Raising Event ... //await _mediator.Publish(new PostRequestedEvent(DateTime.Now, validParams.IP), cancellationToken); return(new PagedResponse <IEnumerable <GetPostDto> >(postViewModel, validParams.PageNumber, validParams.PageSize)); }
public async Task <ActionResult <PagedResponse <IEnumerable <GetPostDto> > > > Index([FromQuery] GetAllPostsParameter filter = null) { _logger.LogInformation($"BLog MicroService Built-in Controller, {nameof(Index)} action executed!"); return(Ok(await Mediator.Send(new GetAllPostsQuery() { PageSize = filter.PageSize <= 0 ? 10 : filter.PageSize, PageNumber = filter.PageNumber <= 0 ? 1 : filter.PageNumber }))); }