< Summary - Estud

Information
Class: Estud.Back.Features.Teachers.GetTeacherAgenda.GetTeacherAgendaService
Assembly: Back
File(s): /home/runner/work/syki/syki/Back/Features/Teachers/GetTeacherAgenda/GetTeacherAgendaService.cs
Tag: 114_29044117136
Line coverage
0%
Covered lines: 0
Uncovered lines: 26
Coverable lines: 26
Total lines: 40
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 6
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%210%
Get()0%620%

File(s)

/home/runner/work/syki/syki/Back/Features/Teachers/GetTeacherAgenda/GetTeacherAgendaService.cs

#LineLine coverage
 1namespace Estud.Back.Features.Teachers.GetTeacherAgenda;
 2
 03public class GetTeacherAgendaService(EstudDbContext ctx) : IEstudService
 4{
 5    public async Task<GetTeacherAgendaOut> Get()
 6    {
 07        var teacherId = ctx.RequestUser.Id;
 08        var institutionId = ctx.RequestUser.InstitutionId;
 9
 010        var classes = await ctx.Classes.AsNoTracking()
 011            .Include(t => t.Discipline)
 012            .Include(t => t.Schedules)
 013            .Where(t => t.InstitutionId == institutionId && t.TeacherId == teacherId && t.Status == ClassStatus.Started)
 014            .ToListAsync();
 15
 16        // Pra cada dia, pegar as aulas que acontecem nesse dia, ordenadas pelo horário de início
 017        var days = classes.Select(x => x.Schedules.Select(s => s.Day)).SelectMany(x => x).Distinct().OrderBy(x => x).ToL
 018        var agenda = new List<GetTeacherAgendaItemOut>();
 19
 020        foreach (var day in days)
 21        {
 022            var dayClasses = classes.Where(c => c.Schedules.Any(s => s.Day == day)).ToList();
 023            var disciplines = dayClasses.SelectMany(c => c.Schedules.Where(s => s.Day == day).Select(s => new GetTeacher
 024            {
 025                ClassId = c.Id,
 026                Name = c.Discipline.Name,
 027                Start = s.Start,
 028                End = s.End
 029            })).OrderBy(d => d.Start).ToList();
 30
 031            agenda.Add(new GetTeacherAgendaItemOut
 032            {
 033                Day = day,
 034                Disciplines = disciplines
 035            });
 36        }
 37
 038        return new GetTeacherAgendaOut { Days = agenda };
 039    }
 40}