public void AsFlattenedEnumerable_AllowsEnumeratingAllPagesAsSingleEnumeration()
        {
            var pages = new Collection<IPagedCollection<string>>();
            IPagedCollection<string> pageZero = new PagedCollection<string> { MaxItems = 8 };
            pageZero.Add("zero");
            pageZero.Add("one");
            pageZero.Add("two");

            pages.Add(pageZero);
            IPagedCollection<string> pageOne = new PagedCollection<string> { MaxItems = 8 };
            pageOne.Add("three");
            pageOne.Add("four");
            pageOne.Add("five");
            pages.Add(pageOne);

            IPagedCollection<string> pageTwo = new PagedCollection<string> { MaxItems = 8 };
            pageTwo.Add("six");
            pageTwo.Add("seven");
            pages.Add(pageTwo);

            var book = new CollectionBook<string>((pageIndex, pageSize) => pages[pageIndex], 3);

            // act
            string concatenation = String.Join("", book.AsFlattenedEnumerable().ToArray());

            // assert
            Assert.AreEqual("zeroonetwothreefourfivesixseven", concatenation);
        }
        public void CollectionBook_WithThreePages_IteratesCorrectly()
        {
            var pages = new Collection <IPagedCollection <string> >();
            IPagedCollection <string> pageZero = new PagedCollection <string> {
                MaxItems = 8
            };

            pageZero.Add("zero");
            pageZero.Add("one");
            pageZero.Add("two");
            pages.Add(pageZero);

            IPagedCollection <string> pageOne = new PagedCollection <string> {
                MaxItems = 8
            };

            pageOne.Add("three");
            pageOne.Add("four");
            pageOne.Add("five");
            pages.Add(pageOne);

            IPagedCollection <string> pageTwo = new PagedCollection <string> {
                MaxItems = 8
            };

            pageTwo.Add("six");
            pageTwo.Add("seven");
            pages.Add(pageTwo);

            var book = new CollectionBook <string>((pageIndex, pageSize) => pages[pageIndex], 3);

            string concatenation    = string.Empty;
            int    currentPageIndex = 0;

            // act
            foreach (var page in book)
            {
                concatenation += currentPageIndex;
                foreach (string item in page)
                {
                    concatenation += item;
                }
                currentPageIndex++;
            }

            // assert
            Assert.AreEqual("0zeroonetwo1threefourfive2sixseven", concatenation);
        }
示例#3
0
        public void CanIteratePagedCollectionsInABook()
        {
            Collection<IPagedCollection<string>> pages = new Collection<IPagedCollection<string>>();
            IPagedCollection<string> pageZero = new PagedCollection<string>();
            pageZero.MaxItems = 8;
            pageZero.Add("zero");
            pageZero.Add("one");
            pageZero.Add("two");

            pages.Add(pageZero);
            IPagedCollection<string> pageOne = new PagedCollection<string>();
            pageOne.MaxItems = 8;
            pageOne.Add("three");
            pageOne.Add("four");
            pageOne.Add("five");
            pages.Add(pageOne);

            IPagedCollection<string> pageTwo = new PagedCollection<string>();
            pageTwo.MaxItems = 8;
            pageTwo.Add("six");
            pageTwo.Add("seven");
            pages.Add(pageTwo);

            CollectionBook<string> book = new CollectionBook<string>(
                delegate(int pageIndex, int pageSize)
                {
                    return pages[pageIndex];
                }, 3);

            string concatenation = string.Empty;
            int currentPageIndex = 0;
            foreach(IPagedCollection<string> page in book)
            {
                concatenation += currentPageIndex;
                foreach(string item in page)
                {
                    concatenation += item;
                }
                currentPageIndex++;
            }
            Assert.AreEqual("0zeroonetwo1threefourfive2sixseven", concatenation, "We iterated correctly.");
        }
