/// <summary> /// Gets the cache value or null if it has not been set. /// </summary> public void Set(IPageResponseData data) { var cache = _httpContextAccessor.HttpContext?.Items; if (cache == null) { throw new InvalidOperationException("Cannot set the cache outside of a request."); } cache[CACHE_KEY] = data; }
/// <summary> /// Gets the cache value or null if it has not been set. /// </summary> public void Set(IPageResponseData data) { var cache = HttpContext.Current?.Items; if (cache == null) { throw new ApplicationException("Cannot set the cache outside of a request."); } cache[CACHE_KEY] = data; }
public VisualEditorContentStream( Stream outputStream, IPageResponseData pageResponseData, IResourceLocator resourceLocator, ControllerContext context ) { _outputStream = outputStream; _pageResponseData = pageResponseData; _resourceLocator = resourceLocator; _context = context; }
public VisualEditorContentStream( Stream outputStream, IPageResponseData pageResponseData, IResourceLocator resourceLocator, IJsonSerializerSettingsFactory jsonSerializerSettingsFactory, ControllerContext context ) { _outputStream = outputStream; _pageResponseData = pageResponseData; _resourceLocator = resourceLocator; _jsonSerializerSettingsFactory = jsonSerializerSettingsFactory; _context = context; }
/// <summary> /// Here we modify the page response data to include only what we need and /// serialize it into a json object. /// </summary> private string CreateResponseJson(IPageResponseData pageResponseData) { string responseJson; // When using IPageBlockWithParentPageData and referencing the parent page we get a // Self referencing loop error. Rather than set this globally we ignore this specifically here var settings = _jsonSerializerSettingsFactory.Create(); settings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore; settings.StringEscapeHandling = StringEscapeHandling.EscapeHtml; bool isCustomEntityRoute = pageResponseData.Version is CustomEntityVersionRoute; bool hasEntityUpdatePermission = false; bool hasEntityPublishPermission = false; if (isCustomEntityRoute) { hasEntityUpdatePermission = _permissionValidationService.HasCustomEntityPermission <CustomEntityUpdatePermission>( pageResponseData.CustomEntityDefinition.CustomEntityDefinitionCode, pageResponseData.CofoundryAdminUserContext ); hasEntityPublishPermission = _permissionValidationService.HasCustomEntityPermission <CustomEntityPublishPermission>( pageResponseData.CustomEntityDefinition.CustomEntityDefinitionCode, pageResponseData.CofoundryAdminUserContext ); } else { hasEntityUpdatePermission = _permissionValidationService.HasPermission <PageUpdatePermission>(pageResponseData.CofoundryAdminUserContext); hasEntityPublishPermission = _permissionValidationService.HasPermission <PagePublishPermission>(pageResponseData.CofoundryAdminUserContext); } var responseObject = new { Page = pageResponseData.Page, PageRoutingInfo = pageResponseData.PageRoutingInfo, PageVersion = pageResponseData.PageVersion, IsCustomEntityRoute = isCustomEntityRoute, HasDraftVersion = pageResponseData.HasDraftVersion, Version = pageResponseData.Version, VisualEditorMode = pageResponseData.VisualEditorMode, CustomEntityDefinition = pageResponseData.CustomEntityDefinition, HasEntityUpdatePermission = hasEntityUpdatePermission, HasEntityPublishPermission = hasEntityPublishPermission }; responseJson = JsonConvert.SerializeObject(responseObject, settings); return(responseJson); }