public async Task <FWTObjectID> MatchAsync(StockportGovUK.NetStandard.Models.Verint.Organisation organisation) { _logger.LogDebug($"OrganisationService.MatchAsync - Organisation: {organisation.Name.Trim()}"); var search = new FWTPartySearch { SearchType = "organisation", Name = organisation.Name.Trim() }; if (!string.IsNullOrEmpty(organisation.Telephone)) { search.PhoneNumber = organisation.Telephone; } if (!string.IsNullOrEmpty(organisation.Email)) { search.EmailAddress = organisation.Email; } var searchResults = await _verintConnection.searchForPartyAsync(search); _logger.LogDebug($"OrganisationService.MatchAsync - SearchResults: { searchResults.FWTObjectBriefDetailsList.Count() }"); FWTObjectID matchingOrganisation = null; if (searchResults.FWTObjectBriefDetailsList.Any() && searchResults != null) { matchingOrganisation = await GetBestMatchingOrganisationAsync(searchResults.FWTObjectBriefDetailsList.Take(50).ToArray(), organisation); if (matchingOrganisation != null) { _logger.LogDebug($"OrganisationService.MatchAsync - Organisation Found: { matchingOrganisation.ObjectReference.First() }"); return(matchingOrganisation); } } _logger.LogDebug($"OrganisationService.MatchAsync - Organisation Not Found: { organisation.Name }"); return(null); }
private async Task <FWTObjectID> SearchAsync(FWTPartySearch searchCriteria, Customer customer) { searchCriteria.SearchType = "individual"; var matchingIndividuals = await _verintConnection.searchForPartyAsync(searchCriteria); _logger.LogDebug($"IndividualService.SearchIndividuals:{customer.Surname}: {matchingIndividuals.FWTObjectBriefDetailsList?.Count()} name matchings found for Customer"); FWTObjectID individual = null; if (matchingIndividuals.FWTObjectBriefDetailsList.Any() && matchingIndividuals != null) { individual = await GetBestMatchingAsync(matchingIndividuals.FWTObjectBriefDetailsList.Take(30).ToArray(), customer); } return(individual); }