54 lines
2.1 KiB
C#
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;
|
|
}
|
|
} |