示例#4
0
 /// <summary>
 /// Gets a pageable collection of log entries.
 /// </summary>
 /// <param name="pageIndex">Index of the page.</param>
 /// <param name="pageSize">Size of the page.</param>
 /// <returns></returns>
 public override IPagedCollection<LogEntry> GetPagedLogEntries(int pageIndex, int pageSize)
 {
     IDataReader reader = DbProvider.Instance().GetPagedLogEntries(pageIndex, pageSize);
     IPagedCollection<LogEntry> entries = new PagedCollection<LogEntry>();
     while(reader.Read())
     {
         entries.Add(DataHelper.LoadLogEntry(reader));
     }
     reader.NextResult();
     entries.MaxItems = DataHelper.GetMaxItems(reader);
     return entries;
 }
        public void CollectionBook_WithThreePages_IteratesCorrectly()
        {
            var pages = new Collection<IPagedCollection<string>>();
            IPagedCollection<string> pageZero = new PagedCollection<string> {MaxItems = 8};
            pageZero.Add("zero");
            pageZero.Add("one");
            pageZero.Add("two");
            pages.Add(pageZero);

            IPagedCollection<string> pageOne = new PagedCollection<string> {MaxItems = 8};
            pageOne.Add("three");
            pageOne.Add("four");
            pageOne.Add("five");
            pages.Add(pageOne);

            IPagedCollection<string> pageTwo = new PagedCollection<string> {MaxItems = 8};
            pageTwo.Add("six");
            pageTwo.Add("seven");
            pages.Add(pageTwo);

            var book = new CollectionBook<string>((pageIndex, pageSize) => pages[pageIndex], 3);

            string concatenation = string.Empty;
            int currentPageIndex = 0;

            // act
            foreach(var page in book)
            {
                concatenation += currentPageIndex;
                foreach(string item in page)
                {
                    concatenation += item;
                }
                currentPageIndex++;
            }

            // assert
            Assert.AreEqual("0zeroonetwo1threefourfive2sixseven", concatenation);
        }
        public void AsFlattenedEnumerable_AllowsEnumeratingAllPagesAsSingleEnumeration()
        {
            var pages = new Collection <IPagedCollection <string> >();
            IPagedCollection <string> pageZero = new PagedCollection <string> {
                MaxItems = 8
            };

            pageZero.Add("zero");
            pageZero.Add("one");
            pageZero.Add("two");

            pages.Add(pageZero);
            IPagedCollection <string> pageOne = new PagedCollection <string> {
                MaxItems = 8
            };

            pageOne.Add("three");
            pageOne.Add("four");
            pageOne.Add("five");
            pages.Add(pageOne);

            IPagedCollection <string> pageTwo = new PagedCollection <string> {
                MaxItems = 8
            };

            pageTwo.Add("six");
            pageTwo.Add("seven");
            pages.Add(pageTwo);

            var book = new CollectionBook <string>((pageIndex, pageSize) => pages[pageIndex], 3);

            // act
            string concatenation = String.Join("", book.AsFlattenedEnumerable().ToArray());

            // assert
            Assert.AreEqual("zeroonetwothreefourfivesixseven", concatenation);
        }
示例#7
0
        private PagedCollection <EntryStatsView> BuildFakeCollectionNotPublished()
        {
            var coll = new PagedCollection <EntryStatsView>();

            coll.Add(new EntryStatsView()
            {
                Title     = "My Post Title",
                EntryName = "this-is-the-title",
                IsActive  = false,
                Blog      = new Blog()
                {
                    Title = "My Blog"
                }
            });
            return(coll);
        }
示例#8
0
 private static IPagedCollection<Referrer> LoadPagedReferrersCollection(IDataReader reader)
 {
     try
     {
         IPagedCollection<Referrer> prc = new PagedCollection<Referrer>();
         while (reader.Read())
         {
             prc.Add(DataHelper.LoadReferrer(reader));
         }
         reader.NextResult();
         prc.MaxItems = DataHelper.GetMaxItems(reader);
         return prc;
     }
     finally
     {
         reader.Close();
     }
 }
