Files
hcs/Hcs.WebApp/Services/OperationService.cs

31 lines
1.0 KiB
C#

using Hcs.WebApp.Data.Hcs;
using Microsoft.EntityFrameworkCore;
namespace Hcs.WebApp.Services
{
public class OperationService(IDbContextFactory<HcsDbContext> factory)
{
private readonly IDbContextFactory<HcsDbContext> factory = factory;
public async Task<bool> HasActiveOperation(Operation.OperationType type)
{
using var context = factory.CreateDbContext();
return await context.Operations.AnyAsync(x => x.Type == type && !x.EndedAt.HasValue);
}
public async Task<Operation> InitiateOperation(Operation.OperationType type, string initiatorId)
{
using var context = factory.CreateDbContext();
var operation = new Operation()
{
Type = type,
InitiatorId = initiatorId,
StartedAt = DateTime.UtcNow
};
await context.Operations.AddAsync(operation);
await context.SaveChangesAsync();
return operation;
}
}
}