Example #1
0
        /// <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);
        }
Example #2
0
        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);
            }
        }
Example #3
0
        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);
            });
        }
Example #4
0
        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);
            });
        }
Example #5
0
 public TemplatesShapeBindingResolver(
     TemplatesManager templatesManager,
     ILiquidTemplateManager liquidTemplateManager,
     IUrlHelperFactory urlHelperFactory)
 {
     _templatesDocument     = templatesManager.GetTemplatesDocumentAsync().GetAwaiter().GetResult();
     _liquidTemplateManager = liquidTemplateManager;
     _urlHelperFactory      = urlHelperFactory;
 }
Example #6
0
 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);
            });
        }