public async Task <ApiResponseContainer <CompanyBasicV2> > SearchCompanies(SearchCompaniesParameters parameters) { var endpoint = $"{_config.Endpoint}/search/companies"; // null checks var queryParams = new Dictionary <string, string>(); if (!string.IsNullOrEmpty(parameters.Context)) { queryParams.Add("context", parameters.Context); } if (!string.IsNullOrEmpty(parameters.Query)) { queryParams.Add("q", parameters.Query); } if (!string.IsNullOrEmpty(parameters.Rsin)) { queryParams.Add("rsin", parameters.Rsin); } if (!string.IsNullOrEmpty(parameters.Site)) { queryParams.Add("context", parameters.Site); } if (!string.IsNullOrEmpty(parameters.BranchNumber)) { queryParams.Add("branchnumber", parameters.BranchNumber); } if (!string.IsNullOrEmpty(parameters.KvkNumber)) { queryParams.Add("kvknumber", parameters.KvkNumber); } if (parameters.IncludeInactiveRegistrations.HasValue) { queryParams.Add("includeInactiveRegistrations", parameters.IncludeInactiveRegistrations.ToString().ToLower()); } if (parameters.RestrictToMainBranch.HasValue) { queryParams.Add("restrictToMainBranch", parameters.RestrictToMainBranch.ToString().ToLower()); } // validation if (string.IsNullOrEmpty(parameters.Query)) { throw new Exception("Parameter 'q' is required"); } return(await _Execute <ApiResponseContainer <CompanyBasicV2> >(endpoint, parameters : queryParams)); }
public async Task SearchCompanies_Should_Success() { var expectedName = "test"; var client = new KvkApiClient(_config); var request = new SearchCompaniesParameters() { Query = expectedName }; var target = await client.SearchCompanies(request); target.Should().NotBeNull(); target.Data.Items.Count.Should().BeGreaterOrEqualTo(1); foreach (var result in target.Data.Items) { result.TradeNames.BusinessName.ToLowerInvariant().Should().Contain(expectedName.ToLowerInvariant()); } }