public string GenerateContent()
 {
     var engine = new TemplateEngine();
     var testTemplate = engine.BuildTemplate(_templateText);
     var ctx = GenerateTemplateDataSource();
     var evaluationContext = new EvaluationContext(ctx, null);
     var parsed = testTemplate.Evaluate(evaluationContext);
     return parsed;
 }
Example #2
0
        static void Main(string[] args)
        {
            try
            {
                TemplateEngine engine = new TemplateEngine();

                string testTemplateString = File.ReadAllText("TestTemplate.txt");
                RootTemplate testTemplate = engine.BuildTemplate(testTemplateString);

                Console.WriteLine("TREE -->");
                Console.WriteLine();
                Console.WriteLine();

                Console.WriteLine(testTemplate.DisplayTree(0));

                var context = new Dictionary<string, object>() {
                    {"Program", new Program(){ Variable = 6 }},
                    {"people", new List<Person>{
                        new Person(){ Age=20, Bio="Story1", Name ="Test1"},
                        new Person(){ Age=25, Bio="Story2", Name ="Test2"},
                        new Person(){ Age=30, Bio="Story3", Name ="Test3"}
                    }},
                    {"dict", new Dictionary<string, object>(){
                        {"test","test"}
                    }},
                    {"emptylist", new List<object>{}}
                };
                EvaluationContext evaluationContext = new EvaluationContext(context, null);

                Console.WriteLine();
                Console.WriteLine();
                Console.WriteLine();

                Console.WriteLine("Evaluated:");
                //string result = testTemplate.Evaluate(evaluationContext);
                //Console.WriteLine(result);
                testTemplate.Evaluate(evaluationContext, x => Console.Write(x));

                Console.WriteLine();
                Console.WriteLine();

                int times = 1000;
                Console.WriteLine("Running template {0} times -->", times);
                Stopwatch watch = new Stopwatch();
                watch.Start();
                for (int i = 0; i < times; i++)
                {
                    Runtemplate(engine, testTemplateString, evaluationContext);
                }
                watch.Stop();
                Console.WriteLine("Total cost: {0}ms", watch.ElapsedMilliseconds);
                decimal total = watch.ElapsedMilliseconds / (decimal)times;
                Console.WriteLine("Cost per build AND evaluate: {0}ms", total);

                Console.WriteLine();
                Console.WriteLine("Hit enter");
                Console.ReadLine();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
                Console.ReadLine();
            }
        }
Example #3
0
 private static void Runtemplate(TemplateEngine engine, string template, EvaluationContext context)
 {
     RootTemplate testTemplate = engine.BuildTemplate(template);
     testTemplate.Evaluate(context, x => { });//without IO or storing in string(builder)
 }