using System.Collections.Concurrent; using Kitchen.DAL.Contracts; namespace Kitchen.DAL.Repositories; public sealed class InMemoryKitchenWorkItemRepository : IKitchenWorkItemRepository { private readonly ConcurrentDictionary store = new(); public Task> ListQueuedAsync(CancellationToken cancellationToken) { var result = store.Values.Where(x => x.State == "Queued").OrderByDescending(x => x.Priority).ToArray(); return Task.FromResult>(result); } public Task UpsertAsync(KitchenWorkItemRecord record, CancellationToken cancellationToken) { store[record.WorkItemId] = record; return Task.CompletedTask; } }