Esempio n. 1
0
        public async Task <LevyDeclarations> Get(string payeScheme)
        {
            _logger.Debug($"IApprenticeshipLevyApiClient.GetEmployerLevyDeclarations(\"{payeScheme}\");");

            try
            {
                _levyApiClient = await _levyTokenHttpClientFactory.GetLevyHttpClient();

                var response = await _levyApiClient.GetEmployerLevyDeclarations(payeScheme);

                if (response != null)
                {
                    var filteredDeclarations = GetFilteredDeclarations(response.Declarations);
                    response.Declarations = filteredDeclarations.OrderByDescending(x => x.SubmissionTime).ThenByDescending(x => x.Id).ToList();
                }

                return(response);
            }
            catch (ApiHttpException ex)
            {
                var properties = new Dictionary <string, object>
                {
                    { "RequestCtx.StatusCode", ex.HttpCode }
                };
                _logger.Error(ex, "Issue retrieving levy declarations", properties);
                throw;
            }
        }
        public HmrcService(
            IHmrcConfiguration configuration,
            IHttpClientWrapper httpClientWrapper,
            IApprenticeshipLevyApiClient apprenticeshipLevyApiClient,
            ITokenServiceApiClient tokenServiceApiClient,
            [RequiredPolicy(HmrcExecutionPolicy.Name)]
            ExecutionPolicy.ExecutionPolicy executionPolicy,
            IInProcessCache inProcessCache,
            IAzureAdAuthenticationService azureAdAuthenticationService,
            ILog log)
        {
            _configuration                = configuration;
            _httpClientWrapper            = httpClientWrapper;
            _apprenticeshipLevyApiClient  = apprenticeshipLevyApiClient;
            _tokenServiceApiClient        = tokenServiceApiClient;
            _executionPolicy              = executionPolicy;
            _inProcessCache               = inProcessCache;
            _azureAdAuthenticationService = azureAdAuthenticationService;
            _log = log;

            _httpClientWrapper.BaseUrl    = _configuration.BaseUrl;
            _httpClientWrapper.AuthScheme = "Bearer";
            _httpClientWrapper.MediaTypeWithQualityHeaderValueList = new List <MediaTypeWithQualityHeaderValue> {
                new MediaTypeWithQualityHeaderValue("application/vnd.hmrc.1.0+json")
            };
        }
Esempio n. 3
0
        public HmrcGateway(ITokenServiceApiClient tokenService, IApprenticeshipLevyApiClient apprenticeshipLevyService, ILog logger)
        {
            _tokenService = tokenService;
            _apprenticeshipLevyService = apprenticeshipLevyService;
            _logger = logger;

            _retryPolicy = GetRetryPolicy();
        }