public async Task <IEnumerable <BulkRegisterOdsInstancesResult> > Execute(IEnumerable <IRegisterOdsInstanceModel> odsInstances, ApiMode mode, string userId, CloudOdsClaimSet cloudOdsClaimSet = null) { var results = new List <BulkRegisterOdsInstancesResult>(); foreach (var instance in odsInstances) { try { await _registerOdsInstanceCommand.Execute(instance, mode, userId, cloudOdsClaimSet); results.Add(new BulkRegisterOdsInstancesResult { NumericSuffix = instance.NumericSuffix.ToString(), Description = instance.Description, Success = true }); _logger.Info($"Ods instance({instance.NumericSuffix.ToString()}) registered successfully."); } catch (Exception ex) { results.Add(new BulkRegisterOdsInstancesResult { NumericSuffix = instance.NumericSuffix.ToString(), Description = instance.Description, Success = false, ErrorMessage = ex.Message }); _logger.Error($"Ods instance({instance.NumericSuffix.ToString()}) registration failed. Error: {ex.Message}"); } } return(results); }
public async Task <IEnumerable <BulkRegisterOdsInstancesResult> > Execute(IEnumerable <IRegisterOdsInstanceModel> odsInstances, IEnumerable <IRegisterOdsInstanceModel> filteredDataRecords, ApiMode mode, string userId, CloudOdsClaimSet cloudOdsClaimSet = null) { var results = new List <BulkRegisterOdsInstancesResult>(); var dataRecords = odsInstances.ToList(); var recordsToProcess = filteredDataRecords.ToList(); if (!recordsToProcess.Any()) { recordsToProcess = _dataFiltrationService.FilteredRecords(dataRecords, mode).ToList(); } var skippedRecords = dataRecords.Except(recordsToProcess); foreach (var skippedInstance in skippedRecords) { results.Add(new BulkRegisterOdsInstancesResult { NumericSuffix = skippedInstance.NumericSuffix.ToString(), Description = skippedInstance.Description, IndividualInstanceResult = IndividualInstanceResult.Skipped }); _logger.Info($"Ods instance({skippedInstance.NumericSuffix.ToString()}) was skipped because it was previously registered."); } foreach (var instance in recordsToProcess) { try { var odsInstanceRegisteredId = await _registerOdsInstanceCommand.Execute(instance, mode, userId, cloudOdsClaimSet); results.Add(new BulkRegisterOdsInstancesResult { NumericSuffix = instance.NumericSuffix.ToString(), Description = instance.Description, IndividualInstanceResult = IndividualInstanceResult.Succeded, OdsInstanceRegisteredId = odsInstanceRegisteredId }); _logger.Info($"Ods instance({instance.NumericSuffix.ToString()}) registered successfully."); } catch (Exception ex) { results.Add(new BulkRegisterOdsInstancesResult { NumericSuffix = instance.NumericSuffix.ToString(), Description = instance.Description, IndividualInstanceResult = IndividualInstanceResult.Failed, ErrorMessage = ex.Message }); _logger.Error($"Ods instance({instance.NumericSuffix.ToString()}) registration failed. Error: {ex.Message}"); } } return(results); }