コード例 #1
0
        public IPageOfItems <ScheduleItem> GetScheduleItems(Event evnt, ScheduleItemFilterCriteria scheduleItemFilterCriteria)
        {
            int pageIndex = 0;
            int pageSize  = 50;

            if (context.RequestDataFormat == RequestDataFormat.Web)
            {
                pageIndex = scheduleItemFilterCriteria.PageIndex;
                pageSize  = scheduleItemFilterCriteria.PageSize;
            }

            IPageOfItems <ScheduleItem> scheduleItems =
                cache.GetItems <IPageOfItems <ScheduleItem>, ScheduleItem>(
                    string.Format("GetScheduleItems-FilterCriteria:{0}", scheduleItemFilterCriteria),
                    new CachePartition(pageIndex, pageSize),
                    () => repository.GetScheduleItems(new PagingInfo(pageIndex, pageSize), evnt, context.User.IsAuthenticated && context.User.Cast <User>() != null ? context.User.Cast <User>().ID : Guid.Empty, scheduleItemFilterCriteria).FillTags(tagService),
                    si => si.GetDependencies()
                    );

            if (context.RequestDataFormat.IsFeed())
            {
                scheduleItems = scheduleItems.Since(si => si.Modified, context.HttpContext.Request.IfModifiedSince());
            }

            return(scheduleItems);
        }
コード例 #2
0
        public IPageOfItems <Exhibitor> GetExhibitors(EventAddress eventAddress, ExhibitorFilterCriteria exhibitorFilterCriteria)
        {
            var pageIndex = 0;
            var pageSize  = 50;

            if (context.RequestDataFormat == RequestDataFormat.Web)
            {
                pageIndex = exhibitorFilterCriteria.PageIndex;
                pageSize  = exhibitorFilterCriteria.PageSize;
            }

            var varyBy = string.Join(",", exhibitorFilterCriteria.ParticipantLevels.ToArray()).Trim();

            if (!string.IsNullOrEmpty(exhibitorFilterCriteria.Term))
            {
                varyBy = exhibitorFilterCriteria.Term.Trim();
            }

            return
                (cache.GetItems <IPageOfItems <Exhibitor>, Exhibitor>(
                     string.Format("GetExhibitors-Event:{0}-{1}", eventAddress != null
                                                                     ? eventAddress.EventName ?? ""
                                                                     : "", varyBy),
                     new CachePartition(pageIndex, pageSize),
                     () => repository.GetExhibitors(eventAddress, exhibitorFilterCriteria).GetPage(pageIndex, pageSize),
                     e => e.GetDependencies()
                     ));
        }
コード例 #3
0
 public IPageOfItems <PostComment> GetComments(int pageIndex, int pageSize, bool includePending, bool sortDescending)
 {
     return(cache.GetItems <IPageOfItems <PostComment>, PostComment>(
                string.Format("GetComments-IncludePending:{0},SortDescending{1}", includePending, sortDescending),
                new CachePartition(pageIndex, pageSize),
                () => processDisplayOfComments(() => getComments(blogsCommentRepository.GetComments(context.Site.ID, includePending, sortDescending).GetPage(pageIndex, pageSize))),
                c => getCommentDependencies(c, new SiteSmall(context.Site.ID))
                ));
 }
コード例 #4
0
        public IPageOfItems <ScheduleItem> GetScheduleItems(EventAddress eventAddress, ScheduleItemFilterCriteria scheduleItemFilterCriteria)
        {
            string dataFormat = context.RequestContext.RouteData.Values["dataFormat"] as String;
            int    pageIndex  = scheduleItemFilterCriteria.PageIndex;
            int    pageSize   = scheduleItemFilterCriteria.PageSize;

            if (dataFormat != null)
            {
                dataFormat = dataFormat.ToLower();

                if (dataFormat == "rss" || dataFormat == "atom" || dataFormat == "sign" || dataFormat == "ics")
                {
                    pageIndex = 0;
                    pageSize  = 1000;
                }
            }


            var cacheKey          = string.Format("GetScheduleItems-FilterCriteria:{0}", scheduleItemFilterCriteria);
            var authenticatedUser = context.User.IsAuthenticated && context.User.Cast <UserAuthenticated>() != null;
            var userId            = Guid.Empty;

            if (authenticatedUser)
            {
                userId    = context.User.Cast <UserAuthenticated>().ID;
                cacheKey += String.Concat("-UserID:", userId);
            }

            IPageOfItems <ScheduleItem> scheduleItems =
                cache.GetItems <IPageOfItems <ScheduleItem>, ScheduleItem>(
                    cacheKey,
                    new CachePartition(pageIndex, pageSize),
                    () => repository.GetScheduleItems(eventAddress, userId, scheduleItemFilterCriteria).GetPage(pageIndex, pageSize).FillTags(tagService),
                    si => si.GetDependencies()
                    );

            SetScheduleItemUsers(scheduleItems);

            return(scheduleItems);
        }
コード例 #5
0
        public IPageOfItems<ISearchResult> GetSearchResults(PagingInfo pagingInfo, SearchCriteria criteria)
        {
            IPageOfItems<ISearchResult> searchResults =
                cache.GetItems<IPageOfItems<ISearchResult>, ISearchResult>(
                    string.Format("GetPosts-SearchTerm:{0}", criteria.Term),
                    pagingInfo.ToCachePartition(),
                    () => repository.GetSearchResults(pagingInfo, criteria),
                    null
                    );

            //if (context.RequestDataFormat.IsFeed())
            //    searchResults = searchResults.Since(context.RequestContext.HttpContext.Request.IfModifiedSince());

            pluginEngine.ExecuteAll("UserSearched", new { context, criteria });

            return searchResults;
        }
コード例 #6
0
        public IPageOfItems <ISearchResult> GetSearchResults(int pageIndex, int pageSize, SearchCriteria criteria)
        {
            IPageOfItems <ISearchResult> searchResults =
                cache.GetItems <IPageOfItems <ISearchResult>, ISearchResult>(
                    string.Format("GetPosts-SearchTerm:{0}", criteria.Term),
                    new CachePartition(pageIndex, pageSize),
                    () => repository.GetSearchResults(context.Site.ID, criteria).GetPage(pageIndex, pageSize),
                    null
                    );

            //if (context.RequestDataFormat.IsFeed())
            //    searchResults = searchResults.Since(context.RequestContext.HttpContext.Request.IfModifiedSince());

            pluginEngine.ExecuteAll("UserSearched", new { context, criteria });

            return(searchResults);
        }
コード例 #7
0
ファイル: PostService.cs プロジェクト: ljvblfz/MicrosoftOxite
        public IPageOfItems <Post> GetPosts(PagingInfo pagingInfo)
        {
            bool includeDrafts        = context.RequestDataFormat == RequestDataFormat.Web && context.User.IsAuthenticated && context.User.IsInRole("Admin");
            IPageOfItems <Post> posts =
                cache.GetItems <IPageOfItems <Post>, Post>(
                    string.Format("GetPosts-IncludeDrafts:{0}", includeDrafts),
                    pagingInfo.ToCachePartition(),
                    () => pluginEngine.ProcessDisplayOfPosts(context, () => repository.GetPosts(pagingInfo, includeDrafts).FillTags(tagService).FillComments(commentService)),
                    p => p.GetDependencies()
                    );

            if (!includeDrafts)
            {
                posts = posts.Since(p => p.Published.Value, context.HttpContext.Request.IfModifiedSince());
            }

            return(posts);
        }