void.cat/VoidCat/Services/Payment/PostgresPaymentOrderStore.cs

49 lines
1.2 KiB
C#
Raw Normal View History

using Microsoft.EntityFrameworkCore;
using VoidCat.Database;
2022-06-13 13:35:26 +00:00
using VoidCat.Services.Abstractions;
2022-09-07 14:52:40 +00:00
namespace VoidCat.Services.Payment;
2022-06-13 13:35:26 +00:00
/// <inheritdoc />
2022-09-07 14:52:40 +00:00
public class PostgresPaymentOrderStore : IPaymentOrderStore
2022-06-13 13:35:26 +00:00
{
private readonly VoidContext _db;
2022-06-13 13:35:26 +00:00
public PostgresPaymentOrderStore(VoidContext db)
2022-06-13 13:35:26 +00:00
{
_db = db;
2022-06-13 13:35:26 +00:00
}
/// <inheritdoc />
public async ValueTask<PaywallOrder?> Get(Guid id)
2022-06-13 13:35:26 +00:00
{
return await _db.PaywallOrders
.AsNoTracking()
.Include(a => a.OrderLightning)
.SingleOrDefaultAsync(a => a.Id == id);
2022-06-13 13:35:26 +00:00
}
/// <inheritdoc />
public async ValueTask Add(Guid id, PaywallOrder obj)
2022-06-13 13:35:26 +00:00
{
_db.PaywallOrders.Add(obj);
await _db.SaveChangesAsync();
2022-06-13 13:35:26 +00:00
}
/// <inheritdoc />
public async ValueTask Delete(Guid id)
{
await _db.PaywallOrders
.Where(a => a.Id == id)
.ExecuteDeleteAsync();
2022-06-13 13:35:26 +00:00
}
/// <inheritdoc />
public async ValueTask UpdateStatus(Guid order, PaywallOrderStatus status)
2022-06-13 13:35:26 +00:00
{
await _db.PaywallOrders
.Where(a => a.Id == order)
.ExecuteUpdateAsync(s => s.SetProperty(p => p.Status, status));
2022-06-13 13:35:26 +00:00
}
}