internal RequestBuilder(
     ITimeProvider timeProvider,
     IEntityMapper entityMapper,
     IDbMultiEntityMethods dbContextService,
     IObcConfigurationProvider configurationProvider,
     IInstrumentationClient logger,
     IKeySecretReadOnlyProvider keySecretReadOnlyProvider,
     IApiClient apiClient,
     ICertificateReader certificateReader,
     IDbEntityRepository <BankClientProfile> clientProfileRepository,
     IDbEntityRepository <DomesticConsent> domesticConsentRepo,
     IDbEntityRepository <ApiProfile> apiProfileRepository,
     IKeySecretReadRepository <ActiveSoftwareStatementProfiles> activeSReadOnlyRepo,
     IKeySecretWriteRepository <ActiveSoftwareStatementProfiles> activeSrRepo,
     IKeySecretMultiItemReadRepository <SoftwareStatementProfile> sReadOnlyRepo,
     IKeySecretMultiItemWriteRepository <SoftwareStatementProfile> sRepo,
     ISoftwareStatementProfileService softwareStatementProfileService)
 {
     _certificateReader   = certificateReader.ArgNotNull(nameof(certificateReader));
     _timeProvider        = timeProvider.ArgNotNull(nameof(timeProvider));
     _entityMapper        = entityMapper.ArgNotNull(nameof(entityMapper));
     _dbContextService    = dbContextService;
     _activeSReadOnlyRepo = activeSReadOnlyRepo;
     _activeSRRepo        = activeSrRepo;
     _sReadOnlyRepo       = sReadOnlyRepo;
     _sRepo = sRepo;
     _softwareStatementProfileService = softwareStatementProfileService;
     _configurationProvider           = configurationProvider.ArgNotNull(nameof(configurationProvider));
     _logger = logger.ArgNotNull(nameof(logger));
     _keySecretReadOnlyProvider = keySecretReadOnlyProvider.ArgNotNull(nameof(keySecretReadOnlyProvider));
     _apiClient = apiClient.ArgNotNull(nameof(apiClient));
     _clientProfileRepository = clientProfileRepository.ArgNotNull(nameof(clientProfileRepository));
     _domesticConsentRepo     = domesticConsentRepo.ArgNotNull(nameof(domesticConsentRepo));
     _apiProfileRepository    = apiProfileRepository.ArgNotNull(nameof(apiProfileRepository));
 }
        public static Task <T> RequestJsonAsync <T>(
            this HttpRequestMessage request,
            IApiClient client,
            bool requestContentIsJson)
            where T : class
        {
            request.ArgNotNull(nameof(request));
            client.ArgNotNull(nameof(client));

            return(client.RequestJsonAsync <T>(request: request, requestContentIsJson: requestContentIsJson));
        }
 public RedirectCallbackHandler(
     IApiClient apiClient,
     IEntityMapper mapper,
     IDbEntityRepository <BankClientProfile> openBankingClientRepo,
     IDbEntityRepository <DomesticConsent> domesticConsentRepo,
     ISoftwareStatementProfileService softwareStatementProfileService,
     IDbMultiEntityMethods dbMultiEntityMethods,
     IDbEntityRepository <ApiProfile> apiProfileRepo)
 {
     _apiClient                       = apiClient.ArgNotNull(nameof(apiClient));
     _mapper                          = mapper.ArgNotNull(nameof(mapper));
     _openBankingClientRepo           = openBankingClientRepo.ArgNotNull(nameof(openBankingClientRepo));
     _domesticConsentRepo             = domesticConsentRepo.ArgNotNull(nameof(domesticConsentRepo));
     _softwareStatementProfileService = softwareStatementProfileService;
     _dbContextService                = dbMultiEntityMethods;
     _apiProfileRepo                  = apiProfileRepo;
 }