44using System . Diagnostics . CodeAnalysis ;
55using System . IO ;
66using System . Linq ;
7- using System . Reflection ;
8- using System . Text ;
97using System . Threading . Tasks ;
108using ApiCodeGenerator . Abstraction ;
119using ApiCodeGenerator . Core . NswagDocument ;
1210using ApiCodeGenerator . Core . NswagDocument . Converters ;
1311using Newtonsoft . Json ;
1412using Newtonsoft . Json . Linq ;
13+ using static ApiCodeGenerator . Core . LogCodes ;
1514
1615namespace ApiCodeGenerator . Core
1716{
@@ -69,45 +68,45 @@ internal GenerationTask(
6968 /// Генерирует код и сохраняет его в указанный файл.
7069 /// </summary>
7170 /// <param name="nswagFilePath">Путь к файлу настроек генератора.</param>
72- /// <param name="openApiFilePath ">Путь к файлу документа OpenApi .</param>
71+ /// <param name="apiDocumentPath ">Путь к файлу документа Api .</param>
7372 /// <param name="outFilePath">Путь к фалу с результатами генерации.</param>
7473 /// <param name="variables">Перечень пар ключ=значение разделенныз запятой.</param>
7574 /// <param name="baseNswagFilePath">Файл базовых настроек.</param>
7675 /// <returns>True если процесс генерации успешно завершен.</returns>
7776 public async Task < bool > ExecuteAsync ( string nswagFilePath ,
78- string openApiFilePath ,
77+ string apiDocumentPath ,
7978 string outFilePath ,
8079 string ? variables = null ,
8180 string ? baseNswagFilePath = null )
8281 {
8382 if ( ! _fileProvider . Exists ( nswagFilePath ) )
8483 {
85- Log ? . LogError ( null , "File '{0}' not found." , nswagFilePath ) ;
84+ Log ? . LogError ( FileNotFound , nswagFilePath , message : "File '{0}' not found." , messageArgs : nswagFilePath ) ;
8685 return false ;
8786 }
8887
8988 // System.Diagnostics.Debugger.Launch();
9089 var vars = ParseVariables ( variables ) ;
91- vars [ "InputJson" ] = openApiFilePath ;
90+ vars [ "InputJson" ] = apiDocumentPath ;
9291 vars [ "OutFile" ] = outFilePath ;
9392 var roVariables = new ReadOnlyDictionary < string , string > ( vars ) ;
9493
95- Log ? . LogMessage ( "Values of nswag variables" ) ;
96- Log ? . LogMessage ( string . Join ( Environment . NewLine , vars . Select ( _ => $ "\t [{ _ . Key } ] = { _ . Value } ") ) ) ;
94+ LogMessage ( "Values of nswag variables" ) ;
95+ LogMessage ( string . Join ( Environment . NewLine , vars . Select ( _ => $ "\t [{ _ . Key } ] = { _ . Value } ") ) ) ;
9796
9897 JObject ? baseNswagDocument = LoadBaseNswag ( baseNswagFilePath ) ;
9998 var nswagDocument = _documentFactory . LoadNswagDocument ( nswagFilePath , roVariables , baseNswagDocument ) ;
10099
101100 var generatorSettings = nswagDocument . CodeGenerators . FirstOrDefault ( ) ;
102101 if ( generatorSettings . Key is null )
103102 {
104- Log ? . LogWarning ( nswagFilePath , "Nswag not contains codeGenerator definition. Skip generation." ) ;
103+ Log ? . LogWarning ( NotDefineGenerator , nswagFilePath , "Nswag not contains codeGenerator definition. Skip generation." ) ;
105104 return true ;
106105 }
107106
108107 if ( ! _extensions . CodeGenerators . TryGetValue ( generatorSettings . Key , out var contentGeneratorFactory ) )
109108 {
110- Log ? . LogError ( nswagFilePath , $ "Unable find generator { generatorSettings . Key } . Check package references.") ;
109+ Log ? . LogError ( GenNotFound , nswagFilePath , $ "Unable find generator { generatorSettings . Key } . Check package references.") ;
111110 return false ;
112111 }
113112
@@ -117,38 +116,41 @@ public async Task<bool> ExecuteAsync(string nswagFilePath,
117116 {
118117 if ( context . DocumentReader is null )
119118 {
120- Log ? . LogWarning ( nswagFilePath , "Source not set. Skip generation." ) ;
119+ Log ? . LogWarning ( NotSetInput , nswagFilePath , "Source not set. Skip generation." ) ;
121120 return true ;
122121 }
123122
124123 try
125124 {
126- Log ? . LogMessage ( $ "Use settings: { generatorSettings . Key } ") ;
125+ LogMessage ( $ "Use settings: { generatorSettings . Key } ") ;
127126 var contentGenerator = await contentGeneratorFactory . Invoke ( context ) ;
128127
129- Log ? . LogMessage ( "Generate content for file '{0}'" , outFilePath ) ;
128+ LogMessage ( "Generate content for file '{0}'" , outFilePath ) ;
130129 var code = contentGenerator . Generate ( ) ;
131130
132131 try
133132 {
134- Log ? . LogMessage ( "Write file '{0}'" , outFilePath ) ;
133+ LogMessage ( "Write file '{0}'" , outFilePath ) ;
135134 await _fileProvider . WriteAllTextAsync ( outFilePath , code ) ;
136135 }
137136 catch ( Exception ex )
138137 {
139- Log ? . LogError ( "Unable write file. Error:" , ex . Message ) ;
138+ Log ? . LogError ( WriteFileErr , outFilePath , "Unable write file. Error: {0} " , ex . Message ) ;
140139 }
141140 }
142141 catch ( InvalidOperationException ex )
143142 {
144- Log ? . LogError ( nswagFilePath , ex . Message ) ;
143+ Log ? . LogError ( GenerationErr , nswagFilePath , ex . Message ) ;
145144 return false ;
146145 }
147146
148147 return true ;
149148 }
150149
151150 return false ;
151+
152+ void LogMessage ( string message , params object [ ] messageArgs )
153+ => Log ? . LogMessage ( null , nswagFilePath , message , messageArgs ) ;
152154 }
153155
154156 private async Task < GeneratorContext ? > CreateGenerationContext (
@@ -175,7 +177,7 @@ public async Task<bool> ExecuteAsync(string nswagFilePath,
175177
176178 if ( result is not null && ! string . IsNullOrEmpty ( result . Error ) )
177179 {
178- Log ? . LogError ( result . FilePath ?? nswagFilePath , result . Error ! ) ;
180+ Log ? . LogError ( DocumentOpenErr , result . FilePath ?? nswagFilePath , result . Error ! ) ;
179181 return null ;
180182 }
181183
0 commit comments