/// <summary>Populates the metadata.</summary> /// <param name="metadata">The metadata.</param> /// <param name="resultItem">The result item.</param> private void PopulateMetadata(IEntityMetadata metadata, IExternalSearchQueryResult <MappingResponse> resultItem) { var code = this.GetOriginEntityCode(resultItem); var vocab = new OpenfigiVocabulary(); metadata.EntityType = EntityType.Organization; metadata.Name = resultItem.Data.Response.Name; metadata.Description = resultItem.Data.Response.SecurityDescription; metadata.OriginEntityCode = code; metadata.Codes.Add(code); metadata.Properties[vocab.Figi] = resultItem.Data.Response.Figi.PrintIfAvailable(); metadata.Properties[vocab.Name] = resultItem.Data.Response.Name.PrintIfAvailable(); metadata.Properties[vocab.Ticker] = resultItem.Data.Response.Ticker.PrintIfAvailable(); metadata.Properties[vocab.ExchCode] = resultItem.Data.Response.ExchCode.PrintIfAvailable(); metadata.Properties[vocab.CompositeFIGI] = resultItem.Data.Response.CompositeFIGI.PrintIfAvailable(); metadata.Properties[vocab.UniqueID] = resultItem.Data.Response.UniqueID.PrintIfAvailable(); metadata.Properties[vocab.SecurityType] = resultItem.Data.Response.SecurityType.PrintIfAvailable(); metadata.Properties[vocab.MarketSector] = resultItem.Data.Response.MarketSector.PrintIfAvailable(); metadata.Properties[vocab.ShareClassFIGI] = resultItem.Data.Response.ShareClassFIGI.PrintIfAvailable(); metadata.Properties[vocab.UniqueIDFutOpt] = resultItem.Data.Response.UniqueIDFutOpt.PrintIfAvailable(); metadata.Properties[vocab.SecurityType2] = resultItem.Data.Response.SecurityType2.PrintIfAvailable(); metadata.Properties[vocab.SecurityDescription] = resultItem.Data.Response.SecurityDescription.PrintIfAvailable(); }
/// <summary>Gets the primary entity metadata.</summary> /// <param name="context">The context.</param> /// <param name="result">The result.</param> /// <param name="request">The request.</param> /// <returns>The primary entity metadata.</returns> public override IEntityMetadata GetPrimaryEntityMetadata(ExecutionContext context, IExternalSearchQueryResult result, IExternalSearchRequest request) { if (context == null) { throw new ArgumentNullException(nameof(context)); } if (result == null) { throw new ArgumentNullException(nameof(result)); } if (request == null) { throw new ArgumentNullException(nameof(request)); } using (context.Log.BeginScope("{0} {1}: request {2}, result {3}", GetType().Name, "GetPrimaryEntityMetadata", request, result)) { var metadata = CreateMetadata(result.As <VatLayerResponse>()); context.Log.LogInformation("Primary entity meta data created, Name: '{Name}' OriginEntityCode: '{OriginEntityCode}'", metadata.Name, metadata.OriginEntityCode.Origin.Code); return(metadata); } }
/// <summary>Populates the metadata.</summary> /// <param name="metadata">The metadata.</param> /// <param name="resultItem">The result item.</param> private void PopulateMetadata(IEntityMetadata metadata, IExternalSearchQueryResult <Result> resultItem, IExternalSearchRequest request) { if (resultItem == null) { throw new ArgumentNullException(nameof(resultItem)); } var code = GetOriginEntityCode(resultItem); var data = resultItem.Data; metadata.Name = request.QueryParameters.GetValue(Core.Data.Vocabularies.Vocabularies.CluedInOrganization.OrganizationName, new HashSet <string>()).FirstOrDefault(); metadata.EntityType = EntityType.Organization; metadata.CreatedDate = resultItem.CreatedDate; metadata.OriginEntityCode = code; metadata.Codes.Add(code); metadata.Properties[DamaVocabularies.Organization.AdressingStreetName] = data.ActualAddress.AdressingStreetName.PrintIfAvailable(); metadata.Properties[DamaVocabularies.Organization.Door] = data.ActualAddress.Door.PrintIfAvailable(); metadata.Properties[DamaVocabularies.Organization.Floor] = data.ActualAddress.Floor.PrintIfAvailable(); metadata.Properties[DamaVocabularies.Organization.HouseNumber] = data.ActualAddress.HouseNumber.PrintIfAvailable(); metadata.Properties[DamaVocabularies.Organization.Id] = data.ActualAddress.Id.PrintIfAvailable(); metadata.Properties[DamaVocabularies.Organization.Zipcode] = data.ActualAddress.Zipcode.PrintIfAvailable(); metadata.Properties[DamaVocabularies.Organization.ZipcodeName] = data.ActualAddress.Zipcodename.PrintIfAvailable(); metadata.Properties[DamaVocabularies.Organization.Status] = data.ActualAddress.Status.PrintIfAvailable(); metadata.Properties[DamaVocabularies.Organization.AdditionalCityName] = data.ActualAddress.AdditionalCityName.PrintIfAvailable(); metadata.Properties[DamaVocabularies.Organization.StreetName] = data.ActualAddress.StreetName.PrintIfAvailable(); metadata.Properties[DamaVocabularies.Organization.EffectiveEnd] = data.ActualAddress.EffectiveEnd.PrintIfAvailable(); metadata.Properties[DamaVocabularies.Organization.EffectiveStart] = data.ActualAddress.EffectiveStart.PrintIfAvailable(); metadata.Uri = new Uri(data.ActualAddress.Href); }
/// <summary>Creates the metadata.</summary> /// <param name="resultItem">The result item.</param> /// <returns>The metadata.</returns> private IEntityMetadata CreateMetadata(IExternalSearchQueryResult <MappingResponse> resultItem) { var metadata = new EntityMetadataPart(); this.PopulateMetadata(metadata, resultItem); return(metadata); }
private static IEntityMetadata CreateMetadata(IExternalSearchQueryResult <VatLayerResponse> resultItem) { var metadata = new EntityMetadataPart(); PopulateMetadata(metadata, resultItem); return(metadata); }
/// <summary>Creates the metadata.</summary> /// <param name="resultItem">The result item.</param> /// <returns>The metadata.</returns> private IEntityMetadata CreateMetadata(IExternalSearchQueryResult <LibpostalResponse> resultItem, IExternalSearchRequest request) { var metadata = new EntityMetadataPart(); PopulateMetadata(metadata, resultItem, request); return(metadata); }
/// <summary>Creates the metadata.</summary> /// <param name="resultItem">The result item.</param> /// <returns>The metadata.</returns> private IEntityMetadata CreateMetadata(IExternalSearchQueryResult <CompanyNew> resultItem) { var metadata = new EntityMetadataPart(); PopulateMetadata(metadata, resultItem.Data); return(metadata); }
/// <summary>Creates the metadata.</summary> /// <param name="resultItem">The result item.</param> /// <returns>The metadata.</returns> private IEntityMetadata CreateMetadata(IExternalSearchQueryResult <CompanyAutocompleteResult> resultItem) { var metadata = new EntityMetadataPart(); this.PopulateMetadata(metadata, resultItem); return(metadata); }
/// <summary>Gets the origin entity code.</summary> /// <param name="resultItem">The result item.</param> /// <returns>The origin entity code.</returns> private EntityCode GetOriginEntityCode(IExternalSearchQueryResult <Result> resultItem) { if (resultItem == null) { throw new ArgumentNullException(nameof(resultItem)); } return(new EntityCode(EntityType.Organization, GetCodeOrigin(), resultItem.Data.Address.AccessAddressId)); }
/// <summary>Gets the origin entity code.</summary> /// <param name="resultItem">The result item.</param> /// <returns>The origin entity code.</returns> private EntityCode GetOriginEntityCode(IExternalSearchQueryResult <PermIdSocialResponse> resultItem) { if (resultItem == null) { throw new ArgumentNullException(nameof(resultItem)); } return(new EntityCode(EntityType.Organization, this.GetCodeOrigin(), resultItem.Data.PermId.First())); }
private void PopulateMetadata(IEntityMetadata metadata, IExternalSearchQueryResult <User> resultItem) { var code = GetOriginEntityCode(resultItem); metadata.EntityType = EntityType.Person; metadata.Name = resultItem.Data.name; metadata.OriginEntityCode = code; metadata.Codes.Add(code); metadata.Properties[HelloWorldVocabularies.User.Email] = resultItem.Data.email; }
public void LogResult(ExecutionContext context, IExternalSearchQuery query, IExternalSearchQueryResult result) { using (var systemContext = context.ApplicationContext.System.CreateExecutionContext()) { var dataStore = systemContext.Organization.DataStores.GetDataStore <ExternalSearchClearBitLogRecord>(); var resultItem = result.As <CompanyAutocompleteResult>(); var record = this.CreateRecord(context, query, result, resultItem.Data); dataStore.InsertOrUpdate(systemContext, record); } }
/// <summary>Creates the metadata.</summary> /// <param name="resultItem">The result item.</param> /// <returns>The metadata.</returns> private IEntityMetadata CreateMetadata(IExternalSearchQueryResult <PermIdSocialResponse> resultItem) { if (resultItem == null) { throw new ArgumentNullException(nameof(resultItem)); } var metadata = new EntityMetadataPart(); this.PopulateMetadata(metadata, resultItem); return(metadata); }
/// <summary>Creates the metadata.</summary> /// <param name="resultItem">The result item.</param> /// <returns>The metadata.</returns> private IEntityMetadata CreateMetadata(IExternalSearchQueryResult <Result> resultItem, IExternalSearchRequest request) { if (resultItem == null) { throw new ArgumentNullException(nameof(resultItem)); } var metadata = new EntityMetadataPart(); PopulateMetadata(metadata, resultItem, request); return(metadata); }
/// <summary>Populates the metadata.</summary> /// <param name="metadata">The metadata.</param> /// <param name="resultItem">The result item.</param> private void PopulateMetadata(IEntityMetadata metadata, IExternalSearchQueryResult <CompanyAutocompleteResult> resultItem) { var code = this.GetOriginEntityCode(resultItem); metadata.EntityType = Core.Data.EntityType.Organization; metadata.Name = resultItem.Data.Name; metadata.OriginEntityCode = code; metadata.Codes.Add(code); metadata.Codes.Add(new EntityCode(EntityType.Organization, CodeOrigin.CluedIn.CreateSpecific("website"), resultItem.Data.Domain)); metadata.Properties[ClearBitVocabulary.Organization.Domain] = resultItem.Data.Domain; metadata.Properties[ClearBitVocabulary.Organization.Logo] = resultItem.Data.Logo; }
public void LogResult(ExecutionContext context, IExternalSearchQuery query, IExternalSearchQueryResult result) { using (var systemContext = context.ApplicationContext.System.CreateExecutionContext()) { var dataStore = systemContext.Organization.DataStores.GetDataStore <ExternalSearchGoogleKnowledgeGraphLogRecord>(); var resultItem = result.As <Result>(); if (resultItem.Data.id == null && resultItem.Data.name == null && resultItem.Data.description == null) { return; } var record = this.CreateRecord(context, query, result, resultItem.Data); dataStore.InsertOrUpdate(systemContext, record); } }
private static void PopulateMetadata(IEntityMetadata metadata, IExternalSearchQueryResult <VatLayerResponse> resultItem) { var code = GetOriginEntityCode(resultItem); metadata.EntityType = EntityType.Organization; metadata.Name = resultItem.Data.CompanyName; metadata.OriginEntityCode = code; metadata.Codes.Add(code); metadata.Properties[VatLayerVocabulary.Organization.Name] = resultItem.Data.CompanyName; metadata.Properties[VatLayerVocabulary.Organization.CountryCode] = resultItem.Data.CountryCode; metadata.Properties[VatLayerVocabulary.Organization.CvrNumber] = resultItem.Data.VatNumber; metadata.Properties[VatLayerVocabulary.Organization.FullVAT] = resultItem.Data.Query; metadata.Properties[VatLayerVocabulary.Organization.Address] = resultItem.Data.CompanyAddress; }
/// <summary>Builds the clues.</summary> /// <param name="context">The context.</param> /// <param name="query">The query.</param> /// <param name="result">The result.</param> /// <param name="request">The request.</param> /// <returns>The clues.</returns> public override IEnumerable <Clue> BuildClues(ExecutionContext context, IExternalSearchQuery query, IExternalSearchQueryResult result, IExternalSearchRequest request) { if (context == null) { throw new ArgumentNullException(nameof(context)); } if (query == null) { throw new ArgumentNullException(nameof(query)); } if (result == null) { throw new ArgumentNullException(nameof(result)); } if (request == null) { throw new ArgumentNullException(nameof(request)); } using (context.Log.BeginScope("{0} {1}: query {2}, request {3}, result {4}", GetType().Name, "BuildClues", query, request, result)) { var resultItem = result.As <VatLayerResponse>(); var dirtyClue = request.CustomQueryInput.ToString(); var code = GetOriginEntityCode(resultItem); var clue = new Clue(code, context.Organization); if (!string.IsNullOrEmpty(dirtyClue)) { clue.Data.EntityData.Codes.Add(new EntityCode(EntityType.Organization, CodeOrigin.CluedIn.CreateSpecific("vatlayer"), dirtyClue)); } PopulateMetadata(clue.Data.EntityData, resultItem); context.Log.LogInformation("Clue produced, Id: '{Id}' OriginEntityCode: '{OriginEntityCode}' RawText: '{RawText}'", clue.Id, clue.OriginEntityCode, clue.RawText); return(new[] { clue }); } }
/// <summary>Gets the preview image.</summary> /// <param name="context">The context.</param> /// <param name="result">The result.</param> /// <param name="request">The request.</param> /// <returns>The preview image.</returns> public override IPreviewImage GetPrimaryEntityPreviewImage(ExecutionContext context, IExternalSearchQueryResult result, IExternalSearchRequest request) { return(null); }
/// <summary>Gets the primary entity metadata.</summary> /// <param name="context">The context.</param> /// <param name="result">The result.</param> /// <param name="request">The request.</param> /// <returns>The primary entity metadata.</returns> public override IEntityMetadata GetPrimaryEntityMetadata(ExecutionContext context, IExternalSearchQueryResult result, IExternalSearchRequest request) { var resultItem = result.As <CompanyNew>(); return(CreateMetadata(resultItem)); }
/// <summary>Builds the clues.</summary> /// <param name="context">The context.</param> /// <param name="query">The query.</param> /// <param name="result">The result.</param> /// <param name="request">The request.</param> /// <returns>The clues.</returns> public override IEnumerable <Clue> BuildClues(ExecutionContext context, IExternalSearchQuery query, IExternalSearchQueryResult result, IExternalSearchRequest request) { var resultItem = result.As <CompanyNew>(); var code = new EntityCode(EntityType.Organization, GetCodeOrigin(), resultItem.Data.company_number); var clue = new Clue(code, context.Organization); clue.Data.OriginProviderDefinitionId = Id; PopulateMetadata(clue.Data.EntityData, resultItem.Data); yield return(clue); }
/// <inheritdoc/> public override IEntityMetadata GetPrimaryEntityMetadata(ExecutionContext context, IExternalSearchQueryResult result, IExternalSearchRequest request) { var resultItem = result.As <PermIdSocialResponse>(); if (resultItem == null) { return(null); } return(this.CreateMetadata(resultItem)); }
/// <inheritdoc/> public override IEntityMetadata GetPrimaryEntityMetadata(ExecutionContext context, IExternalSearchQueryResult result, IExternalSearchRequest request) { var resultItem = result.As <Result>(); if (resultItem == null) { return(null); } return(CreateMetadata(resultItem, request)); }
/// <inheritdoc/> public override IEnumerable <Clue> BuildClues(ExecutionContext context, IExternalSearchQuery query, IExternalSearchQueryResult result, IExternalSearchRequest request) { var resultItem = result.As <Result>(); string id; if (request.QueryParameters.ContainsKey(Core.Data.Vocabularies.Vocabularies.CluedInOrganization.CodesCVR)) { id = request.QueryParameters.GetValue(Core.Data.Vocabularies.Vocabularies.CluedInOrganization.CodesCVR).FirstOrDefault(); } else { id = resultItem.Data.ActualAddress.AccessAddressId; } var code = new EntityCode(EntityType.Organization, CodeOrigin.CluedIn, id); var clue = new Clue(code, context.Organization); clue.Data.OriginProviderDefinitionId = Id; PopulateMetadata(clue.Data.EntityData, resultItem, request); yield return(clue); }
private ExternalSearchGoogleKnowledgeGraphLogRecord CreateRecord(ExecutionContext context, IExternalSearchQuery query, IExternalSearchQueryResult result, Result resultItem) { var record = new ExternalSearchGoogleKnowledgeGraphLogRecord { Id = ExternalSearchLogIdGenerator.GenerateId(query.ProviderId, query.EntityType, resultItem.id ?? string.Empty, resultItem.name ?? string.Empty, resultItem.description ?? string.Empty), ProviderId = query.ProviderId, EntityType = query.EntityType, ResultId = resultItem.id, Name = resultItem.name, ResultTypes = resultItem.type != null?string.Join(", ", resultItem.type) : null, Description = resultItem.description, Url = resultItem.url }; if (resultItem.detailedDescription != null) { record.DetailedDescriptionBody = resultItem.detailedDescription.articleBody; record.DetailedDescriptionUrl = resultItem.detailedDescription.url; record.DetailedDescriptionLicenseUrl = resultItem.detailedDescription.license; } return(record); }
/// <summary>Populates the metadata.</summary> /// <param name="metadata">The metadata.</param> /// <param name="resultItem">The result item.</param> private void PopulateMetadata(IEntityMetadata metadata, IExternalSearchQueryResult <PermIdSocialResponse> resultItem) { if (resultItem == null) { throw new ArgumentNullException(nameof(resultItem)); } var code = this.GetOriginEntityCode(resultItem); var data = resultItem.Data; metadata.EntityType = EntityType.Organization; metadata.Name = resultItem.Data.OrganizationName?.FirstOrDefault().PrintIfAvailable(); metadata.CreatedDate = resultItem.CreatedDate; metadata.OriginEntityCode = code; metadata.Codes.Add(code); metadata.Properties[PermIdVocabularies.Organization.PermId] = data.PermId?.FirstOrDefault().PrintIfAvailable(); metadata.Properties[PermIdVocabularies.Organization.DomiciledIn] = data.DomiciledIn?.FirstOrDefault().PrintIfAvailable(); metadata.Properties[PermIdVocabularies.Organization.HqAddress] = data.HqAddress?.FirstOrDefault().PrintIfAvailable(); metadata.Properties[PermIdVocabularies.Organization.Status] = data.Status?.FirstOrDefault().PrintIfAvailable(); metadata.Properties[PermIdVocabularies.Organization.RegisteredPhone] = data.RegisteredPhone?.FirstOrDefault().PrintIfAvailable(); metadata.Properties[PermIdVocabularies.Organization.RegisteredFax] = data.RegisteredFax?.FirstOrDefault().PrintIfAvailable(); metadata.Properties[PermIdVocabularies.Organization.RegisteredAddress] = data.RegisteredAddress?.FirstOrDefault().PrintIfAvailable(); metadata.Properties[PermIdVocabularies.Organization.Public] = data.Public?.FirstOrDefault().PrintIfAvailable(); metadata.Properties[PermIdVocabularies.Organization.PrimaryIndustryId] = data.PrimaryIndustryId?.FirstOrDefault().PrintIfAvailable(); metadata.Properties[PermIdVocabularies.Organization.PrimaryIndustry] = data.PrimaryIndustry?.FirstOrDefault().PrintIfAvailable(); metadata.Properties[PermIdVocabularies.Organization.PrimaryEconomicSectorId] = data.PrimaryEconomicSectorId?.FirstOrDefault().PrintIfAvailable(); metadata.Properties[PermIdVocabularies.Organization.PrimaryEconomicSector] = data.PrimaryEconomicSector?.FirstOrDefault().PrintIfAvailable(); metadata.Properties[PermIdVocabularies.Organization.PrimaryBusinessSectorId] = data.PrimaryBusinessSectorId?.FirstOrDefault().PrintIfAvailable(); metadata.Properties[PermIdVocabularies.Organization.PrimaryBusinessSector] = data.PrimaryBusinessSector?.FirstOrDefault().PrintIfAvailable(); metadata.Properties[PermIdVocabularies.Organization.OrganizationName] = data.OrganizationName?.FirstOrDefault().PrintIfAvailable(); metadata.Properties[PermIdVocabularies.Organization.Lei] = data.Lei?.FirstOrDefault().PrintIfAvailable(); metadata.Properties[PermIdVocabularies.Organization.LatestDateOfIncorporation] = data.LatestDateOfIncorporation?.FirstOrDefault().PrintIfAvailable(); metadata.Properties[PermIdVocabularies.Organization.IncorporatedIn] = data.IncorporatedIn?.FirstOrDefault().PrintIfAvailable(); metadata.Properties[PermIdVocabularies.Organization.HqPhone] = data.HqPhone?.FirstOrDefault().PrintIfAvailable(); metadata.Properties[PermIdVocabularies.Organization.HqFax] = data.HqFax?.FirstOrDefault().PrintIfAvailable(); metadata.Properties[PermIdVocabularies.Organization.EntityType] = data.EntityType?.FirstOrDefault().PrintIfAvailable(); metadata.Properties[PermIdVocabularies.Organization.PrimaryInstrumentId] = data.PrimaryInstrumentMdaas?.FirstOrDefault()?.MainInstrument?.FirstOrDefault().PrintIfAvailable(); metadata.Properties[PermIdVocabularies.Organization.PrimaryInstrumentName] = data.PrimaryInstrumentMdaas?.FirstOrDefault()?.MainInstrumentName?.FirstOrDefault().PrintIfAvailable(); metadata.Properties[PermIdVocabularies.Organization.PrimaryInstrumentType] = data.PrimaryInstrumentMdaas?.FirstOrDefault()?.MainInstrumentType?.FirstOrDefault().PrintIfAvailable(); metadata.Properties[PermIdVocabularies.Organization.PrimaryInstrumentTypeUrl] = data.PrimaryInstrumentMdaas?.FirstOrDefault()?.MainInstrumentTypeUrl?.FirstOrDefault().PrintIfAvailable(); metadata.Properties[PermIdVocabularies.Organization.PrimaryInstrumentUrl] = data.PrimaryInstrumentMdaas?.FirstOrDefault()?.MainInstrumentUrl?.FirstOrDefault().PrintIfAvailable(); metadata.Properties[PermIdVocabularies.Organization.MainQuoteId] = data.MainQuoteIdMdaas?.FirstOrDefault()?.MainQuote?.FirstOrDefault().PrintIfAvailable(); metadata.Properties[PermIdVocabularies.Organization.MainQuoteUrl] = data.MainQuoteIdMdaas?.FirstOrDefault()?.MainQuoteUrl?.FirstOrDefault().PrintIfAvailable(); metadata.Properties[PermIdVocabularies.Organization.MainQuoteExchange] = data.MainQuoteIdMdaas?.FirstOrDefault()?.PrimaryExchange?.FirstOrDefault().PrintIfAvailable(); metadata.Properties[PermIdVocabularies.Organization.MainQuoteMic] = data.MainQuoteIdMdaas?.FirstOrDefault()?.PrimaryMic?.FirstOrDefault().PrintIfAvailable(); metadata.Properties[PermIdVocabularies.Organization.MainQuoteRic] = data.MainQuoteIdMdaas?.FirstOrDefault()?.PrimaryRic?.FirstOrDefault().PrintIfAvailable(); metadata.Properties[PermIdVocabularies.Organization.MainQuoteTicker] = data.MainQuoteIdMdaas?.FirstOrDefault()?.PrimaryTicker?.FirstOrDefault().PrintIfAvailable(); // Set Url if (!string.IsNullOrEmpty(resultItem.Data.Website?.FirstOrDefault())) { metadata.Uri = new Uri(resultItem.Data.Website.First()); metadata.Properties[PermIdVocabularies.Organization.Website] = resultItem.Data.Website.First(); } else if (!string.IsNullOrEmpty(resultItem.Data.PermId?.FirstOrDefault())) { metadata.Uri = new Uri(string.Format("https://permid.org/1-{0}", resultItem.Data.PermId.First())); } }
public override IEnumerable <Clue> BuildClues(ExecutionContext context, IExternalSearchQuery query, IExternalSearchQueryResult result, IExternalSearchRequest request) { var resultItem = result.As <User>(); var code = GetOriginEntityCode(resultItem); var clue = new Clue(code, context.Organization); PopulateMetadata(clue.Data.EntityData, resultItem); // If necessary, you can create multiple clues and return them. return(new[] { clue }); }
public IEnumerable <Clue> BuildClues(ExecutionContext context, IExternalSearchQuery query, IExternalSearchQueryResult result, IExternalSearchRequest request, IDictionary <string, object> config, IProvider provider) { return(BuildClues(context, query, result, request)); }
public IPreviewImage GetPrimaryEntityPreviewImage(ExecutionContext context, IExternalSearchQueryResult result, IExternalSearchRequest request, IDictionary <string, object> config, IProvider provider) { return(GetPrimaryEntityPreviewImage(context, result, request)); }
/// <inheritdoc/> public override IEnumerable <Clue> BuildClues(ExecutionContext context, IExternalSearchQuery query, IExternalSearchQueryResult result, IExternalSearchRequest request) { var organizationCode = this.GetOriginEntityCode(result.As <PermIdSocialResponse>()); var organizationClue = new Clue(organizationCode, context.Organization); this.PopulateMetadata(organizationClue.Data.EntityData, result.As <PermIdSocialResponse>()); yield return(organizationClue); if (result.As <PermIdSocialResponse>().Data.AdditionalInfo != null) { foreach (var person in result.As <PermIdSocialResponse>().Data.AdditionalInfo) { var personCode = this.GetPersonEntityCode(person); var personClue = new Clue(personCode, context.Organization); this.PopulatePersonMetadata(personClue.Data.EntityData, person); var personToOrganizationEdge = new EntityEdge(new EntityReference(personCode), new EntityReference(organizationCode), EntityEdgeType.WorksFor); personClue.Data.EntityData.OutgoingEdges.Add(personToOrganizationEdge); yield return(personClue); } } }