public override string ToCSharpCode(int padding = 0)
{
string paddingStr = String.Concat(Enumerable.Repeat(" ", padding));
List <string> lines = new List <string> ();
lines.AddRange(Packages.GetUsingStatements(Packages.GetPackage(name)));
if (Packages.IsInPackage(name))
{
lines.Add(paddingStr + "namespace " + Packages.GetPackage(name));
lines.Add(paddingStr + "{");
paddingStr += " ";
padding += 4;
}
lines.AddRange(Comments.CSharpComments(commentsKey, paddingStr));
lines.Add(paddingStr + Publicity.ToCode("", " ") + Virtuality.ToCode("", " ") + "enum " + name);
lines.Add(paddingStr + "{");
foreach (string literal in values)
{
lines.AddRange(Comments.CSharpComments(Comments.Key(name, literal), paddingStr + " "));
lines.Add(paddingStr + " " + literal + ",");
}
lines.Add(paddingStr + "}");
if (Packages.IsInPackage(name))
{
padding -= 4;
paddingStr = paddingStr.Substring(4);
lines.Add(paddingStr + "}");
}
return(string.Join("\n", lines));
}