feat: add specific weeks
All checks were successful
.NET Test Pipeline / build-and-test (pull_request) Successful in 1m52s
All checks were successful
.NET Test Pipeline / build-and-test (pull_request) Successful in 1m52s
This commit is contained in:
@ -11,17 +11,7 @@ public class GetScheduleListQueryHandler(ILessonDbContext dbContext) : IRequestH
|
||||
{
|
||||
public async Task<ScheduleListVm> Handle(GetScheduleListQuery request, CancellationToken cancellationToken)
|
||||
{
|
||||
var query = dbContext.Lessons
|
||||
.Include(l => l.LessonAssociations)
|
||||
.ThenInclude(la => la.LectureHall)
|
||||
.ThenInclude(lh => lh!.Campus)
|
||||
.Include(l => l.LessonAssociations)
|
||||
.ThenInclude(la => la.Professor)
|
||||
.Include(l => l.LessonAssociations)
|
||||
.ThenInclude(la => la.TypeOfOccupation)
|
||||
.Include(l => l.Group)
|
||||
.Include(l => l.Discipline)
|
||||
.AsQueryable();
|
||||
var query = dbContext.Lessons.AsQueryable();
|
||||
|
||||
if (request.IsEven != null)
|
||||
query = query.Where(l => l.IsEven == request.IsEven);
|
||||
@ -41,7 +31,17 @@ public class GetScheduleListQueryHandler(ILessonDbContext dbContext) : IRequestH
|
||||
l.LessonAssociations!.Any(la =>
|
||||
la.ProfessorId != null && request.ProfessorIds.Contains(la.ProfessorId.Value)));
|
||||
|
||||
var data = await query.ToArrayAsync(cancellationToken);
|
||||
var data = await query
|
||||
.Include(lesson => lesson.Discipline!)
|
||||
.Include(lesson => lesson.SpecificWeeks)
|
||||
.Include(lesson => lesson.Group!)
|
||||
.Include(lesson => lesson.LessonAssociations!)
|
||||
.ThenInclude(lessonAssociation => lessonAssociation.TypeOfOccupation!)
|
||||
.Include(lesson => lesson.LessonAssociations!)
|
||||
.ThenInclude(lessonAssociation => lessonAssociation.Professor)
|
||||
.Include(lesson => lesson.LessonAssociations!)
|
||||
.ThenInclude(lessonAssociation => lessonAssociation.LectureHall)
|
||||
.ThenInclude(lectureHall => lectureHall!.Campus).ToListAsync(cancellationToken);
|
||||
|
||||
var result = data.Select(l => new ScheduleLookupDto()
|
||||
{
|
||||
@ -55,6 +55,9 @@ public class GetScheduleListQueryHandler(ILessonDbContext dbContext) : IRequestH
|
||||
Discipline = l.Discipline!.Name,
|
||||
DisciplineId = l.DisciplineId,
|
||||
|
||||
IsExcludedWeeks = l.IsExcludedWeeks,
|
||||
Weeks = l.SpecificWeeks?.Select(w => w.WeekNumber),
|
||||
|
||||
Group = l.Group!.Name,
|
||||
GroupId = l.GroupId,
|
||||
|
||||
@ -72,7 +75,6 @@ public class GetScheduleListQueryHandler(ILessonDbContext dbContext) : IRequestH
|
||||
.Where(la => la.LectureHall?.Campus != null)
|
||||
.Select(la => la.LectureHall?.CampusId),
|
||||
|
||||
|
||||
Professors = l.LessonAssociations!
|
||||
.Where(la => !string.IsNullOrEmpty(la.Professor?.Name))
|
||||
.Select(la => la.Professor?.Name),
|
||||
|
@ -33,6 +33,16 @@ public class ScheduleLookupDto
|
||||
/// </summary>
|
||||
public required int DisciplineId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets exclude or include weeks for a specific discipline.
|
||||
/// </summary>
|
||||
public bool? IsExcludedWeeks { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The week numbers required for the correct display of the schedule.
|
||||
/// </summary>
|
||||
public IEnumerable<int>? Weeks { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the name of the group.
|
||||
/// </summary>
|
||||
|
Reference in New Issue
Block a user