Class StructuredStoreLeaderboardAdapter
ILeaderboardStore implementation that translates every leaderboard operation
into calls against the generic IStructuredStore contract, via
LeaderboardRecordMapping. The single adapter every leaderboard backend
(key-value, HTTP, and — pass 2 — Postgres/MySql/Mongo) shares, so ranking/retention/tie-break
policy is expressed exactly once instead of once per backend.
Inheritance
StructuredStoreLeaderboardAdapter
Assembly: Serenity.Leaderboard.Infrastructure.dll
Syntax
public class StructuredStoreLeaderboardAdapter : ILeaderboardStore
Constructors
StructuredStoreLeaderboardAdapter(IStructuredStore, IReadOnlyDictionary<BoardId, LeaderboardDefinition>, StoreTable, ILogService)
Declaration
public StructuredStoreLeaderboardAdapter(IStructuredStore store, IReadOnlyDictionary<BoardId, LeaderboardDefinition> boards, StoreTable table, ILogService logService)
Parameters
Methods
ClearAsync(BoardId, CancellationToken)
Declaration
public Task ClearAsync(BoardId board, CancellationToken cancellationToken)
Parameters
Returns
CountAsync(BoardId, CancellationToken)
Declaration
public Task<int> CountAsync(BoardId board, CancellationToken cancellationToken)
Parameters
Returns
GetAroundAsync(BoardId, PlayerId, int, LeaderboardSortDirection, CancellationToken)
Declaration
public Task<IReadOnlyList<LeaderboardEntry>> GetAroundAsync(BoardId board, PlayerId player, int radius, LeaderboardSortDirection direction, CancellationToken cancellationToken)
Parameters
Returns
GetPlayerBestAsync(BoardId, PlayerId, CancellationToken)
Declaration
public Task<LeaderboardEntry?> GetPlayerBestAsync(BoardId board, PlayerId player, CancellationToken cancellationToken)
Parameters
Returns
GetRankAsync(BoardId, PlayerId, LeaderboardSortDirection, CancellationToken)
Declaration
public Task<int> GetRankAsync(BoardId board, PlayerId player, LeaderboardSortDirection direction, CancellationToken cancellationToken)
Parameters
Returns
GetTopAsync(BoardId, int, LeaderboardSortDirection, LeaderboardRankingMode, CancellationToken)
Declaration
public Task<IReadOnlyList<LeaderboardEntry>> GetTopAsync(BoardId board, int count, LeaderboardSortDirection direction, LeaderboardRankingMode rankingMode, CancellationToken cancellationToken)
Parameters
Returns
GetTopAsync(BoardId, int, LeaderboardSortDirection, CancellationToken)
Declaration
public Task<IReadOnlyList<LeaderboardEntry>> GetTopAsync(BoardId board, int count, LeaderboardSortDirection direction, CancellationToken cancellationToken)
Parameters
Returns
HealthCheckAsync(CancellationToken)
Declaration
public Task<bool> HealthCheckAsync(CancellationToken cancellationToken)
Parameters
Returns
SubmitAsync(LeaderboardEntry, LeaderboardDefinition, CancellationToken)
Declaration
public Task SubmitAsync(LeaderboardEntry entry, LeaderboardDefinition board, CancellationToken cancellationToken)
Parameters
Returns
Implements