public override void GenerateMigrationMetadataClass( string @namespace, string className, IMigrationMetadata migration, IndentedStringBuilder stringBuilder) { foreach (var ns in GetMetadataDefaultNamespaces() .Concat(ModelCodeGenerator.GetNamespaces(migration.TargetModel)) .OrderBy(n => n) .Distinct()) { stringBuilder .Append("using ") .Append(ns) .AppendLine(";"); } stringBuilder .AppendLine() .Append("namespace ") .AppendLine(@namespace) .AppendLine("{"); using (stringBuilder.Indent()) { stringBuilder .Append("public partial class ") .Append(className) .AppendLine(" : IMigrationMetadata") .AppendLine("{"); using (stringBuilder.Indent()) { GenerateMigrationProperty( "string IMigrationMetadata.MigrationId", () => stringBuilder .Append("return ") .Append(GenerateLiteral(migration.MigrationId)) .Append(";"), stringBuilder); stringBuilder.AppendLine().AppendLine(); GenerateMigrationProperty( "IModel IMigrationMetadata.TargetModel", () => ModelCodeGenerator.Generate(migration.TargetModel, stringBuilder), stringBuilder); } stringBuilder .AppendLine() .Append("}"); } stringBuilder .AppendLine() .Append("}"); }
public void Execute(GeneratorExecutionContext context) { if (!RegisterAttributes(context, out var receiver, out var compilation)) { return; } if (!context.AnalyzerConfigOptions.GlobalOptions.TryGetValue( BuildPropertyOutputPath, out string?typeScriptGeneratorOutputPath)) { return; } if (!Directory.Exists(typeScriptGeneratorOutputPath)) { Directory.CreateDirectory(typeScriptGeneratorOutputPath); } // get the newly bound attributes var includeAttributeSymbol = compilation !.GetTypeByMetadataName(IncludeAttributeFullName); if (includeAttributeSymbol is null) { throw new SymbolNotFoundException(); } var customNameAttributeSymbol = compilation !.GetTypeByMetadataName(CustomNameAttributeFullName); if (customNameAttributeSymbol is null) { throw new SymbolNotFoundException(); } ////CleanOutputFolders(TargetPath); // loop over the candidate fields, and keep the ones that are actually annotated var enumSymbols = FilterEnumSymbols(receiver !, compilation, includeAttributeSymbol !); if (enumSymbols.Count > 0) { var enumHelperGenerator = new EnumHelperGenerator(); enumHelperGenerator.Generate(typeScriptGeneratorOutputPath); } var enumCodeGenerator = new EnumCodeGenerator(); enumCodeGenerator.Generate( typeScriptGeneratorOutputPath, compilation !, enumSymbols); var classSymbols = FilterClassSymbols(receiver !, compilation, includeAttributeSymbol !); var modelCodeGenerator = new ModelCodeGenerator(); modelCodeGenerator.Generate(typeScriptGeneratorOutputPath, compilation, classSymbols); }
protected override async Task OnInitialization() { await base.OnInitialization(); ImportArgumentes = AsyncObservableCollection <TableImportArgumentsViewModel> .Create(); _modelGenerator = new ModelCodeGenerator(); _repositoryInterfaceGenerator = new RepositoryInterfaceCodeGenerator(); _linqRepositoryGenerator = new LinqRepositoryCodeGenerator(); _restRepositoryGenerator = new RestRepositoryCodeGenerator(); }
public override void GenerateMigrationMetadataClass( string @namespace, string className, MigrationInfo migration, Type contextType, IndentedStringBuilder stringBuilder) { Check.NotEmpty(@namespace, "namespace"); Check.NotEmpty(className, "className"); Check.NotNull(migration, "migration"); Check.NotNull(contextType, "contextType"); Check.NotNull(stringBuilder, "stringBuilder"); foreach (var ns in GetMetadataNamespaces(migration, contextType).OrderBy(n => n).Distinct()) { stringBuilder .Append("using ") .Append(ns) .AppendLine(";"); } stringBuilder .AppendLine() .Append("namespace ") .AppendLine(@namespace) .AppendLine("{"); using (stringBuilder.Indent()) { stringBuilder .Append("[ContextType(typeof(") .Append(contextType.GetNestedName()) .AppendLine("))]") .Append("public partial class ") .Append(className) .AppendLine(" : IMigrationMetadata") .AppendLine("{"); using (stringBuilder.Indent()) { GenerateMigrationProperty( "string IMigrationMetadata.MigrationId", () => stringBuilder .Append("return ") .Append(GenerateLiteral(migration.MigrationId)) .Append(";"), stringBuilder); stringBuilder.AppendLine().AppendLine(); GenerateMigrationProperty( "string IMigrationMetadata.ProductVersion", () => stringBuilder .Append("return ") .Append(GenerateLiteral(migration.ProductVersion)) .Append(";"), stringBuilder); stringBuilder.AppendLine().AppendLine(); GenerateMigrationProperty( "IModel IMigrationMetadata.TargetModel", () => ModelCodeGenerator.Generate(migration.TargetModel, stringBuilder), stringBuilder); } stringBuilder .AppendLine() .Append("}"); } stringBuilder .AppendLine() .Append("}"); }