< Summary - Syki

Information
Class: Syki.Back.Features.Academic.GetClassroomAgenda.GetClassroomAgendaService
Assembly: Back
File(s): /home/runner/work/syki/syki/Back/Features/Academic/GetClassroomAgenda/GetClassroomAgendaService.cs
Tag: 21_17346963026
Line coverage
0%
Covered lines: 0
Uncovered lines: 26
Coverable lines: 26
Total lines: 39
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 8
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%110100%

File(s)

/home/runner/work/syki/syki/Back/Features/Academic/GetClassroomAgenda/GetClassroomAgendaService.cs

#LineLine coverage
 1namespace Syki.Back.Features.Academic.GetClassroomAgenda;
 2
 03public class GetClassroomAgendaService(SykiDbContext ctx) : ITeacherService
 4{
 5    public async Task<OneOf<List<AgendaDayOut>, SykiError>> Get(Guid institution, Guid classroomId)
 6    {
 07        var classroom = await ctx.Classrooms.AsNoTracking().FirstOrDefaultAsync(x => x.InstitutionId == institution && x
 08        if (classroom == null) return new ClassroomNotFound();
 9
 010        var ids = await ctx.ClassroomsClasses.Where(c => c.ClassroomId == classroomId && c.IsActive).Select(x => x.Class
 011        var classes = await ctx.Classes.AsNoTracking()
 012            .Include(t => t.Discipline)
 013            .Include(t => t.Schedules)
 014            .Where(t => t.InstitutionId == institution && ids.Contains(t.Id))
 015            .ToListAsync();
 16
 017        var response = classes.ConvertAll(t =>
 018        {
 019            return new EnrollmentClassOut
 020            {
 021                Id = t.Id,
 022                Discipline = t.Discipline.Name,
 023                Schedules = t.Schedules.ConvertAll(h => h.ToOut()),
 024            };
 025        });
 26
 027        var agenda = response.ToAgendas();
 028        var result = new List<AgendaDayOut>();
 29
 030        foreach (var day in Enum.GetValues<Day>())
 31        {
 032            if (day == Day.Saturday) continue;
 033            var item = agenda.FirstOrDefault(x => x.Day == day) ?? new AgendaDayOut() { Day = day };
 034            result.Add(item);
 35        }
 36
 037        return result;
 038    }
 39}