Beispiel #1
0
        public HbsRenderer(IServiceProvider services, IHandlebars handlebars, IOptions <HandlebarsViewEngineOptions> options, IExpressionCache expressionCache)
        {
            _options         = options.Value;
            _services        = services.CreateScope().ServiceProvider;
            _expressionCache = expressionCache;
            _handlebars      = handlebars;

            var helpersAction = _options.RegisterHelpers;

            if (helpersAction != null)
            {
                var helpers = new HelperList();
                helpersAction.Invoke(helpers);

                foreach (var helper in helpers)
                {
                    var h = _services.GetService(helper).Cast <HandlebarsBaseHelper>();
                    switch (h.HelperType)
                    {
                    case HelperType.HandlebarsHelper:
                        _handlebars.RegisterHelper(h.HelperName, h.HandlebarsHelper);
                        break;

                    case HelperType.HandlebarsBlockHelper:
                        _handlebars.RegisterHelper(h.HelperName, h.HandlebarsBlockHelper);
                        break;

                    default:
                        throw new ArgumentOutOfRangeException();
                    }
                }
            }
        }
Beispiel #2
0
 public HandlebarsViewEngine(IOptions <HandlebarsViewEngineOptions> optionsAccessor, IHbsRenderer renderer)
 {
     _options  = optionsAccessor?.Value ?? throw new ArgumentNullException(nameof(optionsAccessor));
     _renderer = renderer;
 }