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);
        }
Beispiel #5
0
        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));
        }