Esempio n. 1
0
        public async Task <IEnumerable <OrganisationSearchResult> > SearchByNameAsync(string organisationName)
        {
            var orgSearch = new FWTPartySearch
            {
                SearchType = "organisation",
                Name       = organisationName
            };

            return(await DoOrganisationSearchAsync(orgSearch));
        }
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        private async Task <IEnumerable <OrganisationSearchResult> > DoOrganisationSearchAsync(FWTPartySearch orgSearch)
        {
            var orgSearchResults = await _verintConnection.searchForPartyAsync(orgSearch);

            var orgResults = orgSearchResults.FWTObjectBriefDetailsList.Select(result => new OrganisationSearchResult
            {
                Reference = result.ObjectID.ObjectReference[0],
                Name      = result.ObjectDescription,
                Address   = result.Details
            });

            return(orgResults);
        }