public void TestGetPages(string filePath, PreviewOptions.FormatEnum?format = null, List <int?> pageNumbersToConvert = null, bool withoutAnnotations = false, int width = 0, int height = 0, bool renderComments = false, string password = null) { var fileInfo = new Model.FileInfo { FilePath = filePath, Password = password }; var options = new PreviewOptions { FileInfo = fileInfo, Format = format, Height = height, Width = width, PageNumbers = pageNumbersToConvert, RenderComments = renderComments }; var request = new GetPagesRequest(options); var result = PreviewApi.GetPages(request); Assert.NotNull(result); Assert.Greater(result.TotalCount, 0); Assert.NotNull(result.Entries); Assert.Greater(result.Entries.Count, 0); }
public static void Run() { var configuration = new Configuration(Common.MyAppSid, Common.MyAppKey); var apiInstance = new PreviewApi(configuration); try { // Set request. var request = new GetPagesRequest() { filePath = "Annotationdocs\\ten-pages.docx", password = null, pageNumber = 1, countPagesToConvert = 1, enableCaching = false, cacheStoragePath = null, withoutAnnotations = true }; var response = apiInstance.GetPages(request); Console.WriteLine("Expected response type is PageImages: " + response.ToString()); } catch (Exception e) { Console.WriteLine("Exception while calling Annotation PreviewApi: " + e.Message); } }
/// <summary> /// Gets the list of page property entities. /// </summary> /// <param name="request">The request.</param> /// <returns> /// The list of property entities /// </returns> /// <exception cref="CmsApiException"></exception> public DataListResponse <PageProperties> GetPages(GetPagesRequest request) { try { var query = Repository .AsQueryable <PageProperties>(); if (!request.IncludeUnpublished) { query = query.Where(b => b.Status == PageStatus.Published); } if (!request.IncludePrivate) { query = query.Where(b => b.IsPublic); } var result = query.ApplyFiltersWithChildren(request); query = result.Item1; var totalCount = result.Item2; query = query.AddOrder(request); query = FetchPageChilds(query, request.LoadChilds); return(query.ToDataListResponse(totalCount)); } catch (Exception inner) { const string message = "Failed to get pages list."; Logger.Error(message, inner); throw new CmsApiException(message, inner); } }
public async Task <IActionResult> GetPages([FromQuery] PagesSearchRequest pagesRequest, CancellationToken cancellationToken) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var startDate = pagesRequest.StartDate; var endDate = pagesRequest.EndDate; if (startDate.HasValue && endDate.HasValue && startDate > endDate) { ModelState.AddModelError(nameof(pagesRequest.StartDate), "Start date cannot be greater than end date"); return(BadRequest(ModelState)); } var getPagesRequest = new GetPagesRequest( pagesRequest.SortOrder, pagesRequest.StartDate, pagesRequest.EndDate, pagesRequest.PageNumber, pagesRequest.PageSize); var pagesSearchResult = await _mediator.Send(getPagesRequest, cancellationToken); var pagesListResponse = new PagesSearchResultDto() { PageItems = _mapper.Map <IEnumerable <PageItemDto> >(pagesSearchResult.FoundPages), TotalPagesCount = pagesSearchResult.TotalPagesCount }; return(Ok(pagesListResponse)); }
/// <summary> /// Gets the list of page property entities. /// </summary> /// <param name="request">The request.</param> /// <returns> /// The list of property entities /// </returns> /// <exception cref="CmsApiException"></exception> public DataListResponse<PageProperties> GetPages(GetPagesRequest request) { try { var query = Repository .AsQueryable<PageProperties>(); if (!request.IncludeUnpublished) { query = query.Where(b => b.Status == PageStatus.Published); } if (!request.IncludePrivate) { query = query.Where(b => b.IsPublic); } var result = query.ApplyFiltersWithChildren(request); query = result.Item1; var totalCount = result.Item2; query = query.AddOrder(request); query = FetchPageChilds(query, request.LoadChilds); return query.ToDataListResponse(totalCount); } catch (Exception inner) { const string message = "Failed to get pages list."; Logger.Error(message, inner); throw new CmsApiException(message, inner); } }
/// <summary> /// Generates image representations from documents pages /// </summary> /// <param name="request">Request. <see cref="GetPagesRequest" /></param> /// <returns><see cref="PageImages"/></returns> public PageImages GetPages(GetPagesRequest request) { // verify the required parameter 'options' is set if (request.options == null) { throw new ApiException(400, "Missing required parameter 'options' when calling GetPages"); } // create path and map variables var resourcePath = this.configuration.GetServerUrl() + "/annotation/preview/create"; resourcePath = Regex .Replace(resourcePath, "\\*", string.Empty) .Replace("&", "&") .Replace("/?", "?"); var postBody = SerializationHelper.Serialize(request.options); // http body (model) parameter var response = this.apiInvoker.InvokeApi( resourcePath, "POST", postBody, null, null); if (response != null) { return((PageImages)SerializationHelper.Deserialize(response, typeof(PageImages))); } return(null); }
public GetPagesResponse Get(GetPagesRequest request) { request.Data.SetDefaultOrder("Title"); var query = repository .AsQueryable<Module.Pages.Models.PageProperties>(); if (!request.Data.IncludeArchived) { query = query.Where(b => !b.IsArchived); } if (!request.Data.IncludeUnpublished) { query = query.Where(b => b.Status == PageStatus.Published); } query = query.ApplyTagsFilter( request.Data, tagName => { return page => page.PageTags.Any(pageTag => pageTag.Tag.Name == tagName && !pageTag.IsDeleted && !pageTag.Tag.IsDeleted); }); var listResponse = query .Select(page => new PageModel { Id = page.Id, Version = page.Version, CreatedBy = page.CreatedByUser, CreatedOn = page.CreatedOn, LastModifiedBy = page.ModifiedByUser, LastModifiedOn = page.ModifiedOn, PageUrl = page.PageUrl, Title = page.Title, Description = page.Description, IsPublished = page.Status == PageStatus.Published, PublishedOn = page.PublishedOn, LayoutId = page.Layout != null && !page.Layout.IsDeleted ? page.Layout.Id : Guid.Empty, CategoryId = page.Category != null && !page.Category.IsDeleted ? page.Category.Id : (Guid?)null, CategoryName = page.Category != null && !page.Category.IsDeleted ? page.Category.Name : null, MainImageId = page.Image != null && !page.Image.IsDeleted ? page.Image.Id : (Guid?)null, MainImageUrl = page.Image != null && !page.Image.IsDeleted ? page.Image.PublicUrl : null, MainImageThumbnauilUrl = page.Image != null && !page.Image.IsDeleted ? page.Image.PublicThumbnailUrl : null, MainImageCaption = page.Image != null && !page.Image.IsDeleted ? page.Image.Caption : null, IsArchived = page.IsArchived }).ToDataListResponse(request); if (request.Data.IncludePageOptions && listResponse.Items.Count > 0) { LoadOptions(listResponse); } return new GetPagesResponse { Data = listResponse }; }
public GetPagesResponse Get(GetPagesRequest request) { request.Data.SetDefaultOrder("Title"); var query = repository .AsQueryable <Module.Pages.Models.PageProperties>(); if (!request.Data.IncludeArchived) { query = query.Where(b => !b.IsArchived); } if (!request.Data.IncludeUnpublished) { query = query.Where(b => b.Status == PageStatus.Published); } query = query.ApplyTagsFilter( request.Data, tagName => { return(page => page.PageTags.Any(tag => tag.Tag.Name == tagName)); }); var listResponse = query .Select(page => new PageModel { Id = page.Id, Version = page.Version, CreatedBy = page.CreatedByUser, CreatedOn = page.CreatedOn, LastModifiedBy = page.ModifiedByUser, LastModifiedOn = page.ModifiedOn, PageUrl = page.PageUrl, Title = page.Title, Description = page.Description, IsPublished = page.Status == PageStatus.Published, PublishedOn = page.PublishedOn, LayoutId = page.Layout.Id, CategoryId = page.Category.Id, CategoryName = page.Category.Name, MainImageId = page.Image.Id, MainImageUrl = page.Image.PublicUrl, MainImageThumbnauilUrl = page.Image.PublicThumbnailUrl, MainImageCaption = page.Image.Caption, IsArchived = page.IsArchived }).ToDataListResponse(request); if (request.Data.IncludePageOptions && listResponse.Items.Count > 0) { LoadOptions(listResponse); } return(new GetPagesResponse { Data = listResponse }); }
public override void Up(ICmsConfiguration configuration) { using (var pagesApi = CmsContext.CreateApiContextOf<PagesApiContext>()) { var request = new GetPagesRequest(page => page.PageUrl == Urls.Page404, includeUnpublished: true); var add404 = configuration.Installation.Install404ErrorPage && !pagesApi.GetPages(request).Items.Any(); request = new GetPagesRequest(page => page.PageUrl == Urls.Page500, includeUnpublished: true); var add500 = configuration.Installation.Install500ErrorPage && !pagesApi.GetPages(request).Items.Any(); request = new GetPagesRequest(page => page.PageUrl == Urls.DefaultPage, includeUnpublished: true); var addDefault = configuration.Installation.InstallDefaultPage && !pagesApi.GetPages(request).Items.Any(); if (!add404 && !add500 && !addDefault) { return; } using (var transactionScope = new TransactionScope()) { var layout = AddLayout(pagesApi); var headerWidget = AddHtmlWidget(pagesApi, "Header", "<a href=\"/\" class=\"bcms-logo\"><img src=\"/file/bcms-pages/content/styles/images/logo.png\" alt=\"Better CMS\"></a>"); var footerWidget = AddHtmlWidget(pagesApi, "Footer", "<span class=\"copyright\">Better CMS 2012 ©</span>"); if (add404) { Add404ErrorPage(pagesApi, layout, headerWidget, footerWidget); } if (add500) { Add500ErrorPage(pagesApi, layout, headerWidget, footerWidget); } if (addDefault) { AddDefaultPage(pagesApi, layout, headerWidget, footerWidget); } transactionScope.Complete(); } } }
public override void Up(ICmsConfiguration configuration) { using (var pagesApi = CmsContext.CreateApiContextOf <PagesApiContext>()) { var request = new GetPagesRequest(page => page.PageUrl == Urls.Page404, includeUnpublished: true, includePrivate: true); var add404 = configuration.Installation.Install404ErrorPage && !pagesApi.GetPages(request).Items.Any(); request = new GetPagesRequest(page => page.PageUrl == Urls.Page500, includeUnpublished: true, includePrivate: true); var add500 = configuration.Installation.Install500ErrorPage && !pagesApi.GetPages(request).Items.Any(); request = new GetPagesRequest(page => page.PageUrl == Urls.DefaultPage, includeUnpublished: true, includePrivate: true); var addDefault = configuration.Installation.InstallDefaultPage && !pagesApi.GetPages(request).Items.Any(); if (!add404 && !add500 && !addDefault) { return; } using (var transactionScope = new TransactionScope()) { var layout = AddLayout(pagesApi); var headerWidget = AddHtmlWidget(pagesApi, "Header", "<a href=\"/\" class=\"bcms-logo\"><img src=\"/file/bcms-pages/content/styles/images/logo.png\" alt=\"Better CMS\"></a>"); var footerWidget = AddHtmlWidget(pagesApi, "Footer", "<span class=\"copyright\">Better CMS 2012 ©</span>"); if (add404) { Add404ErrorPage(pagesApi, layout, headerWidget, footerWidget); } if (add500) { Add500ErrorPage(pagesApi, layout, headerWidget, footerWidget); } if (addDefault) { AddDefaultPage(pagesApi, layout, headerWidget, footerWidget); } transactionScope.Complete(); } } }
public static void Run() { var apiInstance = new PreviewApi(Constants.GetConfig()); try { var fileInfo = new FileInfo { FilePath = "one-page.docx" }; var options = new PreviewOptions { FileInfo = fileInfo }; var request = new GetPagesRequest(options); var response = apiInstance.GetPages(request); Console.WriteLine("GetPages: pages count = " + response.TotalCount); } catch (Exception e) { Console.WriteLine("Exception while calling Annotation PreviewApi: " + e.Message); } }
public GetPagesResponse Get(GetPagesRequest request) { request.Data.SetDefaultOrder("Title"); var query = repository .AsQueryable <PageProperties>(); if (!request.Data.IncludeArchived) { query = query.Where(b => !b.IsArchived); } if (!request.Data.IncludeUnpublished) { query = query.Where(b => b.Status == PageStatus.Published); } query = query.ApplyTagsFilter( request.Data, tagName => { return(page => page.PageTags.Any(pageTag => pageTag.Tag.Name == tagName && !pageTag.IsDeleted && !pageTag.Tag.IsDeleted)); }); var listResponse = query .Select(page => new PageModel { Id = page.Id, Version = page.Version, CreatedBy = page.CreatedByUser, CreatedOn = page.CreatedOn, LastModifiedBy = page.ModifiedByUser, LastModifiedOn = page.ModifiedOn, PageUrl = page.PageUrl, Title = page.Title, Description = page.Description, IsPublished = page.Status == PageStatus.Published, PublishedOn = page.PublishedOn, LayoutId = page.Layout != null && !page.Layout.IsDeleted ? page.Layout.Id : Guid.Empty, CategoryId = page.Category != null && !page.Category.IsDeleted ? page.Category.Id : (Guid?)null, CategoryName = page.Category != null && !page.Category.IsDeleted ? page.Category.Name : null, MainImageId = page.Image != null && !page.Image.IsDeleted ? page.Image.Id : (Guid?)null, MainImageUrl = page.Image != null && !page.Image.IsDeleted ? page.Image.PublicUrl : null, MainImageThumbnauilUrl = page.Image != null && !page.Image.IsDeleted ? page.Image.PublicThumbnailUrl : null, MainImageCaption = page.Image != null && !page.Image.IsDeleted ? page.Image.Caption : null, IsArchived = page.IsArchived }).ToDataListResponse(request); foreach (var model in listResponse.Items) { model.MainImageUrl = fileUrlResolver.EnsureFullPathUrl(model.MainImageUrl); model.MainImageThumbnauilUrl = fileUrlResolver.EnsureFullPathUrl(model.MainImageThumbnauilUrl); } if (listResponse.Items.Count > 0 && (request.Data.IncludePageOptions || request.Data.IncludeTags)) { LoadOptionsAndTags(listResponse, request.Data.IncludePageOptions, request.Data.IncludeTags); } return(new GetPagesResponse { Data = listResponse }); }
public GetPagesResponse Get(GetPagesRequest request) { request.Data.SetDefaultOrder("Title"); var query = repository .AsQueryable<PageProperties>(); if (!request.Data.IncludeArchived) { query = query.Where(b => !b.IsArchived); } if (!request.Data.IncludeUnpublished) { query = query.Where(b => b.Status == PageStatus.Published); } if (!request.Data.IncludeMasterPages) { query = query.Where(b => !b.IsMasterPage); } query = query.ApplyPageTagsFilter(request.Data); if (request.User != null && !string.IsNullOrWhiteSpace(request.User.Name)) { var principal = new ApiPrincipal(request.User); IEnumerable<Guid> deniedPages = accessControlService.GetPrincipalDeniedObjects<PageProperties>(principal, false); foreach (var deniedPageId in deniedPages) { var id = deniedPageId; query = query.Where(f => f.Id != id); } } var includeMetadata = request.Data.IncludeMetadata; var listResponse = query .Select(page => new PageModel { Id = page.Id, Version = page.Version, CreatedBy = page.CreatedByUser, CreatedOn = page.CreatedOn, LastModifiedBy = page.ModifiedByUser, LastModifiedOn = page.ModifiedOn, PageUrl = page.PageUrl, Title = page.Title, Description = page.Description, IsPublished = page.Status == PageStatus.Published, PublishedOn = page.PublishedOn, LayoutId = page.Layout != null && !page.Layout.IsDeleted ? page.Layout.Id : (Guid?)null, MasterPageId = page.MasterPage != null && !page.MasterPage.IsDeleted ? page.MasterPage.Id : (Guid?)null, CategoryId = page.Category != null && !page.Category.IsDeleted ? page.Category.Id : (Guid?)null, CategoryName = page.Category != null && !page.Category.IsDeleted ? page.Category.Name : null, MainImageId = page.Image != null && !page.Image.IsDeleted ? page.Image.Id : (Guid?)null, MainImageUrl = page.Image != null && !page.Image.IsDeleted ? page.Image.PublicUrl : null, MainImageThumbnauilUrl = page.Image != null && !page.Image.IsDeleted ? page.Image.PublicThumbnailUrl : null, MainImageCaption = page.Image != null && !page.Image.IsDeleted ? page.Image.Caption : null, IsArchived = page.IsArchived, IsMasterPage = page.IsMasterPage, LanguageId = page.Language != null ? page.Language.Id : (Guid?)null, LanguageCode = page.Language != null ? page.Language.Code : null, LanguageGroupIdentifier = page.LanguageGroupIdentifier, Metadata = includeMetadata ? new MetadataModel { MetaDescription = page.MetaDescription, MetaTitle = page.MetaTitle, MetaKeywords = page.MetaKeywords, UseNoFollow = page.UseNoFollow, UseNoIndex = page.UseNoIndex, UseCanonicalUrl = page.UseCanonicalUrl } : null }).ToDataListResponse(request); foreach (var model in listResponse.Items) { model.MainImageUrl = fileUrlResolver.EnsureFullPathUrl(model.MainImageUrl); model.MainImageThumbnauilUrl = fileUrlResolver.EnsureFullPathUrl(model.MainImageThumbnauilUrl); } if (listResponse.Items.Count > 0 && (request.Data.IncludePageOptions || request.Data.IncludeTags || request.Data.IncludeAccessRules)) { LoadInnerCollections(listResponse, request.Data.IncludePageOptions, request.Data.IncludeTags, request.Data.IncludeAccessRules); } return new GetPagesResponse { Data = listResponse }; }
public GetPagesResponse Get(GetPagesRequest request) { request.Data.SetDefaultOrder("Title"); var query = repository .AsQueryable <PageProperties>(); if (!request.Data.IncludeArchived) { query = query.Where(b => !b.IsArchived); } if (!request.Data.IncludeUnpublished) { query = query.Where(b => b.Status == PageStatus.Published); } if (!request.Data.IncludeMasterPages) { query = query.Where(b => !b.IsMasterPage); } query = query.ApplyPageTagsFilter(request.Data); if (request.User != null && !string.IsNullOrWhiteSpace(request.User.Name)) { var principal = new ApiPrincipal(request.User); IEnumerable <Guid> deniedPages = accessControlService.GetPrincipalDeniedObjects <PageProperties>(principal, false); foreach (var deniedPageId in deniedPages) { var id = deniedPageId; query = query.Where(f => f.Id != id); } } var includeMetadata = request.Data.IncludeMetadata; var listResponse = query .Select(page => new PageModel { Id = page.Id, Version = page.Version, CreatedBy = page.CreatedByUser, CreatedOn = page.CreatedOn, LastModifiedBy = page.ModifiedByUser, LastModifiedOn = page.ModifiedOn, PageUrl = page.PageUrl, Title = page.Title, Description = page.Description, IsPublished = page.Status == PageStatus.Published, PublishedOn = page.PublishedOn, LayoutId = page.Layout != null && !page.Layout.IsDeleted ? page.Layout.Id : (Guid?)null, MasterPageId = page.MasterPage != null && !page.MasterPage.IsDeleted ? page.MasterPage.Id : (Guid?)null, CategoryId = page.Category != null && !page.Category.IsDeleted ? page.Category.Id : (Guid?)null, CategoryName = page.Category != null && !page.Category.IsDeleted ? page.Category.Name : null, MainImageId = page.Image != null && !page.Image.IsDeleted ? page.Image.Id : (Guid?)null, MainImageUrl = page.Image != null && !page.Image.IsDeleted ? page.Image.PublicUrl : null, MainImageThumbnauilUrl = page.Image != null && !page.Image.IsDeleted ? page.Image.PublicThumbnailUrl : null, MainImageCaption = page.Image != null && !page.Image.IsDeleted ? page.Image.Caption : null, IsArchived = page.IsArchived, IsMasterPage = page.IsMasterPage, LanguageId = page.Language != null ? page.Language.Id : (Guid?)null, LanguageCode = page.Language != null ? page.Language.Code : null, LanguageGroupIdentifier = page.LanguageGroupIdentifier, Metadata = includeMetadata ? new MetadataModel { MetaDescription = page.MetaDescription, MetaTitle = page.MetaTitle, MetaKeywords = page.MetaKeywords, UseNoFollow = page.UseNoFollow, UseNoIndex = page.UseNoIndex, UseCanonicalUrl = page.UseCanonicalUrl } : null }).ToDataListResponse(request); foreach (var model in listResponse.Items) { model.MainImageUrl = fileUrlResolver.EnsureFullPathUrl(model.MainImageUrl); model.MainImageThumbnauilUrl = fileUrlResolver.EnsureFullPathUrl(model.MainImageThumbnauilUrl); } if (listResponse.Items.Count > 0 && (request.Data.IncludePageOptions || request.Data.IncludeTags || request.Data.IncludeAccessRules)) { LoadInnerCollections(listResponse, request.Data.IncludePageOptions, request.Data.IncludeTags, request.Data.IncludeAccessRules); } return(new GetPagesResponse { Data = listResponse }); }
public GetPagesResponse Get(GetPagesRequest request) { request.Data.SetDefaultOrder("Title"); var query = repository .AsQueryable <PageProperties>(); if (!request.Data.IncludeArchived) { query = query.Where(b => !b.IsArchived); } if (!request.Data.IncludeUnpublished) { query = query.Where(b => b.Status == PageStatus.Published); } if (!request.Data.IncludeMasterPages) { query = query.Where(b => !b.IsMasterPage); } query = query.ApplyPageTagsFilter(request.Data); var includeMetadata = request.Data.IncludeMetadata; var listResponse = query .Select(page => new PageModel { Id = page.Id, Version = page.Version, CreatedBy = page.CreatedByUser, CreatedOn = page.CreatedOn, LastModifiedBy = page.ModifiedByUser, LastModifiedOn = page.ModifiedOn, PageUrl = page.PageUrl, Title = page.Title, Description = page.Description, IsPublished = page.Status == PageStatus.Published, PublishedOn = page.PublishedOn, LayoutId = page.Layout != null && !page.Layout.IsDeleted ? page.Layout.Id : Guid.Empty, CategoryId = page.Category != null && !page.Category.IsDeleted ? page.Category.Id : (Guid?)null, CategoryName = page.Category != null && !page.Category.IsDeleted ? page.Category.Name : null, MainImageId = page.Image != null && !page.Image.IsDeleted ? page.Image.Id : (Guid?)null, MainImageUrl = page.Image != null && !page.Image.IsDeleted ? page.Image.PublicUrl : null, MainImageThumbnauilUrl = page.Image != null && !page.Image.IsDeleted ? page.Image.PublicThumbnailUrl : null, MainImageCaption = page.Image != null && !page.Image.IsDeleted ? page.Image.Caption : null, IsArchived = page.IsArchived, IsMasterPage = page.IsMasterPage, LanguageId = page.Language != null ? page.Language.Id : (Guid?)null, LanguageCode = page.Language != null ? page.Language.Code : null, LanguageGroupIdentifier = page.LanguageGroupIdentifier, Metadata = includeMetadata ? new MetadataModel { MetaDescription = page.MetaDescription, MetaTitle = page.MetaTitle, MetaKeywords = page.MetaKeywords, UseNoFollow = page.UseNoFollow, UseNoIndex = page.UseNoIndex, UseCanonicalUrl = page.UseCanonicalUrl } : null }).ToDataListResponse(request); foreach (var model in listResponse.Items) { model.MainImageUrl = fileUrlResolver.EnsureFullPathUrl(model.MainImageUrl); model.MainImageThumbnauilUrl = fileUrlResolver.EnsureFullPathUrl(model.MainImageThumbnauilUrl); } if (listResponse.Items.Count > 0 && (request.Data.IncludePageOptions || request.Data.IncludeTags)) { LoadOptionsAndTags(listResponse, request.Data.IncludePageOptions, request.Data.IncludeTags); } return(new GetPagesResponse { Data = listResponse }); }
public GetPagesResponse Get(GetPagesRequest request) { request.Data.SetDefaultOrder("Title"); var query = repository .AsQueryable<PageProperties>(); if (!request.Data.IncludeArchived) { query = query.Where(b => !b.IsArchived); } if (!request.Data.IncludeUnpublished) { query = query.Where(b => b.Status == PageStatus.Published); } if (!request.Data.IncludeMasterPages) { query = query.Where(b => !b.IsMasterPage); } query = query.ApplyTagsFilter( request.Data, tagName => { return page => page.PageTags.Any(pageTag => pageTag.Tag.Name == tagName && !pageTag.IsDeleted && !pageTag.Tag.IsDeleted); }); var includeMetadata = request.Data.IncludeMetadata; var listResponse = query .Select(page => new PageModel { Id = page.Id, Version = page.Version, CreatedBy = page.CreatedByUser, CreatedOn = page.CreatedOn, LastModifiedBy = page.ModifiedByUser, LastModifiedOn = page.ModifiedOn, PageUrl = page.PageUrl, Title = page.Title, Description = page.Description, IsPublished = page.Status == PageStatus.Published, PublishedOn = page.PublishedOn, LayoutId = page.Layout != null && !page.Layout.IsDeleted ? page.Layout.Id : Guid.Empty, CategoryId = page.Category != null && !page.Category.IsDeleted ? page.Category.Id : (Guid?)null, CategoryName = page.Category != null && !page.Category.IsDeleted ? page.Category.Name : null, MainImageId = page.Image != null && !page.Image.IsDeleted ? page.Image.Id : (Guid?)null, MainImageUrl = page.Image != null && !page.Image.IsDeleted ? page.Image.PublicUrl : null, MainImageThumbnauilUrl = page.Image != null && !page.Image.IsDeleted ? page.Image.PublicThumbnailUrl : null, MainImageCaption = page.Image != null && !page.Image.IsDeleted ? page.Image.Caption : null, IsArchived = page.IsArchived, IsMasterPage = page.IsMasterPage, Metadata = includeMetadata ? new MetadataModel { MetaDescription = page.MetaDescription, MetaTitle = page.MetaTitle, MetaKeywords = page.MetaKeywords, UseNoFollow = page.UseNoFollow, UseNoIndex = page.UseNoIndex, UseCanonicalUrl = page.UseCanonicalUrl } : null }).ToDataListResponse(request); foreach (var model in listResponse.Items) { model.MainImageUrl = fileUrlResolver.EnsureFullPathUrl(model.MainImageUrl); model.MainImageThumbnauilUrl = fileUrlResolver.EnsureFullPathUrl(model.MainImageThumbnauilUrl); } if (listResponse.Items.Count > 0 && (request.Data.IncludePageOptions || request.Data.IncludeTags)) { LoadOptionsAndTags(listResponse, request.Data.IncludePageOptions, request.Data.IncludeTags); } return new GetPagesResponse { Data = listResponse }; }