示例#1
1
        public PagedResult<Party> GetParties(int page, int resultsPerPage)
        {
            PagedResult<Party> parties = new PagedResult<Party>();
            parties.PageNumber = page;
            parties.ItemsPerPage = resultsPerPage;

            string sql = @"Select VintageRabbit.Parties.* From VintageRabbit.Parties
                            Inner Join VintageRabbit.Orders On VintageRabbit.Parties.OrderGuid = VintageRabbit.Orders.Guid
                            Where VintageRabbit.Orders.Status In ('Complete', 'AwaitingShipment')
                            Order By VintageRabbit.Parties.DateCreated Desc
                            OFFSET @Offset ROWS FETCH NEXT @ResultsPerPage ROWS ONLY;
                            Select Count(*) From VintageRabbit.Parties;";

            int offset = (page - 1) * resultsPerPage;

            using (SqlConnection connection = new SqlConnection(this._connectionString))
            {
                using (var multi = connection.QueryMultiple(sql, new { Offset = offset, ResultsPerPage = resultsPerPage }))
                {
                    parties.AddRange(multi.Read<Party>());
                    parties.TotalResults = multi.Read<int>().First();
                }
            }

            return parties;
        }
    public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
    {
        JObject         jo     = JObject.Load(reader);
        PagedResult <T> result = new PagedResult <T>();

        result.PageSize   = (int)jo["PageSize"];
        result.PageIndex  = (int)jo["PageIndex"];
        result.TotalItems = (int)jo["TotalItems"];
        result.TotalPages = (int)jo["TotalPages"];
        result.AddRange(jo["Items"].ToObject <T[]>(serializer));
        return(result);
    }
示例#3
0
        public void ArticleController_GetAll_ReturnsFeedWithTwentyArticles()
        {
            PagedResult<ArticleSummary> paginatedArticleSummaries = new PagedResult<ArticleSummary>(1, 20, 21);
            List<ArticleSummary> lists = new List<ArticleSummary>()
            {
                { new ArticleSummary(){ Id=1} },
                { new ArticleSummary(){ Id=2} },
                { new ArticleSummary(){ Id=3} },
                { new ArticleSummary(){ Id=4} },
                { new ArticleSummary(){ Id=5} },
                { new ArticleSummary(){ Id=6} },
                { new ArticleSummary(){ Id=7} },
                { new ArticleSummary(){ Id=8} },
                { new ArticleSummary(){ Id=9} },
                { new ArticleSummary(){ Id=10} },
                { new ArticleSummary(){ Id=11} },
                { new ArticleSummary(){ Id=12} },
                { new ArticleSummary(){ Id=13} },
                { new ArticleSummary(){ Id=14} },
                { new ArticleSummary(){ Id=15} },
                { new ArticleSummary(){ Id=16} },
                { new ArticleSummary(){ Id=17} },
                { new ArticleSummary(){ Id=18} },
                { new ArticleSummary(){ Id=19} },
                { new ArticleSummary(){ Id=20} }

            };
            paginatedArticleSummaries.AddRange(lists);

            _articleRepository.Stub(r => r.GetAll(null,null,null,1,20)).Return(paginatedArticleSummaries);
            _staticContentLinkService.Stub(s => s.GetStaticContentLinkForSite()).Return(new List<StaticContentLink>());

            var articleFeed = _objectUnderTest.GetAll(1);

            var articleCount = articleFeed.Entries.Count();
            Assert.AreEqual(20, articleCount);
        }