示例#9
0
        public void WritesProperBlogMl()
        {
            //Set up ids
            string blogId = "8675309";
            string catOneId = "1";
            string catTwoId = "2";
            string postOneId = "100";
            string postTwoId = "200";
            string postThreeId = "300";
            string commentOneId = "91";
            string trackBackOneId = "92";

            int pageSize = 2;

            #region Create a full instance of a blog in an object hierarchy
            DateTime dateCreated = DateTime.Now;
            BlogMLBlog blog = ObjectHydrator.CreateBlogInstance("the title", "the subtitle", "http://blog.example.com/", "phil", "*****@*****.**", dateCreated);
            BlogMLContext context = new BlogMLContext(blogId, false);
            IList<BlogMLCategory> categories = new Collection<BlogMLCategory>();
            categories.Add(ObjectHydrator.CreateCategoryInstance(catOneId, "category1", "Category 1 is the first", true, null, dateCreated, dateCreated));
            categories.Add(ObjectHydrator.CreateCategoryInstance(catTwoId, "category2", "Category 2 is the second", true, null, dateCreated, dateCreated));

            IPagedCollection<BlogMLPost> firstPage = new PagedCollection<BlogMLPost>();
            firstPage.Add(ObjectHydrator.CreatePostInstance(postOneId, "post title 1", "http://blog.example.com/post100/", true, "Nothing important 1", dateCreated, dateCreated));
            firstPage[0].Categories.Add(catOneId);
            firstPage[0].Categories.Add(catTwoId);
            firstPage[0].Comments.Add(ObjectHydrator.CreateCommentInstance(commentOneId, "re: post", "http://blog.example.com/post100/#91", "You rock!", "*****@*****.**", "haacked", true, dateCreated, dateCreated));
            firstPage[0].Trackbacks.Add(ObjectHydrator.CreateTrackBackInstance(trackBackOneId, "re: title", "http://another.example.com/", true, dateCreated, dateCreated));
            firstPage.Add(ObjectHydrator.CreatePostInstance(postTwoId, "post title 2", "http://blog.example.com/post200/", true, "Nothing important 2", dateCreated, dateCreated));
            firstPage.MaxItems = 3;

            IPagedCollection<BlogMLPost> secondPage = new PagedCollection<BlogMLPost>();
            secondPage.Add(ObjectHydrator.CreatePostInstance(postThreeId, "post title 3", "http://blog.example.com/post300/", true, "Nothing important 3", dateCreated, dateCreated));
            secondPage.MaxItems = 3;
            #endregion

            //Now setup expectations.
            MockRepository mocks = new MockRepository();
            IBlogMLProvider provider = (IBlogMLProvider)mocks.CreateMock(typeof(IBlogMLProvider));
            Expect.Call(provider.GetBlogMlContext()).Return(context);
            Expect.Call(provider.IdConversion).Return(IdConversionStrategy.Empty);
            Expect.Call(provider.GetBlog(blogId)).Return(blog);
            Expect.Call(provider.GetAllCategories(blogId)).Return(categories);
            Expect.Call(provider.PageSize).Return(pageSize);
            Expect.Call(provider.GetBlogPosts(blogId, 0, pageSize)).Return(firstPage);
            Expect.Call(provider.GetBlogPosts(blogId, 1, pageSize)).Return(secondPage);
            mocks.ReplayAll();

            //TODO: simplify when BlogML bug is fixed.
            StringBuilder builder = new StringBuilder();
            StringWriter stringWriter = new StringWriter(builder);
            XmlTextWriter xmlWriter = new XmlTextWriter(stringWriter);

            BlogMLWriter writer = BlogMLWriter.Create(provider);
            writer.Write(xmlWriter);

            mocks.VerifyAll();

            //Verify blog.
            XmlDocument doc = new XmlDocument();
            doc.LoadXml(builder.ToString());
            XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable);
            nsmgr.AddNamespace("bml", "http://www.blogml.com/2006/09/BlogML");

            XmlNode blogNode = doc.SelectSingleNode("bml:blog", nsmgr);
            Assert.AreEqual("http://blog.example.com/", blogNode.Attributes["root-url"].InnerText, "The root url doesn't match.");

            XmlNodeList categoryNodes = doc.SelectNodes("bml:blog/bml:categories/bml:category", nsmgr);
            Assert.AreEqual(2, categoryNodes.Count, "Expected 2 categories");

            XmlNodeList postNodes = doc.SelectNodes("bml:blog/bml:posts/bml:post", nsmgr);
            Assert.AreEqual(3, postNodes.Count, "Expected 3 posts");

            XmlNodeList firstPostCategoryNodes = doc.SelectNodes("bml:blog/bml:posts/bml:post[@id='" + postOneId + "']/bml:categories/bml:category", nsmgr);
            Assert.AreEqual(2, firstPostCategoryNodes.Count, "Expected first post to have 2 categories");

            XmlNodeList firstPostCommentsNodes = doc.SelectNodes("bml:blog/bml:posts/bml:post[@id='" + postOneId + "']/bml:comments/bml:comment", nsmgr);
            Assert.AreEqual(1, firstPostCommentsNodes.Count, "Expected first post to have 1 comment");

            XmlNodeList firstPostTrackbackNodes = doc.SelectNodes("bml:blog/bml:posts/bml:post[@id='" + postOneId + "']/bml:trackbacks/bml:trackback", nsmgr);
            Assert.AreEqual(1, firstPostTrackbackNodes.Count, "Expected first post to have 1 trackback");
        }
