48 lines
1.8 KiB
C#
48 lines
1.8 KiB
C#
using GozareshgirProgramManager.Domain.ProjectAgg.Entities;
|
|
using GozareshgirProgramManager.Domain.ProjectAgg.Enums;
|
|
using GozareshgirProgramManager.Domain.ProjectAgg.Repositories;
|
|
using GozareshgirProgramManager.Infrastructure.Persistence._Common;
|
|
using GozareshgirProgramManager.Infrastructure.Persistence.Context;
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
namespace GozareshgirProgramManager.Infrastructure.Persistence.Repositories;
|
|
|
|
public class TaskSectionRepository:RepositoryBase<Guid,TaskSection>,ITaskSectionRepository
|
|
{
|
|
private readonly ProgramManagerDbContext _context;
|
|
public TaskSectionRepository(ProgramManagerDbContext context) : base(context)
|
|
{
|
|
_context = context;
|
|
}
|
|
|
|
public async Task<TaskSection?> GetByIdWithActivitiesAsync(Guid id, CancellationToken cancellationToken = default)
|
|
{
|
|
return await _context.TaskSections
|
|
.Include(x => x.Activities)
|
|
.FirstOrDefaultAsync(x => x.Id == id, cancellationToken);
|
|
}
|
|
|
|
public async Task<TaskSection?> GetByIdWithFullDataAsync(Guid id, CancellationToken cancellationToken = default)
|
|
{
|
|
return await _context.TaskSections
|
|
.Include(x => x.Activities)
|
|
.Include(x => x.AdditionalTimes)
|
|
.FirstOrDefaultAsync(x => x.Id == id, cancellationToken);
|
|
}
|
|
|
|
public async Task<List<TaskSection>> GetAssignedToUserAsync(long userId)
|
|
{
|
|
return await _context.TaskSections
|
|
.Where(x => x.CurrentAssignedUserId == userId)
|
|
.ToListAsync();
|
|
}
|
|
|
|
public Task<List<TaskSection>> GetActiveSectionsIncludeAllAsync(CancellationToken cancellationToken)
|
|
{
|
|
return _context.TaskSections
|
|
.Where(x => x.Status == TaskSectionStatus.InProgress)
|
|
.Include(x => x.Activities)
|
|
.Include(x => x.AdditionalTimes)
|
|
.ToListAsync(cancellationToken);
|
|
}
|
|
} |