示例#1
0
        /// <summary>
        /// Create the template output
        /// </summary>
        public override string TransformText()
        {
            #line 21 "D:\MC\CloudIDEaaS\root\ApplicationGenerator\Generators\Client\ClientModel\ClientModelClassTemplate.tt"

            var modelName       = this.ModelName.ToCamelCase();
            var className       = this.ModelName;
            var module          = new ESModule(className);
            var modelVariable   = this.EntityName.ToCamelCase();
            var builder         = new StringBuilder();
            var lambdaParameter = modelVariable.Left(1);

            this.Modules.Add(module);

            foreach (var import in this.Imports)
            {
                this.WriteLine(import.DeclarationCode);
            }


            #line default
            #line hidden
            this.Write("\r\nexport class ");

            #line 37 "D:\MC\CloudIDEaaS\root\ApplicationGenerator\Generators\Client\ClientModel\ClientModelClassTemplate.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(className));

            #line default
            #line hidden
            this.Write(" {\r\n");

            #line 38 "D:\MC\CloudIDEaaS\root\ApplicationGenerator\Generators\Client\ClientModel\ClientModelClassTemplate.tt"

            foreach (var formField in this.FormFields)
            {
                if (!this.IsIdentityEntity || formField.IsClientIdentity())
                {
                    var variableName = formField.Name;
                    var name         = formField.Name;
                    var type         = formField.ClientDataType;

                    builder.AppendWithLeadingIfLength(", ", string.Format("{0}: {1}", variableName.ToCamelCase(), type));


            #line default
            #line hidden
                    this.Write("  public ");

            #line 49 "D:\MC\CloudIDEaaS\root\ApplicationGenerator\Generators\Client\ClientModel\ClientModelClassTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(this.MakeVariable(modelVariable, variableName)));

            #line default
            #line hidden
                    this.Write(": ");

            #line 49 "D:\MC\CloudIDEaaS\root\ApplicationGenerator\Generators\Client\ClientModel\ClientModelClassTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(type));

            #line default
            #line hidden
                    this.Write(";\r\n");

            #line 50 "D:\MC\CloudIDEaaS\root\ApplicationGenerator\Generators\Client\ClientModel\ClientModelClassTemplate.tt"
                }
            }


            #line default
            #line hidden
            this.Write("\r\n  constructor(options: { ");

            #line 55 "D:\MC\CloudIDEaaS\root\ApplicationGenerator\Generators\Client\ClientModel\ClientModelClassTemplate.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(builder.ToString()));

            #line default
            #line hidden
            this.Write(" })\r\n  constructor(");

            #line 56 "D:\MC\CloudIDEaaS\root\ApplicationGenerator\Generators\Client\ClientModel\ClientModelClassTemplate.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(lambdaParameter));

            #line default
            #line hidden
            this.Write(": any)\r\n  {\r\n");

            #line 58 "D:\MC\CloudIDEaaS\root\ApplicationGenerator\Generators\Client\ClientModel\ClientModelClassTemplate.tt"

            builder = new StringBuilder();

            foreach (var formField in this.FormFields)
            {
                if (!this.IsIdentityEntity || formField.IsClientIdentity())
                {
                    string variableName;
                    var    name = formField.Name;
                    var    type = formField.ClientDataType;

                    if (formField.IsKey)
                    {
                        variableName = "id";
                    }
                    else
                    {
                        variableName = formField.Name.ToCamelCase();
                    }

                    builder.AppendWithLeadingIfLength(" && ", string.Format("{0}.{1} !== undefined", lambdaParameter, variableName));
                }
            }


            #line default
            #line hidden
            this.Write("    if (");

            #line 82 "D:\MC\CloudIDEaaS\root\ApplicationGenerator\Generators\Client\ClientModel\ClientModelClassTemplate.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(builder.ToString()));

            #line default
            #line hidden
            this.Write(") {\r\n");

            #line 83 "D:\MC\CloudIDEaaS\root\ApplicationGenerator\Generators\Client\ClientModel\ClientModelClassTemplate.tt"

            builder = new StringBuilder();

            foreach (var formField in this.FormFields)
            {
                if (!this.IsIdentityEntity || formField.IsClientIdentity())
                {
                    var variableName = formField.Name;
                    var name         = formField.Name;
                    var type         = formField.ClientDataType;

                    builder.AppendWithLeadingIfLength(", ", string.Format("{0}: {1}", variableName, type));


            #line default
            #line hidden
                    this.Write("      this.");

            #line 96 "D:\MC\CloudIDEaaS\root\ApplicationGenerator\Generators\Client\ClientModel\ClientModelClassTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(this.MakeVariable(modelVariable, variableName)));

            #line default
            #line hidden
                    this.Write(" = ");

            #line 96 "D:\MC\CloudIDEaaS\root\ApplicationGenerator\Generators\Client\ClientModel\ClientModelClassTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(lambdaParameter));

            #line default
            #line hidden
                    this.Write(".");

            #line 96 "D:\MC\CloudIDEaaS\root\ApplicationGenerator\Generators\Client\ClientModel\ClientModelClassTemplate.tt"
                    this.Write(this.ToStringHelper.ToStringWithCulture(variableName));

            #line default
            #line hidden
                    this.Write(";\r\n");

            #line 97 "D:\MC\CloudIDEaaS\root\ApplicationGenerator\Generators\Client\ClientModel\ClientModelClassTemplate.tt"
                }
            }


            #line default
            #line hidden
            this.Write("    }\r\n    else if (");

            #line 102 "D:\MC\CloudIDEaaS\root\ApplicationGenerator\Generators\Client\ClientModel\ClientModelClassTemplate.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(lambdaParameter));

            #line default
            #line hidden
            this.Write(" !== undefined) {\r\n      (<any>Object).assign(this, ");

            #line 103 "D:\MC\CloudIDEaaS\root\ApplicationGenerator\Generators\Client\ClientModel\ClientModelClassTemplate.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(lambdaParameter));

            #line default
            #line hidden
            this.Write(");\r\n    } else {\r\n      throw new TypeError(\"Unexpected arguments to Course const" +
                       "ructor\")\r\n    }\r\n  }\r\n");

            #line 108 "D:\MC\CloudIDEaaS\root\ApplicationGenerator\Generators\Client\ClientModel\ClientModelClassTemplate.tt"

            builder = new StringBuilder();

            foreach (var formField in this.FormFields)
            {
                if (!this.IsIdentityEntity || formField.IsClientIdentity())
                {
                    var variableName = formField.Name;
                    var name         = formField.Name;
                    var type         = formField.ClientDataType;

                    builder.AppendWithLeadingIfLength(", ", string.Format("{0}: this.{0}", this.MakeVariable(modelVariable, variableName)));
                }
            }


            #line default
            #line hidden
            this.Write("\r\n  public get ");

            #line 124 "D:\MC\CloudIDEaaS\root\ApplicationGenerator\Generators\Client\ClientModel\ClientModelClassTemplate.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(modelVariable));

            #line default
            #line hidden
            this.Write("Data() {\r\n    return { ");

            #line 125 "D:\MC\CloudIDEaaS\root\ApplicationGenerator\Generators\Client\ClientModel\ClientModelClassTemplate.tt"
            this.Write(this.ToStringHelper.ToStringWithCulture(builder.ToString()));

            #line default
            #line hidden
            this.Write(" };\r\n  }\r\n}\r\n");
            return(this.GenerationEnvironment.ToString());
        }