示例#10
0
        public void WritesProperBlogMlWithIdConversion(string firstPostConvertedId, string firstCategoryConvertedId, string firstCommentConvertedId, string firstTrackbackConvertedId, string secondPostConvertedId, string conversionType)
        {
            //Set up ids
            string blogId = "blah-abc-000";
            string catOneId = "first-cat-id";
            string catTwoId = "blah-acd";
            string firstPostId = "first-post-id";
            string secondPostId = "second-post-id";
            string thirdPostId = "blah-blah";
            string commentOneId = "first-comment-id";
            string trackBackOneId = "first-trackback-id";

            IdConversionStrategy conversion = IdConversionStrategy.Empty;
            switch(conversionType)
            {
                case "int":
                    conversion = new IntConversionStrategy();
                    break;

                case "subtext":
                    conversion = new SubtextConversionStrategy();
                    break;
            }

            int pageSize = 2;

            #region Create a full instance of a blog in an object hierarchy
            DateTime dateCreated = DateTime.Now;
            BlogMLBlog blog = ObjectHydrator.CreateBlogInstance("the title", "the subtitle", "http://blog.example.com/", "phil", "*****@*****.**", dateCreated);
            BlogMLContext context = new BlogMLContext(blogId, false);
            IList<BlogMLCategory> categories = new Collection<BlogMLCategory>();
            categories.Add(ObjectHydrator.CreateCategoryInstance(catOneId, "category1", "Category 1 is the first", true, null, dateCreated, dateCreated));
            categories.Add(ObjectHydrator.CreateCategoryInstance(catTwoId, "category2", "Category 2 is the second", true, null, dateCreated, dateCreated));

            IPagedCollection<BlogMLPost> firstPage = new PagedCollection<BlogMLPost>();
            firstPage.Add(ObjectHydrator.CreatePostInstance(firstPostId, "post title 1", "http://blog.example.com/post100/", true, "Nothing important 1", dateCreated, dateCreated));
            firstPage[0].Categories.Add(catOneId);
            firstPage[0].Categories.Add(catTwoId);
            firstPage[0].Comments.Add(ObjectHydrator.CreateCommentInstance(commentOneId, "re: post", "http://blog.example.com/post100/#91", "You rock!", "*****@*****.**", "haacked", true, dateCreated, dateCreated));
            firstPage[0].Trackbacks.Add(ObjectHydrator.CreateTrackBackInstance(trackBackOneId, "re: title", "http://another.example.com/", true, dateCreated, dateCreated));
            firstPage.Add(ObjectHydrator.CreatePostInstance(secondPostId, "post title 2", "http://blog.example.com/post200/", true, "Nothing important 2", dateCreated, dateCreated));
            firstPage.MaxItems = 3;

            IPagedCollection<BlogMLPost> secondPage = new PagedCollection<BlogMLPost>();
            secondPage.Add(ObjectHydrator.CreatePostInstance(thirdPostId, "post title 3", "http://blog.example.com/post300/", true, "Nothing important 3", dateCreated, dateCreated));
            secondPage.MaxItems = 3;
            #endregion

            //Now setup expectations.
            MockRepository mocks = new MockRepository();
            IBlogMLProvider provider = (IBlogMLProvider)mocks.CreateMock(typeof(IBlogMLProvider));
            Expect.Call(provider.GetBlogMlContext()).Return(context);
            Expect.Call(provider.IdConversion).Return(conversion);
            Expect.Call(provider.GetBlog(blogId)).Return(blog);
            Expect.Call(provider.GetAllCategories(blogId)).Return(categories);
            Expect.Call(provider.PageSize).Return(pageSize);
            Expect.Call(provider.GetBlogPosts(blogId, 0, pageSize)).Return(firstPage);
            Expect.Call(provider.GetBlogPosts(blogId, 1, pageSize)).Return(secondPage);
            mocks.ReplayAll();

            //TODO: simplify when BlogML bug is fixed.
            StringBuilder builder = new StringBuilder();
            StringWriter stringWriter = new StringWriter(builder);
            XmlTextWriter xmlWriter = new XmlTextWriter(stringWriter);

            BlogMLWriter writer = BlogMLWriter.Create(provider);
            writer.Write(xmlWriter);

            mocks.VerifyAll();

            //Verify blog.
            XmlDocument doc = new XmlDocument();
            doc.LoadXml(builder.ToString());
            XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable);
            nsmgr.AddNamespace("bml", "http://www.blogml.com/2006/09/BlogML");

            XmlNode firstPostNode = doc.SelectSingleNode("bml:blog/bml:posts/bml:post[@id='" + firstPostConvertedId + "']", nsmgr);
            Assert.IsNotNull(firstPostNode, "Could not find post node with expected converted id" + firstPostConvertedId);

            XmlNode secondPostNode = doc.SelectSingleNode("bml:blog/bml:posts/bml:post[@id='" + secondPostConvertedId + "']", nsmgr);
            Assert.IsNotNull(secondPostNode, "Could not find post node with expected converted id" + secondPostConvertedId);

            XmlNode firstCategoryNode = doc.SelectSingleNode("bml:blog/bml:categories/bml:category[@id='" + firstCategoryConvertedId + "']", nsmgr);
            Assert.IsNotNull(firstCategoryNode, "Could not find first category node with id " + firstCategoryConvertedId);

            XmlNode firstPostFirstCategoryNode = doc.SelectSingleNode("bml:blog/bml:posts/bml:post[@id='" + firstPostConvertedId + "']/bml:categories/bml:category[@ref='" + firstCategoryConvertedId + "']", nsmgr);
            Assert.IsNotNull(firstPostFirstCategoryNode, "Could not find first post category reference to first category.");

            XmlNode firstPostCommentsNode = doc.SelectSingleNode("bml:blog/bml:posts/bml:post[@id='" + firstPostConvertedId + "']/bml:comments/bml:comment[@id='" + firstCommentConvertedId + "']", nsmgr);
            Assert.IsNotNull(firstPostCommentsNode, "Could not find first comment of the first post. Expected comment to have id: " + firstCommentConvertedId);

            XmlNode firstPostTrackbackNode = doc.SelectSingleNode("bml:blog/bml:posts/bml:post[@id='" + firstPostConvertedId + "']/bml:trackbacks/bml:trackback[@id='" + firstTrackbackConvertedId + "']", nsmgr);
            Assert.IsNotNull(firstPostTrackbackNode, "Could not find trackback with id " + firstTrackbackConvertedId);
        }
 private PagedCollection<EntryStatsView> BuildFakeCollectionNotPublished()
 {
     var coll = new PagedCollection<EntryStatsView>();
     coll.Add(new EntryStatsView()
     {
         Title = "My Post Title",
         EntryName = "this-is-the-title",
         IsActive = false,
         Blog = new Blog() { Title = "My Blog" }
     });
     return coll;
 }
