Files
2026-03-24 15:26:03 -05:00

54 lines
2.1 KiB
C#

using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using LCU.Api.Internal.DispatcherLib.Persistence;
using LCU.Library.Internal.DispatcherModels.Entities;
using LCU.Api.Internal.DispatcherLib.Extensions.Queryables;
namespace LCU.Api.Internal.DispatcherLib.Repositories;
public class WorkItemExecutionRepository : BaseRepository, IWorkItemExecutionRepository
{
public WorkItemExecutionRepository(AppDbContext context) : base(context) { }
public async Task<IEnumerable<WorkItemExecution>> ListAsync()
{
return await _context.WorkItemExecutions.AsNoTracking().ToListAsync();
}
public async Task<WorkItemExecution> FindByIdAsync(int id)
{
return await _context.WorkItemExecutions
.AsNoTracking()
.FirstOrDefaultAsync(workItemExecution => workItemExecution.WorkItemExecutionId == id);
}
public async Task<WorkItemExecution> AddAsync(WorkItemExecution workItemExecution)
{
var result = await _context.WorkItemExecutions.AddAsync(workItemExecution);
return result.Entity;
}
public void Update(WorkItemExecution workItem)
{
_context.WorkItemExecutions.Update(workItem);
}
public async Task<IEnumerable<WorkItemExecution>> FindUnFinishedWorkItemExecutions(int workItemId)
{
var result = await _context.WorkItemExecutions.Where(workItemExecution => workItemExecution.StartedTimestamp == null || workItemExecution.CompletedTimestamp == null)
.Where(workItemExecution => workItemExecution.WorkItemId == workItemId).AsNoTracking().ToListAsync();
return result;
}
public async Task<IEnumerable<WorkItemExecution>> FindAllByWorkItemId(int workItemId)
{
var result = await _context.WorkItemExecutions.Where(workItemExecution => workItemExecution.WorkItemId == workItemId)
.AsNoTracking()
.IncludeAll()
.ToListAsync();
return result;
}
}