1111using System . Linq ;
1212using System . Threading ;
1313using System . Threading . Tasks ;
14+ using LanguageExt . UnsafeValueAccess ;
1415
1516namespace publisher ;
1617
@@ -182,7 +183,9 @@ public static void ConfigureDeleteGatewayApis(IHostApplicationBuilder builder)
182183 private static DeleteGatewayApis GetDeleteGatewayApis ( IServiceProvider provider )
183184 {
184185 var getPublisherFiles = provider . GetRequiredService < GetPublisherFiles > ( ) ;
185- var tryParseName = provider . GetRequiredService < TryParseGatewayApiName > ( ) ;
186+ var tryParseGatewayApiName = provider . GetRequiredService < TryParseGatewayApiName > ( ) ;
187+ var tryParseApiName = provider . GetRequiredService < TryParseApiName > ( ) ;
188+ var serviceDirectory = provider . GetRequiredService < ManagementServiceDirectory > ( ) ;
186189 var isNameInSourceControl = provider . GetRequiredService < IsGatewayApiNameInSourceControl > ( ) ;
187190 var delete = provider . GetRequiredService < DeleteGatewayApi > ( ) ;
188191 var activitySource = provider . GetRequiredService < ActivitySource > ( ) ;
@@ -194,8 +197,15 @@ private static DeleteGatewayApis GetDeleteGatewayApis(IServiceProvider provider)
194197
195198 logger . LogInformation ( "Deleting gateway apis..." ) ;
196199
197- await getPublisherFiles ( )
198- . Choose ( tryParseName . Invoke )
200+ var publisherFiles = getPublisherFiles ( ) ;
201+ var managedGatewayGatewayApis = publisherFiles . Select ( x => tryParseApiName ( x ) )
202+ . Where ( x => x . IsSome )
203+ . Select ( x => GatewayApiInformationFile . From ( x . ValueUnsafe ( ) ! , GatewayName . Managed , serviceDirectory )
204+ . ToFileInfo ( ) ) ;
205+
206+ await publisherFiles
207+ . Concat ( managedGatewayGatewayApis )
208+ . Choose ( tryParseGatewayApiName . Invoke )
199209 . Where ( api => isNameInSourceControl ( api . Name , api . GatewayName ) is false )
200210 . Distinct ( )
201211 . IterParallel ( delete . Invoke , cancellationToken ) ;
0 commit comments