82 lines
1.7 KiB
C#
82 lines
1.7 KiB
C#
using System.Collections.Concurrent;
|
|
using System.Data;
|
|
using InServiceQue.Core.Models;
|
|
using InServiceQue.Core.Repositories;
|
|
|
|
namespace InServiceQue.InMemory;
|
|
|
|
public class TaskRepositoryInMemory: ITaskRepository
|
|
{
|
|
private static ConcurrentQueue<QueueTask> _que = new();
|
|
public void Dispose()
|
|
{
|
|
// TODO release managed resources here
|
|
}
|
|
|
|
public void Insert(QueueTask task)
|
|
{
|
|
_que.Enqueue(task);
|
|
}
|
|
|
|
public async Task InsertAsync(QueueTask task)
|
|
{
|
|
Insert(task);
|
|
await Task.CompletedTask;
|
|
}
|
|
|
|
public IDbTransaction StartTransaction()
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public async Task<IDbTransaction> StartTransactionAsync()
|
|
{
|
|
return await Task.FromResult<IDbTransaction>(null);
|
|
}
|
|
|
|
public void CommitTransaction(IDbTransaction tx)
|
|
{
|
|
|
|
}
|
|
|
|
public async Task CommitTransactionAsync(IDbTransaction tx)
|
|
{
|
|
await Task.CompletedTask;
|
|
}
|
|
|
|
public void RollbackTransaction(IDbTransaction tx)
|
|
{
|
|
|
|
}
|
|
|
|
public async Task RollbackTransactionAsync(IDbTransaction tx)
|
|
{
|
|
await Task.CompletedTask;
|
|
}
|
|
|
|
public QueueTask? GetNextTask(IDbTransaction tx)
|
|
{
|
|
QueueTask? task;
|
|
_que.TryDequeue(out task);
|
|
|
|
return task;
|
|
}
|
|
|
|
public async Task<QueueTask?> GetNextTaskAsync(IDbTransaction tx)
|
|
{
|
|
QueueTask? task = null;
|
|
_que.TryDequeue(out task);
|
|
|
|
return await Task.FromResult(task);
|
|
}
|
|
|
|
public void SaveTask(QueueTask task, IDbTransaction tx)
|
|
{
|
|
|
|
}
|
|
|
|
public async Task SaveTaskAsync(QueueTask task, IDbTransaction tx)
|
|
{
|
|
await Task.CompletedTask;
|
|
}
|
|
} |