@@ -101,6 +101,7 @@ public async Task<int> InvokeAsync(InvocationContext context)
101
101
var sinkConfig = GetSinkConfig ( combinedConfig ) ;
102
102
var operationConfigs = combinedConfig . GetSection ( "Operations" ) ;
103
103
var operations = operationConfigs ? . GetChildren ( ) . ToList ( ) ;
104
+ bool succeeded = true ;
104
105
if ( operations ? . Any ( ) == true )
105
106
{
106
107
foreach ( var operationConfig in operations )
@@ -117,19 +118,19 @@ public async Task<int> InvokeAsync(InvocationContext context)
117
118
{
118
119
sinkBuilder . AddConfiguration ( operationSink ) ;
119
120
}
120
- await ExecuteDataTransferOperation ( source ,
121
- sourceBuilder . Build ( ) ,
122
- sink ,
123
- sinkBuilder . Build ( ) ,
124
- cancellationToken ) ;
121
+ succeeded &= await ExecuteDataTransferOperation ( source ,
122
+ sourceBuilder . Build ( ) ,
123
+ sink ,
124
+ sinkBuilder . Build ( ) ,
125
+ cancellationToken ) ;
125
126
}
126
127
}
127
128
else
128
129
{
129
- await ExecuteDataTransferOperation ( source , sourceConfig , sink , sinkConfig , cancellationToken ) ;
130
+ succeeded = await ExecuteDataTransferOperation ( source , sourceConfig , sink , sinkConfig , cancellationToken ) ;
130
131
}
131
132
132
- return 0 ;
133
+ return succeeded ? 0 : 1 ;
133
134
}
134
135
catch ( OperationCanceledException ex )
135
136
{
@@ -158,7 +159,7 @@ private static IConfigurationSection GetSinkConfig(IConfiguration combinedConfig
158
159
return config ;
159
160
}
160
161
161
- private async Task ExecuteDataTransferOperation ( IDataSourceExtension source , IConfiguration sourceConfig , IDataSinkExtension sink , IConfiguration sinkConfig , CancellationToken cancellationToken )
162
+ private async Task < bool > ExecuteDataTransferOperation ( IDataSourceExtension source , IConfiguration sourceConfig , IDataSinkExtension sink , IConfiguration sinkConfig , CancellationToken cancellationToken )
162
163
{
163
164
_logger . LogDebug ( "Loaded {SettingCount} settings for source {SourceName}:\n \t \t {SettingList}" ,
164
165
sourceConfig . AsEnumerable ( ) . Count ( ) ,
@@ -178,14 +179,12 @@ private async Task ExecuteDataTransferOperation(IDataSourceExtension source, ICo
178
179
await sink . WriteAsync ( data , sinkConfig , source , _loggerFactory . CreateLogger ( sink . GetType ( ) . Name ) , cancellationToken ) ;
179
180
180
181
_logger . LogInformation ( "Data transfer complete" ) ;
182
+ return true ;
181
183
}
182
184
catch ( Exception ex )
183
185
{
184
186
_logger . LogError ( ex , "Data transfer failed" ) ;
185
- if ( ex is OperationCanceledException )
186
- {
187
- throw ;
188
- }
187
+ return false ;
189
188
}
190
189
}
191
190
0 commit comments