Beispiel #1
0
        /// <summary>
        /// Our Company API lets you lookup company data via a domain name.
        /// </summary>
        /// <param name="enrichmentRequest"></param>
        /// <returns></returns>
        public async Task <RestResponse <Company> > GetEnrichmentCompanyAsync(EnrichmentCompanyRequest enrichmentRequest)
        {
            if (enrichmentRequest == null)
            {
                throw new ArgumentNullException(nameof(enrichmentRequest));
            }

            var request = new RestRequest(EnrichmentCompanyUrl, ContentTypes.Json);

            request.AddQueryString("domain", enrichmentRequest.CompanyDomain);
            BuildRequestQueryString(request, enrichmentRequest, new string[] { nameof(EnrichmentCompanyRequest.CompanyDomain) });
            return(await SendAsync <Company>(request).ConfigureAwait(false));
        }
Beispiel #2
0
        public void BuildRequestQueryString_UsesCorrectNames()
        {
            var client            = new ClearbitClient(Configuration["ClearbitApiKey"]);
            var enrichmentRequest = new EnrichmentCompanyRequest("nimbleapps.cloud")
            {
                CompanyName = "CloudNimble"
            };
            var request = new RestRequest("");

            client.BuildRequestQueryString(request, enrichmentRequest, new string[] { });

            var prop       = typeof(RestRequest).GetProperty("UrlSegments", BindingFlags.NonPublic | BindingFlags.Instance);
            var getter     = prop.GetGetMethod(nonPublic: true);
            var parameters = (IList)getter.Invoke(request, null);

            parameters.Should().HaveCount(2);

            var one = ToDynamic(parameters[1]);

            ((string)one.Key).Should().Be("domain");
        }