示例#12
0
        public override PagedCollection<BlogAlias> GetPagedBlogDomainAlias(BlogInfo blog, int pageIndex, int pageSize)
        {
            IDataReader reader = DbProvider.Instance().GetPagedBlogDomainAliases(blog.Id, pageIndex, pageSize);
            try
            {
                PagedCollection<BlogAlias> pec = new PagedCollection<BlogAlias>();
                while (reader.Read())
                {
                    pec.Add(DataHelper.LoadBlogAlias(reader));
                }
                reader.NextResult();
                pec.MaxItems = DataHelper.GetMaxItems(reader);
                return pec;

            }
            finally
            {
                reader.Close();
            }
        }
示例#13
0
 /// <summary>
 /// Gets a pageable <see cref="IList"/> of <see cref="BlogInfo"/> instances.
 /// </summary>
 /// <param name="host">The host filter. Set to null to return all blogs.</param>
 /// <param name="pageIndex">Page index.</param>
 /// <param name="pageSize">Size of the page.</param>
 /// <returns></returns>
 /// <param name="flags"></param>
 public override PagedCollection<BlogInfo> GetPagedBlogs(string host, int pageIndex, int pageSize, ConfigurationFlags flags)
 {
     using(IDataReader reader = DbProvider.Instance().GetPagedBlogs(host, pageIndex, pageSize, flags))
     {
         PagedCollection<BlogInfo> pec = new PagedCollection<BlogInfo>();
         while(reader.Read())
         {
             pec.Add(DataHelper.LoadConfigData(reader));
         }
         reader.NextResult();
         pec.MaxItems = DataHelper.GetMaxItems(reader);
         return pec;
     }
 }
