Skip to main content

Jupiter.Market.Elastic.Comparables.Services.IndexerService

This service coordinates Service Bus consumption, deal enrichment from Table.Deal and related tables, and synchronization with the Comparables Index.

See the detailed conceptual article: IndexerService Logic.

Methods

#ctor

Initializes a new instance of the #ctor class.

Parameters:

  • esOptions: Elasticsearch settings.
  • indexerOptions: Indexer settings.
  • dataService: The data service for deal retrieval.
  • elasticIndexService: The ElasticSearch index service.
  • logger: The logger instance.
  • loggerHelper: The logger helper for conditional logging.
  • dealDataMapper: The deal data mapper for enrichment.
  • serviceBusClient: The Azure Service Bus client.
  • serviceBusOptions: Service Bus settings.
  • serviceBusAdministrationClient: The Service Bus administration client.
  • serviceBusMessageService: The Service Bus message service.

RunAsync

No summary available.

Parameters:

  • reprocessDeadLetterQueue: Whether to reprocess dead-letter queue messages.
  • maxDeadLetterMessagesToProcess: Maximum number of dead-letter messages to process.
  • cancellationToken: Cancellation token.

Jupiter.Market.Elastic.Comparables.Services.IndexerService.ResendOldestUpdated

No summary available.

RunManualAsync

No summary available.

Parameters:

  • cancellationToken: Cancellation token.

ErrorHandler

No summary available.

Parameters:

  • args: The error event arguments.

Jupiter.Market.Elastic.Comparables.Services.IndexerService.LogServiceBusProgress

No summary available.

ReprocessDeadLetterMessagesAsync

No summary available.

Parameters:

  • maxMessagesToProcess: The maximum number of messages to process.
  • usePriority: Whether to use the high-priority subscription.
  • cancellationToken: Cancellation token.

IndexDealByIdAsync

No summary available.

Retrieves data from Table.Deal, Table.Listing, Table.Sale, and Table.Lease to construct the enriched IndexDealByIdAsync object.

Title/UPRN Split Logic: If the deal has a TitleId (and not UprnId), all comparables are fetched using the Title-based queries and grouped by (DealId, TitleId).

If the deal has a UprnId (and not TitleId), all comparables are fetched using the UPRN-based queries and grouped by (DealId, UprnId).

If neither is present, the deal is skipped and a warning is logged.

Deal Construction: All comparables for the deal are combined into a ConcurrentBag<Comparable>.

The IndexDealByIdAsync object is constructed with IDs, property type, comparable type/status, all comparables, and enriched IndexDealByIdAsync using M:Jupiter.Market.Elastic.Comparables.Mappers.DealDataMapper.MapFromComparables(Jupiter.Market.Elastic.Comparables.Models.DealReference,System.Collections.Generic.List{Jupiter.Market.Elastic.Comparables.Models.Comparable})DealType and OwnershipType are determined from the comparables and deal reference.

The constructed deal is upserted into the Comparables Index.

Parameters:

  • dealId: The deal ID to index.
  • cancellationToken: Cancellation token.

GetDealTypeForDeal

Determines the GetDealTypeForDeal for a deal based on its comparables.

Parameters:

  • combinedComps: The combined comparables.

Returns: The determined .

GetOwnershipTypeForDeal

Determines the GetOwnershipTypeForDeal for a deal based on its comparables and reference.

Parameters:

  • combinedComps: The combined comparables.
  • dealReference: The deal reference.

Returns: The determined .

GetComparableStatusForDeal

Determines the GetComparableStatusForDeal for a deal based on its comparables.

Parameters:

  • combinedComps: The combined comparables.

Returns: The determined .

LoadHousePriceIndexDataAsync

No summary available.

Parameters:

  • cancellationToken: Cancellation token.
Build StatusBuild #20251224.44 | Commit: 2544997 | Branch: HEAD | Built: 12/24/2025, 4:40:09 PM