Rosetta.Translation.EnumTranslationUnit.Translate C# (CSharp) Method

Translate() public method

Translate the unit into TypeScript.
public Translate ( ) : string
return string
        public string Translate()
        {
            FormatWriter writer = new FormatWriter()
            {
                Formatter = this.Formatter
            };

            // Opening declaration
            string enumVisibility = this.RenderedVisibilityModifier;

            if (this.injectedBefore == null)
            {
                writer.WriteLine("{0}{1} {2} {3}",
                text => ClassDeclarationCodePerfect.RefineDeclaration(text),
                enumVisibility,
                Lexems.EnumKeyword,
                this.Name.Translate(),
                Lexems.OpenCurlyBracket);
            }
            else
            {
                writer.WriteLine("{0} {1}{2} {3} {4}",
                text => ClassDeclarationCodePerfect.RefineDeclaration(text),
                this.injectedBefore.Translate(),
                enumVisibility,
                Lexems.EnumKeyword,
                this.Name.Translate(),
                Lexems.OpenCurlyBracket);
            }

            if (this.ShouldRenderMembers)
            {
                var lastMember = this.members.Count() > 0 ? this.members.Last() : null;
                foreach (ITranslationUnit translationUnit in this.members)
                {
                    if ((object)translationUnit == (object)lastMember)
                    {
                        writer.WriteLine("{0}", translationUnit.Translate());
                    }
                    else
                    {
                        writer.WriteLine("{0}{1}", translationUnit.Translate(), Lexems.Comma);
                    }
                }
            }

            // Closing
            writer.WriteLine("{0}",
                text => ClassDeclarationCodePerfect.RefineDeclaration(text),
                Lexems.CloseCurlyBracket);

            return writer.ToString();
        }