kitchen-dal/src/Kitchen.DAL/Repositories/InMemoryKitchenWorkItemRepository.cs
2026-02-25 18:12:07 -06:00

22 lines
787 B
C#

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