< Summary - Syki

Information
Class: Syki.Back.Features.Student.GetStudentDisciplines.GetStudentDisciplinesService
Assembly: Back
File(s): /home/runner/work/syki/syki/Back/Features/Student/GetStudentDisciplines/GetStudentDisciplinesService.cs
Tag: 4_16869239191
Line coverage
100%
Covered lines: 20
Uncovered lines: 0
Coverable lines: 20
Total lines: 31
Line coverage: 100%
Branch coverage
33%
Covered branches: 2
Total branches: 6
Branch coverage: 33.3%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
Get()100%11100%

File(s)

/home/runner/work/syki/syki/Back/Features/Student/GetStudentDisciplines/GetStudentDisciplinesService.cs

#LineLine coverage
 1namespace Syki.Back.Features.Student.GetStudentDisciplines;
 2
 23public class GetStudentDisciplinesService(SykiDbContext ctx) : IStudentService
 4{
 5    public async Task<List<DisciplineOut>> Get(Guid userId, Guid courseCurriculumId)
 6    {
 27        var courseCurriculum = await ctx.CourseCurriculums.AsNoTracking()
 28            .Include(g => g.Course)
 29            .Include(g => g.Disciplines)
 210            .Include(g => g.Links)
 211            .FirstAsync(g => g.Id == courseCurriculumId);
 12
 2613        var response = courseCurriculum.ToOut().Disciplines.OrderBy(d => d.Period).ToList();
 14
 215        var studentClassesStatus = await ctx.ClassesStudents.AsNoTracking()
 216            .Where(x => x.SykiStudentId == userId)
 217            .ToListAsync();
 18
 2619        var ids = courseCurriculum.Disciplines.ConvertAll(d => d.Id);
 220        var classes = await ctx.Classes.Where(t => ids.Contains(t.DisciplineId))
 221            .Select(x => new { x.Id, x.DisciplineId }).ToListAsync();
 22
 223        response.ForEach(r =>
 224        {
 2425            var classId = classes.FirstOrDefault(x => x.DisciplineId == r.Id)?.Id;
 2426            r.StudentDisciplineStatus = studentClassesStatus.FirstOrDefault(x => x.ClassId == classId)?.StudentDisciplin
 2627        });
 28
 2629        return response.OrderBy(x => x.Name).ToList();
 230    }
 31}