public void MoreThanPagesizeNotFirstPageUnderflowResult() { var pageOffset = 5; var query = new EntityQuery { Pagination = { PageOffset = pageOffset, PageSize = DefaultPageSize } }; var queryResult = new QueryResult <Entity> { TotalCountOfEnties = 30 }; var navigationQuerys = NavigationQuerysBuilder.Build(query, queryResult); Assert.IsTrue(navigationQuerys.Queries.Count == 5); AssertAllQuery((EntityQuery)navigationQuerys.Queries[DefaultHypermediaRelations.Queries.All]); AssertFirstQuery((EntityQuery)navigationQuerys.Queries[DefaultHypermediaRelations.Queries.First]); AssertPerviousQuery((EntityQuery)navigationQuerys.Queries[DefaultHypermediaRelations.Queries.Previous], 0); AssertNextQuery((EntityQuery)navigationQuerys.Queries[DefaultHypermediaRelations.Queries.Next], pageOffset); AssertLastQuery((EntityQuery)navigationQuerys.Queries[DefaultHypermediaRelations.Queries.Last], DefaultPageSize * ((queryResult.TotalCountOfEnties / 10) - 1)); }
public void EmptyResult() { var query = new EntityQuery { Pagination = { PageOffset = 0, PageSize = DefaultPageSize } }; var queryResult = new QueryResult <Entity> { TotalCountOfEnties = 0 }; var navigationQuerys = NavigationQuerysBuilder.Build(query, queryResult); Assert.IsTrue(navigationQuerys.Queries.Count == 0); }
public void ResultCountEqualPagesizeResult() { var query = new EntityQuery { Pagination = { PageOffset = 0, PageSize = DefaultPageSize } }; var queryResult = new QueryResult <Entity> { TotalCountOfEnties = DefaultPageSize }; var navigationQuerys = NavigationQuerysBuilder.Build(query, queryResult); Assert.IsTrue(navigationQuerys.Queries.Count == 2); AssertAllQuery((EntityQuery)navigationQuerys.Queries[DefaultHypermediaRelations.Queries.All]); AssertFirstQuery((EntityQuery)navigationQuerys.Queries[DefaultHypermediaRelations.Queries.First]); }
public void LastNotFirstPageResult() { var query = new EntityQuery { Pagination = { PageOffset = 20, PageSize = DefaultPageSize } }; var queryResult = new QueryResult <Entity> { TotalCountOfEnties = 30 }; var navigationQuerys = NavigationQuerysBuilder.Build(query, queryResult); Assert.IsTrue(navigationQuerys.Queries.Count == 4); AssertAllQuery((EntityQuery)navigationQuerys.Queries[DefaultHypermediaRelations.Queries.All]); AssertFirstQuery((EntityQuery)navigationQuerys.Queries[DefaultHypermediaRelations.Queries.First]); Assert.IsTrue(navigationQuerys.Queries[DefaultHypermediaRelations.Queries.Previous] != null); Assert.IsTrue(navigationQuerys.Queries[DefaultHypermediaRelations.Queries.Last] != null); }
public async Task <ActionResult> Query([FromQuery] CustomerQuery query) { if (query == null) { return(this.Problem(ProblemJsonBuilder.CreateBadParameters())); } var queryResult = await customerRepository.QueryAsync(query); var resultReferences = new List <HypermediaObjectReferenceBase>(); foreach (var customer in queryResult.Entities) { resultReferences.Add(new HypermediaObjectReference(new HypermediaCustomer(customer))); } var result = new HypermediaCustomerQueryResult(resultReferences, queryResult.TotalCountOfEnties, query); var navigationQuerys = NavigationQuerysBuilder.Build(query, queryResult); result.AddNavigationQueries(navigationQuerys); return(Ok(result)); }