/// <summary>
        /// Renders a template with a given model
        /// </summary>
        /// <param name="templateContent">The template content</param>
        /// <param name="model">The model</param>
        /// <returns>The rendered content</returns>
        public string Render
        (
            string templateContent,
            object model
        )
        {
            if (_nettleCompiler == null)
            {
                var generator = new NettleCompilerGenerator
                                (
                    new ConcatenateQueryCellsFunction(),
                    new GetQueryCellValueFunction(),
                    new GcdFunction(),
                    new AsRatioFunction()
                                );

                _nettleCompiler = generator.Generate();
            }

            var template = _nettleCompiler.Compile
                           (
                templateContent
                           );

            return(template
                   (
                       model
                   ));
        }
예제 #2
0
        private void renderButton_Click
        (
            object sender,
            EventArgs e
        )
        {
            try
            {
                var template = _compiler.Compile
                               (
                    templateTextBox.Text
                               );

                var sampleData = GetSampleData();

                var model = new
                {
                    Message = "Hello World",
                    Names   = new string[]
                    {
                        "Craig",
                        "John",
                        "Simon"
                    },
                    SampleData = sampleData,
                    Success    = true
                };

                var output = template(model);

                outputTextBox.ForeColor = Color.White;
                outputTextBox.Text      = output;
            }
            catch (Exception ex)
            {
                outputTextBox.ForeColor = Color.Red;
                outputTextBox.Text      = ex.Message;
            }
        }