Пример #1
0
        /// <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();
        }
Пример #2
0
        /// <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);
            }
        }
Пример #3
0
        /// <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);
        }
Пример #4
0
        /// <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);
        }
Пример #5
0
        private static IEntityMetadata CreateMetadata(IExternalSearchQueryResult <VatLayerResponse> resultItem)
        {
            var metadata = new EntityMetadataPart();

            PopulateMetadata(metadata, resultItem);

            return(metadata);
        }
Пример #6
0
        /// <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);
        }
Пример #7
0
        /// <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);
        }
Пример #8
0
        /// <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);
        }
Пример #9
0
        /// <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));
        }
Пример #10
0
        /// <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()));
        }
Пример #11
0
        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;
        }
Пример #12
0
        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);
            }
        }
Пример #13
0
        /// <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);
        }
Пример #14
0
        /// <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);
        }
Пример #15
0
        /// <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;
        }
Пример #16
0
        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);
            }
        }
Пример #17
0
        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;
        }
Пример #18
0
        /// <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 });
            }
        }
Пример #19
0
 /// <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);
 }
Пример #20
0
        /// <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));
        }
Пример #21
0
        /// <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);
        }
Пример #22
0
        /// <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));
        }
Пример #23
0
        /// <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));
        }
Пример #24
0
        /// <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);
        }
Пример #25
0
        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);
        }
Пример #26
0
        /// <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()));
            }
        }
Пример #27
0
        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 });
        }
Пример #28
0
 public IEnumerable <Clue> BuildClues(ExecutionContext context, IExternalSearchQuery query, IExternalSearchQueryResult result, IExternalSearchRequest request, IDictionary <string, object> config, IProvider provider)
 {
     return(BuildClues(context, query, result, request));
 }
Пример #29
0
 public IPreviewImage GetPrimaryEntityPreviewImage(ExecutionContext context, IExternalSearchQueryResult result, IExternalSearchRequest request, IDictionary <string, object> config, IProvider provider)
 {
     return(GetPrimaryEntityPreviewImage(context, result, request));
 }
Пример #30
0
        /// <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);
                }
            }
        }