public async Task <Response <List <BookResource> > > GetBooks([FromHeader] GetBooksPerPageQuery query) { query.ConvertToBookPagination(HttpContext); var pagedOrder = await mediatr.Send(query); Response.AddPaginationToHeader(new Pagination(pagedOrder.Item.PageNumber, pagedOrder.Item.PageSize, pagedOrder.Item.TotalPages, pagedOrder.Item.TotalCount)); return(book.Application.common.Response.Ok <List <BookResource> >(pagedOrder.Item.ToList())); }
public async Task <Response <PagedList <BookResource> > > Handle(GetBooksPerPageQuery request, CancellationToken cancellationToken) { PagedList <Book> pagedBook = await bookRepo.GetBooksPerPage(request as BookPaginationParams); if (pagedBook.Any()) { PagedList <BookResource> pagedBookResource = pagedConvertor.bookPagedToResource(pagedBook); return(Response.Ok <PagedList <BookResource> >(pagedBookResource)); } else { return(Response.Fail <PagedList <BookResource> >("هیچ کتابی با این مشخصات وجود ندارد", StatusCodeEnum.NOTFUOUND)); } }
private HttpRequestMessage GetRequestCreator(GetBooksPerPageQuery query) { var request = new HttpRequestMessage(HttpMethod.Get, "/api/book"); foreach (PropertyInfo info in query.GetType().GetProperties()) { if (info.Name == "BookCategories") { var list = info.GetValue(query) as List <BookCategoryEnum>; var intList = list.Select(item => Convert.ToInt32(item).ToString()); request.Headers.Add(info.Name, intList); } else { request.Headers.Add(info.Name, info.GetValue(query)?.ToString()); } } // Client.DefaultRequestHeaders.Add("minPrice" , ) ; return(request); }
public async Task GetBookPerPageWithFilter_ShouldReturnPagedListBookResources(GetBooksPerPageQuery query) { //tested..works fine await AuthenticateMeBabyAsync(); var request = GetRequestCreator(query); var response = await Client.SendAsync(request); var content = await response.Content.ReadAsAsync <Response <List <BookResource> > >(); content.Item.Count().Should().NotBe(0); }