@@ -21,38 +21,54 @@ public void Execute(GeneratorExecutionContext context)
2121
2222 string namespaceName = context . Compilation ? . AssemblyName ;
2323
24- var settings = context . AdditionalFiles . FirstOrDefault ( file =>
25- file . Path . EndsWith ( ".json" , StringComparison . InvariantCultureIgnoreCase )
26- &&
27- file . Path . IndexOf ( "appsettings" , StringComparison . InvariantCultureIgnoreCase ) > - 1
28- ) ;
24+ // var settings = context.AdditionalFiles.FirstOrDefault(file =>
25+ // file.Path.EndsWith(".json", StringComparison.InvariantCultureIgnoreCase)
26+ // &&
27+ // file.Path.IndexOf("appsettings", StringComparison.InvariantCultureIgnoreCase) > -1
28+ // );
2929
30- if ( settings == null )
30+ var allSettings = context . AdditionalFiles . Where (
31+ file =>
32+ {
33+ var f = context . AnalyzerConfigOptions . GetOptions ( file ) ;
34+ if ( ! f . TryGetValue ( "build_metadata.AdditionalFiles.generateAPI" , out string val ) )
35+ return false ;
36+
37+ return ( val == "true" ) ;
38+ }
39+ )
40+ ;
41+
42+ if ( ! allSettings . Any ( ) )
3143 {
3244 //do diagnostics
3345 return ;
3446 }
35- string nameSettings = Path . GetFileNameWithoutExtension ( settings . Path ) ;
36- //TODO : diagnostic
37- var jsonFileText = settings . GetText ( ) ;
38- if ( jsonFileText == null )
47+ foreach ( var settings in allSettings )
3948 {
40- //TODO: diagnostic
41- return ;
42- }
43- //var generatedCode = GenerateFile(jsonFileText.ToString(), namespaceName);
44- //var g = new GeneratorData();
45- //var generatedCode= g.GenerateFile(jsonFileText.ToString(),namespaceName);
46- //context.AddSource($"{nameSettings}.gen.cs", SourceText.From(generatedCode, Encoding.UTF8));
47- //var json = JsonDocument.Parse(jsonFileText.ToString());
4849
49- var g = new GeneratorFromJSON ( ) ;
50- var generatedCode = g . GenerateFile ( jsonFileText . ToString ( ) , nameSettings , namespaceName , "appsettings.txt" ) ;
51- context . AddSource ( $ "{ nameSettings } .gen.cs", SourceText . From ( generatedCode , Encoding . UTF8 ) ) ;
5250
53- generatedCode = g . GenerateFile ( jsonFileText . ToString ( ) , nameSettings , namespaceName , "Controller.txt" ) ;
54- context . AddSource ( $ "{ nameSettings } Controller.gen.cs", SourceText . From ( generatedCode , Encoding . UTF8 ) ) ;
51+ string nameSettings = Path . GetFileNameWithoutExtension ( settings . Path ) ;
52+ //TODO : diagnostic
53+ var jsonFileText = settings . GetText ( ) ;
54+ if ( jsonFileText == null )
55+ {
56+ //TODO: diagnostic
57+ return ;
58+ }
59+ //var generatedCode = GenerateFile(jsonFileText.ToString(), namespaceName);
60+ //var g = new GeneratorData();
61+ //var generatedCode= g.GenerateFile(jsonFileText.ToString(),namespaceName);
62+ //context.AddSource($"{nameSettings}.gen.cs", SourceText.From(generatedCode, Encoding.UTF8));
63+ //var json = JsonDocument.Parse(jsonFileText.ToString());
64+
65+ var g = new GeneratorFromJSON ( ) ;
66+ var generatedCode = g . GenerateFile ( jsonFileText . ToString ( ) , nameSettings , namespaceName , "appsettings.txt" ) ;
67+ context . AddSource ( $ "{ nameSettings } .gen.cs", SourceText . From ( generatedCode , Encoding . UTF8 ) ) ;
5568
69+ generatedCode = g . GenerateFile ( jsonFileText . ToString ( ) , nameSettings , namespaceName , "Controller.txt" ) ;
70+ context . AddSource ( $ "{ nameSettings } Controller.gen.cs", SourceText . From ( generatedCode , Encoding . UTF8 ) ) ;
71+ }
5672 }
5773
5874 }
0 commit comments