Пример #1
0
        public Template(ITemplateRenderer renderer, ITemplatePreprocessor preprocessor)
        {
            if (renderer == null && preprocessor == null)
            {
                throw new ArgumentNullException("Both renderer and preprocessor are null");
            }

            Renderer     = renderer;
            Preprocessor = preprocessor;

            Name       = renderer?.Name ?? preprocessor?.Name;
            ScriptName = preprocessor?.Path;


            var templateInfo = GetTemplateInfo(Name);

            Extension    = templateInfo.Extension;
            Type         = templateInfo.DocumentType;
            TemplateType = templateInfo.TemplateType;

            ContainsGetOptions          = Preprocessor?.ContainsGetOptions == true;
            ContainsModelTransformation = Preprocessor?.ContainsModelTransformation == true;

            Resources = ExtractDependentResources(Name);

            if (Renderer == null && !ContainsGetOptions && !ContainsModelTransformation)
            {
                Logger.LogWarning($"Template {Name} contains neither preprocessor to process model nor template to render model. Please check if the template is correctly defined. Allowed preprocessor functions are [exports.getOptions] and [exports.transform].");
            }
        }
Пример #2
0
        public XmlTemplate(
            [NotNull] XmlDeclarationParser xmlDeclarationParser,
            [NotNull] ITemplateLoader templateLoader,
            [NotNull] ITemplatePreprocessor templatePreprocessor,
            [NotNull] ITokenReplacer tokenReplacer,
            [NotNull] TemplatePreferencesLoader templatePreferencesLoader)
        {
            if (xmlDeclarationParser == null)
            {
                throw new ArgumentNullException(nameof(xmlDeclarationParser));
            }
            if (templateLoader == null)
            {
                throw new ArgumentNullException(nameof(templateLoader));
            }
            if (templatePreprocessor == null)
            {
                throw new ArgumentNullException(nameof(templatePreprocessor));
            }
            if (tokenReplacer == null)
            {
                throw new ArgumentNullException(nameof(tokenReplacer));
            }
            if (templatePreferencesLoader == null)
            {
                throw new ArgumentNullException(nameof(templatePreferencesLoader));
            }

            _xmlDeclarationParser      = xmlDeclarationParser;
            _templateLoader            = templateLoader;
            _templatePreprocessor      = templatePreprocessor;
            _tokenReplacer             = tokenReplacer;
            _templatePreferencesLoader = templatePreferencesLoader;
        }