private string GetServiceUrl(Consul.IConsulClient consulClient, string requestedServiceName)
        {
            var services = consulClient.Agent.Services().Result;

            Consul.AgentService service = services.Response.Values.FirstOrDefault(x => x.Service == requestedServiceName);

            return((service != null) ?
                   $"{service.Address}:{service.Port}" : throw new ArgumentNullException(nameof(service)));
        }
        public PricingClient(IConfiguration configuration, Consul.IConsulClient consulClient)
        {
            //TODO: find better way to resolve hostname in http handler
            string baseUrl           = GetServiceUrl(consulClient, "pricing-service");
            string pricingServiceUrl = configuration.GetValue <string>("PricingServiceUri").Replace("pricing-service", baseUrl);

            HttpClient httpClient = new HttpClient()
            {
                BaseAddress = new Uri(pricingServiceUrl)
            };
            JsonSerializerSettings settings = new JsonSerializerSettings()
            {
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            };

            this._client = new RestClient(httpClient)
            {
                JsonSerializerSettings = settings
            }.For <IPricingClient>();
        }