/// <inheritdoc/> public async Task <TemplatesDocument> GetTemplatesDocumentAsync() { TemplatesDocument document; if (!_memoryCache.TryGetValue(CacheKey, out document)) { document = await _session.Query <TemplatesDocument>().FirstOrDefaultAsync(); if (document == null) { lock (_memoryCache) { if (!_memoryCache.TryGetValue(CacheKey, out document)) { document = new TemplatesDocument(); _session.Save(document); _memoryCache.Set(CacheKey, document); _signal.SignalToken(CacheKey); } } } else { _memoryCache.Set(CacheKey, document); _signal.SignalToken(CacheKey); } } return(document); }
public async Task <ShapeBinding> GetDescriptorBindingAsync(string shapeType) { if (AdminAttribute.IsApplied(_httpContextAccessor.HttpContext)) { return(null); } var localTemplates = _previewTemplatesProvider.GetTemplates(); if (localTemplates != null) { if (localTemplates.Templates.TryGetValue(shapeType, out var localTemplate)) { return(BuildShapeBinding(shapeType, localTemplate)); } } if (_templatesDocument == null) { _templatesDocument = await _templatesManager.GetTemplatesDocumentAsync(); } if (_templatesDocument.Templates.TryGetValue(shapeType, out var template)) { return(BuildShapeBinding(shapeType, template)); } else { return(null); } }
public PreviewTemplatesProvider(IHttpContextAccessor httpContextAccessor) { _templatesDocument = new Lazy <TemplatesDocument>(() => { var httpContext = httpContextAccessor.HttpContext; var templatesDocument = new TemplatesDocument(); if (httpContext.Items.TryGetValue("OrchardCore.PreviewTemplate", out var model)) { var viewModel = model as TemplateViewModel; if (viewModel == null || viewModel.Name == null) { return(templatesDocument); } var template = new Template { Content = viewModel.Content }; templatesDocument.Templates.Add(viewModel.Name, template); } return(templatesDocument); }); }
public PreviewTemplatesProvider(IHttpContextAccessor httpContextAccessor) { _templatesDocument = new Lazy <TemplatesDocument>(() => { var httpContext = httpContextAccessor.HttpContext; if (!httpContext.Request.Cookies.ContainsKey("orchard:templates:count")) { return(null); } var sb = new StringBuilder(); int.TryParse(httpContext.Request.Cookies["orchard:templates:count"], out int count); for (var i = 0; i < count; i++) { var chunk = httpContext.Request.Cookies["orchard:templates:" + i]; sb.Append(chunk); } var content = Encoding.UTF8.GetString(Convert.FromBase64String(sb.ToString())); var template = JsonConvert.DeserializeObject <Template>(content); var templatesDocument = new TemplatesDocument(); if (template == null || template.Description == null) { // An error occured while deserializing return(templatesDocument); } templatesDocument.Templates.Add(template.Description, template); return(templatesDocument); }); }
public TemplatesShapeBindingResolver( TemplatesManager templatesManager, ILiquidTemplateManager liquidTemplateManager, IUrlHelperFactory urlHelperFactory) { _templatesDocument = templatesManager.GetTemplatesDocumentAsync().GetAwaiter().GetResult(); _liquidTemplateManager = liquidTemplateManager; _urlHelperFactory = urlHelperFactory; }
public TemplatesShapeBindingResolver( TemplatesManager templatesManager, ILiquidTemplateManager liquidTemplateManager, PreviewTemplatesProvider previewTemplatesProvider, IHttpContextAccessor httpContextAccessor) { _templatesDocument = templatesManager.GetTemplatesDocumentAsync().GetAwaiter().GetResult(); _liquidTemplateManager = liquidTemplateManager; _previewTemplatesProvider = previewTemplatesProvider; _httpContextAccessor = httpContextAccessor; }
public PreviewTemplatesProvider(IHttpContextAccessor httpContextAccessor) { _templatesDocument = new Lazy <TemplatesDocument>(() => { var httpContext = httpContextAccessor.HttpContext; if (!httpContext.Request.Cookies.ContainsKey("orchard:templates")) { return(null); } var template = JsonConvert.DeserializeObject <Template>(httpContext.Request.Cookies["orchard:templates"]); var templatesDocument = new TemplatesDocument(); templatesDocument.Templates.Add(template.Description, template); return(templatesDocument); }); }