public async Task <IResult <IProviderSearchResult> > GetProviderByPRNAsync(IProviderSearchCriteria criteria)
        {
            Throw.IfNull(criteria, nameof(criteria));
            _logger.LogMethodEnter();

            try
            {
                _logger.LogInformationObject("Provider search criteria.", criteria);
                _logger.LogInformationObject("Provider search URI", _getProviderByPRNUri);

                //var content = new StringContent(criteria.ToJson(), Encoding.UTF8, "application/json");
                HttpClient httpClient = new HttpClient();  // cos getting object disposed exception in file processor
                httpClient.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", _settings.ApiKey);
                var response = await httpClient.GetAsync(_getProviderByPRNUri + $"?PRN={criteria.Search}");

                _logger.LogHttpResponseMessage("Provider search service http response", response);

                if (response.IsSuccessStatusCode)
                {
                    var json = await response.Content.ReadAsStringAsync();

                    if (!json.StartsWith("["))
                    {
                        json = "[" + json + "]";
                    }

                    _logger.LogInformationObject("Provider search service json response", json);

                    var providers = JsonConvert.DeserializeObject <IEnumerable <Provider> >(json);

                    var searchResult = new ProviderSearchResult(providers)
                    {
                        Value = providers
                    };

                    return(Result.Ok <IProviderSearchResult>(searchResult));
                }
                else
                {
                    return(Result.Fail <IProviderSearchResult>("Provider search service unsuccessful http response"));
                }
            }
            catch (HttpRequestException hre)
            {
                _logger.LogException("Provider search service http request error", hre);
                return(Result.Fail <IProviderSearchResult>("Provider search service http request error."));
            }
            catch (Exception e)
            {
                _logger.LogException("Provider search service unknown error.", e);

                return(Result.Fail <IProviderSearchResult>("Provider search service unknown error."));
            }
            finally
            {
                _logger.LogMethodExit();
            }
        }
        internal static string ToJson(this IProviderSearchCriteria extendee)
        {
            ProviderSearchJson json = new ProviderSearchJson
            {
                PRN = extendee.Search
            };
            var result = JsonConvert.SerializeObject(json);

            return(result);
        }