/// <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); } }
/// <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); } }