Ejemplo n.º 1
0
        public string ConvertToTypescript(string text, ConvertSettings settingStore)
        {
            try
            {
                CSharpSyntaxTree text1 = (CSharpSyntaxTree)CSharpSyntaxTree.ParseText(text, null, "", null, new CancellationToken());
                if (text1.GetDiagnostics(new CancellationToken()).Any(f => f.Severity == (DiagnosticSeverity)3))
                {
                    return(null);
                }
                CSharpSyntaxNode syntaxNode = text1.GetRoot(new CancellationToken());
                if (this.IsEmptyRoot(syntaxNode))
                {
                    return(null);
                }

                if (settingStore.IsConvertToInterface)
                {
                    syntaxNode = ClassToInterfaceReplacement.ReplaceClass(syntaxNode);
                }

                if (settingStore.IsConvertMemberToCamelCase)
                {
                    syntaxNode = MakeMemberCamelCase.Make(syntaxNode);
                }

                if (settingStore.IsConvertListToArray)
                {
                    syntaxNode = ListToArrayReplacement.ReplaceList(syntaxNode);
                }

                if (settingStore.ReplacedTypeNameArray.Length != 0)
                {
                    syntaxNode = TypeNameReplacement.Replace(settingStore.ReplacedTypeNameArray, syntaxNode);
                }

                if (settingStore.AddIPrefixInterfaceDeclaration)
                {
                    syntaxNode = AddIPrefixInterfaceDeclaration.AddIPrefix(syntaxNode);
                }

                if (settingStore.IsInterfaceOptionalProperties)
                {
                    syntaxNode = OptionalInterfaceProperties.AddOptional(syntaxNode);
                }

                CSharpSyntaxTree  syntaxTree        = (CSharpSyntaxTree)syntaxNode.SyntaxTree;
                SyntaxTranslation syntaxTranslation = TF.Get(syntaxNode, null);
                CSharpCompilation csharpCompilation = CSharpCompilation.Create("TemporaryCompilation", new[] { syntaxTree });
                SemanticModel     semanticModel     = ((Compilation)csharpCompilation).GetSemanticModel(syntaxTree, false);
                syntaxTranslation.Compilation   = csharpCompilation;
                syntaxTranslation.SemanticModel = semanticModel;
                syntaxTranslation.ApplyPatch();
                return(syntaxTranslation.Translate());
            }
            catch (Exception ex)
            {
            }
            return((string)null);
        }