示例#14
0
        /// <summary>
        /// Returns a page of fully hydrated blog posts. The blog posts allow the 
        /// user of this method to navigate blog post categories, comments, etc...
        /// </summary>
        /// <param name="blogId"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        public override IPagedCollection<BlogMLPost> GetBlogPosts(string blogId, int pageIndex, int pageSize)
        {
            IPagedCollection<BlogMLPost> bmlPosts = new PagedCollection<BlogMLPost>();
            using (IDataReader reader = GetPostsAndArticlesReader(blogId, pageIndex, pageSize))
            {
                IBlogMLContext bmlContext = this.GetBlogMlContext();
                while (reader.Read())
                {
                    BlogMLPost bmlPost = ObjectHydrator.LoadPostFromDataReader(reader);
                    bmlPost.Attachments.AddRange(GetPostAttachments(bmlPost, bmlContext));
                    bmlPosts.Add(bmlPost);
                }

                if (reader.NextResult() && reader.Read())
                    bmlPosts.MaxItems = DataHelper.ReadInt32(reader, "TotalRecords");

                if (bmlPosts.Count > 0 && reader.NextResult())
                    PopulateCategories(bmlPosts, reader);

                if (bmlPosts.Count > 0 && reader.NextResult())
                    PopulateComments(bmlPosts, reader);

                if (bmlPosts.Count > 0 && reader.NextResult())
                    PopulateTrackbacks(bmlPosts, reader);

                if (bmlPosts.Count > 0 && reader.NextResult())
                    PopulateAuthors(bmlPosts, reader);

            }
            return bmlPosts;
        }
示例#15
0
        public override IPagedCollection<MetaTag> GetMetaTagsForEntry(Entry entry, int pageIndex, int pageSize)
        {
            using (IDataReader reader = DbProvider.Instance().GetMetaTagsForEntry(entry, pageIndex, pageSize))
            {
                IPagedCollection<MetaTag> tags = new PagedCollection<MetaTag>();

                while (reader.Read())
                {
                    tags.Add(DataHelper.LoadMetaTag(reader));
                }
                reader.NextResult();
                tags.MaxItems = DataHelper.GetMaxItems(reader);
                return tags;
            }
        }