示例#2
0
        public static List <Module> GetModules(string contents, string fileName)
        {
            var currentAst = new TypeScriptAST();
            var modules    = new List <Module>();

            currentAst.MakeAST(contents, fileName);

            foreach (var functionDeclaration in currentAst.RootNode.Children.OfType <FunctionDeclaration>().Where(f => f.Modifiers != null && f.Modifiers.Any(m => m.Kind == SyntaxKind.ExportKeyword)))
            {
                var module = new ExportedFunction(functionDeclaration.IdentifierStr);
                modules.Add(module);
            }

            foreach (var classDeclaration in currentAst.GetDescendants().OfType <ClassDeclaration>())
            {
                Module module = null;

                if (classDeclaration.Decorators != null)
                {
                    foreach (var decorator in classDeclaration.Decorators)
                    {
                        if (decorator.Expression is CallExpression)
                        {
                            var callExpression = (CallExpression)decorator.Expression;

                            switch (callExpression.IdentifierStr)
                            {
                            case "NgModule":
                            {
                                module = new AngularModule(classDeclaration.IdentifierStr);
                                modules.Add(module);
                            }

                            break;

                            case "Component":
                            {
                                module = new Page(classDeclaration.IdentifierStr);
                                modules.Add(module);
                            }

                            break;

                            case "Pipe":
                            {
                                module = new Pipe(classDeclaration.IdentifierStr);
                                modules.Add(module);
                            }

                            break;

                            case "Directive":
                            {
                                module = new Directive(classDeclaration.IdentifierStr);
                                modules.Add(module);
                            }

                            break;

                            case "Injectable":
                            {
                                module = new Provider(classDeclaration.IdentifierStr);
                                modules.Add(module);
                            }

                            break;

                            default:
                            {
                                DebugUtils.Break();
                                break;
                            }
                            }
                        }
                        else
                        {
                            DebugUtils.Break();
                        }
                    }
                }

                if (module == null)
                {
                    module = new ESModule(classDeclaration.IdentifierStr);
                    modules.Add(module);
                }
            }

            return(modules);
        }