public async Task <List <IronMountainResponseDto> > GetResourcePolicies(ISet <IronMountainRequestDto> policyRequestValues) { var retentionScheduleResponse = new List <IronMountainResponseDto>(); try { IronMountainRentionScheduleDto retentionSchedule = await GetAllRecordClasses(); foreach (var policyRequest in policyRequestValues) { List <RetentionClassPolicies> retentionClassPolicies = new List <RetentionClassPolicies>(); foreach (var category in policyRequest.dataCategories) { var dataCategoryId = category.Substring(category.LastIndexOf('/') + 1); var recordClass = GetRecordClassesByHierarchy(retentionSchedule.retentionSchedule, dataCategoryId).FirstOrDefault(); retentionClassPolicies = recordClass != null?mapRecordClasses(recordClass, retentionClassPolicies) : retentionClassPolicies; } IronMountainResponseDto ironMountainResponseDto = new IronMountainResponseDto(); ironMountainResponseDto.pidUri = policyRequest.pidUri; ironMountainResponseDto.retentionClassPolicies = retentionClassPolicies; retentionScheduleResponse.Add(ironMountainResponseDto); } } catch (SystemException ex) { _logger.LogError("Could not fetch retention schedule from IronMountain.", ex); } return(retentionScheduleResponse); }
public async Task <IronMountainRentionScheduleDto> GetAllRecordClasses() { var allRecordClassesObject = new IronMountainRentionScheduleDto(); try { allRecordClassesObject = await _ironMountainRepository.GetIronMountainData(); } catch (AuthenticationException ex) { _logger.LogError("An error occured to authenticate to iron mountain", ex); } return(allRecordClassesObject); }