static string InnerBuildCSharpClass(string className, IList <TableFieldSchema> fields, Dictionary <string, string> innerClasses, DuplicateNamingStorage namingStorage) { var props = fields.Select(x => { var name = x.Name; if (ReservedIdentifiers.Contains(name)) { name = "@" + name; } var type = ToCSharpType(name, x.Type, x.Mode); if (x.Type == "RECORD") { var innerStoreCount = namingStorage.StoreName(name); var newName = name; if (innerStoreCount != -1) { newName += "__" + innerStoreCount; } type = newName; innerClasses[newName] = InnerBuildCSharpClass(newName, x.Fields, innerClasses, namingStorage); } return($" [ColumnName(\"{x.Name}\")]public {type} {name} {{ get; set; }}"); }); var format = @"public class {0} {{ {1} }}"; var result = string.Format(format, className, string.Join(Environment.NewLine, props)); return(result); }
static string InnerBuildCSharpClass(string className, IList<TableFieldSchema> fields, Dictionary<string, string> innerClasses, DuplicateNamingStorage namingStorage) { var props = fields.Select(x => { var name = NameConverter.ConvertSafeName(x.Name); var type = ToCSharpType(name, x.Type, x.Mode); if (x.Type == "RECORD") { var innerStoreCount = namingStorage.StoreName(name); var newName = name; if (innerStoreCount != -1) { newName += "__" + innerStoreCount; } type = newName; innerClasses[newName] = InnerBuildCSharpClass(newName, x.Fields, innerClasses, namingStorage); } return $" [ColumnName(\"{x.Name}\")]public {type} {name} {{ get; set; }}"; }); var format = @"public class {0} {{ {1} }}"; var result = string.Format(format, className, string.Join(Environment.NewLine, props)); return result; }