示例#16
0
 public override IPagedCollection<ViewStat> GetPagedViewStats(int pageIndex, int pageSize, DateTime beginDate, DateTime endDate)
 {
     IDataReader reader = DbProvider.Instance().GetPagedViewStats(pageIndex,pageSize,beginDate,endDate);
     try
     {
         IPagedCollection<ViewStat> vs = new PagedCollection<ViewStat>();
         while(reader.Read())
         {
             vs.Add(DataHelper.LoadViewStat(reader));
         }
         reader.NextResult();
         vs.MaxItems = DataHelper.GetMaxItems(reader);
         return vs;
     }
     finally
     {
         reader.Close();
     }
 }
示例#17
0
 public override IPagedCollection<Link> GetPagedLinks(int categoryTypeID, int pageIndex, int pageSize, bool sortDescending)
 {
     IDataReader reader = DbProvider.Instance().GetPagedLinks(categoryTypeID, pageIndex, pageSize, sortDescending);
     try
     {
         IPagedCollection<Link> plc = new PagedCollection<Link>();
         while(reader.Read())
         {
             plc.Add(DataHelper.LoadLink(reader));
         }
         reader.NextResult();
         plc.MaxItems = DataHelper.GetMaxItems(reader);
         return plc;
     }
     finally
     {
         reader.Close();
     }
 }
示例#18
0
        public override IPagedCollection<KeyWord> GetPagedKeyWords(int pageIndex, int pageSize)
        {
            IDataReader reader = DbProvider.Instance().GetPagedKeyWords(pageIndex, pageSize);
            try
            {
                IPagedCollection<KeyWord> pkwc = new PagedCollection<KeyWord>();
                while(reader.Read())
                {
                    pkwc.Add(DataHelper.LoadKeyWord(reader));
                }
                reader.NextResult();
                pkwc.MaxItems = DataHelper.GetMaxItems(reader);

                return pkwc;
            }
            finally
            {
                reader.Close();
            }
        }
示例#19
0
 /// <summary>
 /// Gets the paged feedback.
 /// </summary>
 /// <param name="pageIndex">Index of the page.</param>
 /// <param name="pageSize">Size of the page.</param>
 /// <param name="status">A flag for the status types to return.</param>
 /// <param name="excludeStatusMask">A flag for the statuses to exclude.</param>
 /// <param name="type">The type of feedback to return.</param>
 /// <returns></returns>
 public override IPagedCollection<FeedbackItem> GetPagedFeedback(int pageIndex, int pageSize, FeedbackStatusFlag status, FeedbackStatusFlag excludeStatusMask, FeedbackType type)
 {
     IDataReader reader = DbProvider.Instance().GetPagedFeedback(pageIndex, pageSize, status, excludeStatusMask, type);
     IPagedCollection<FeedbackItem> pec = new PagedCollection<FeedbackItem>();
     while(reader.Read())
     {
         pec.Add(DataHelper.LoadFeedbackItem(reader));
     }
     reader.NextResult();
     pec.MaxItems = DataHelper.GetMaxItems(reader);
     return pec;
 }
示例#20
0
        /// <summary>
        /// Returns a pageable collection of entries ordered by the id descending.
        /// This is used in the admin section.
        /// </summary>
        /// <param name="postType">Type of the post.</param>
        /// <param name="categoryID">The category ID.</param>
        /// <param name="pageIndex">Index of the page.</param>
        /// <param name="pageSize">Size of the page.</param>
        /// <returns></returns>
        public override IPagedCollection<Entry> GetPagedEntries(PostType postType, int categoryID, int pageIndex, int pageSize)
        {
            IDataReader reader = DbProvider.Instance().GetPagedEntries(postType, categoryID, pageIndex, pageSize);
            try
            {
                PagedCollection<Entry> pec = new PagedCollection<Entry>();
                while(reader.Read())
                {
                    pec.Add(DataHelper.LoadEntryStatsView(reader));
                }
                reader.NextResult();
                pec.MaxItems = DataHelper.GetMaxItems(reader);
                return pec;

            }
            finally
            {
                reader.Close();
            }
        }