コード例 #1
0
        /// <summary>
        /// Gets the list of page region contents.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns>
        /// Page content entities list
        /// </returns>
        /// <exception cref="CmsApiException"></exception>
        public IList<PageContent> GetRegionContents(GetRegionContentsRequest request)
        {
            try
            {
                var query = Repository.AsQueryable<PageContent>();

                if (request.RegionId.HasValue)
                {
                    query = query
                        .Where(p => p.Page.Id == request.PageId && p.Region.Id == request.RegionId && publicStatuses.Contains(p.Content.Status));
                }
                else
                {
                    query = query
                        .Where(p => p.Page.Id == request.PageId && p.Region.RegionIdentifier == request.RegionIdentifier && publicStatuses.Contains(p.Content.Status));
                }

                query = query.ApplyFilters(request);

                if (!request.IncludeUnpublished)
                {
                    query = query.Where(b => b.Content.Status == ContentStatus.Published);
                }

                query = query
                    .Fetch(c => c.Content)
                    .Fetch(c => c.Region)
                    .FetchMany(c => c.Options);

                if (!request.IncludeNotActive)
                {
                    return RemoveInactiveContents(query.ToList());
                }
                return query.ToList();
            }
            catch (Exception inner)
            {
                var message = string.Format("Failed to get page region contents by page id={0} and region id={1}.", request.PageId, request.RegionId);
                Logger.Error(message, inner);

                throw new CmsApiException(message, inner);
            }
        }
コード例 #2
0
        /// <summary>
        /// Gets the list of page region contents.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns>
        /// Page content entities list
        /// </returns>
        /// <exception cref="CmsApiException"></exception>
        public IList <PageContent> GetRegionContents(GetRegionContentsRequest request)
        {
            try
            {
                var query = Repository.AsQueryable <PageContent>();

                if (request.RegionId.HasValue)
                {
                    query = query
                            .Where(p => p.Page.Id == request.PageId && p.Region.Id == request.RegionId && publicStatuses.Contains(p.Content.Status));
                }
                else
                {
                    query = query
                            .Where(p => p.Page.Id == request.PageId && p.Region.RegionIdentifier == request.RegionIdentifier && publicStatuses.Contains(p.Content.Status));
                }

                query = query.ApplyFilters(request);

                if (!request.IncludeUnpublished)
                {
                    query = query.Where(b => b.Content.Status == ContentStatus.Published);
                }

                query = query
                        .Fetch(c => c.Content)
                        .Fetch(c => c.Region)
                        .FetchMany(c => c.Options);

                if (!request.IncludeNotActive)
                {
                    return(RemoveInactiveContents(query.ToList()));
                }
                return(query.ToList());
            }
            catch (Exception inner)
            {
                var message = string.Format("Failed to get page region contents by page id={0} and region id={1}.", request.PageId, request.RegionId);
                Logger.Error(message, inner);

                throw new CmsApiException(message, inner);
            }
        }