11
11
using System . Linq ;
12
12
using System . Threading ;
13
13
using System . Threading . Tasks ;
14
+ using LanguageExt . UnsafeValueAccess ;
14
15
15
16
namespace publisher ;
16
17
@@ -182,7 +183,9 @@ public static void ConfigureDeleteGatewayApis(IHostApplicationBuilder builder)
182
183
private static DeleteGatewayApis GetDeleteGatewayApis ( IServiceProvider provider )
183
184
{
184
185
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 > ( ) ;
186
189
var isNameInSourceControl = provider . GetRequiredService < IsGatewayApiNameInSourceControl > ( ) ;
187
190
var delete = provider . GetRequiredService < DeleteGatewayApi > ( ) ;
188
191
var activitySource = provider . GetRequiredService < ActivitySource > ( ) ;
@@ -194,8 +197,15 @@ private static DeleteGatewayApis GetDeleteGatewayApis(IServiceProvider provider)
194
197
195
198
logger . LogInformation ( "Deleting gateway apis..." ) ;
196
199
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 )
199
209
. Where ( api => isNameInSourceControl ( api . Name , api . GatewayName ) is false )
200
210
. Distinct ( )
201
211
. IterParallel ( delete . Invoke , cancellationToken ) ;
0 commit comments