public async Task <ShapeBinding> GetShapeBindingAsync(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 AdminPreviewTemplatesProvider(IHttpContextAccessor httpContextAccessor) { _templatesDocument = new Lazy <AdminTemplatesDocument>(() => { var httpContext = httpContextAccessor.HttpContext; var templatesDocument = new AdminTemplatesDocument(); 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); }); }