Render() public method

Renders this template using the specified object model.
public Render ( object model = null ) : string
model object The object model.
return string
Beispiel #1
0
        IEnumerable <MemberDeclarationSyntax> GenerateSyncEntityClass(SemanticModel model, ClassDeclarationSyntax entityClass)
        {
            ScriptObject scriptObject = ExtractDataForSync(model, entityClass);
            var          context      = new TemplateContext();

            context.PushGlobal(scriptObject);
            var code = _syncEntityTemplate.Render(context);

            context.PopGlobal();
            var syntaxTree = CSharpSyntaxTree.ParseText(code);
            var cds        = syntaxTree.GetRoot().DescendantNodesAndSelf().OfType <ClassDeclarationSyntax>();

            return(cds);
        }
            public string Render(object model = null)
            {
                var context = new LiquidTemplateContext {
                    TemplateLoader = FileSystem
                };
                var obj = new ScriptObject();

                if (model != null)
                {
                    obj.Import(model);
                }
                context.PushGlobal(obj);
                return(_template.Render(context));
            }
Beispiel #3
0
    public string Generate(Type recordType)
    {
        var             typeInfo     = new TypeInfo(recordType);
        ISet <TypeInfo> dependencies = new HashSet <TypeInfo>();

        typeInfo.CollectDependencies(dependencies);
        var scriptObject = new ScriptObject();

        scriptObject["type"]         = typeInfo;
        scriptObject["dependencies"] = dependencies;
        var context = new Scriban.TemplateContext();

        context.PushGlobal(scriptObject);
        return(template.Render(context));
    }
Beispiel #4
0
        private IEnumerable <MemberDeclarationSyntax> GenerateMessage(SemanticModel model, MethodDeclarationSyntax method, string className)
        {
            List <MsgArg> args = new List <MsgArg>();

            foreach (var param in method.ParameterList.Parameters)
            {
                args.Add(new MsgArg()
                {
                    Name = param.Identifier.ValueText, Type = param.Type.ToString(), Ghost = InheritsFrom("NetworkEngine.SyncObject", model.GetTypeInfo(param.Type).Type)
                });
            }
            var scriptObject = new ScriptObject();

            scriptObject.Import(new { Entity = className, Method = method.Identifier.ValueText, Class = className, Arguments = args, Id = (int)Crc64CodeGen.Compute((className + method.Identifier.ValueText)) });
            scriptObject.Import(nameof(PutToStreamFromType), (Func <bool, string, string, string>)((b, str, str2) => PutToStreamFromType(b, str, str2)));
            scriptObject.Import(nameof(GetFromStreamFromType), (Func <bool, string, string, string>)((b, str, str2) => GetFromStreamFromType(b, str, str2)));
            scriptObject.Import(nameof(GetTagForProp), (Func <string, int, string>)((str, i) => GetTagForProp(str, i)));
            var code = _messageTemplate.Render(scriptObject); var syntaxTree = CSharpSyntaxTree.ParseText(code);
            var cds = syntaxTree.GetRoot().DescendantNodesAndSelf().OfType <ClassDeclarationSyntax>();

            //foreach (var cd in cds.ToArray())
            //    cds = cds.Concat(new[] { GenerateSyncObjClass(model, cd) });
            return(cds);
        }
Beispiel #5
0
 public static void Test()
 {
     var result = compile.Render(hash);
     //Console.WriteLine(result);
 }