< Summary - Syki

Information
Class: Syki.Back.Features.CourseCurriculums.GetCourseCurriculum.GetCourseCurriculumService
Assembly: Back
File(s): /home/runner/work/syki/syki/Back/Features/CourseCurriculums/GetCourseCurriculum/GetCourseCurriculumService.cs
Tag: 97_27801654829
Line coverage
0%
Covered lines: 0
Uncovered lines: 33
Coverable lines: 33
Total lines: 44
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 2
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/CourseCurriculums/GetCourseCurriculum/GetCourseCurriculumService.cs

#LineLine coverage
 1namespace Syki.Back.Features.CourseCurriculums.GetCourseCurriculum;
 2
 03public class GetCourseCurriculumService(SykiDbContext ctx) : ISykiService
 4{
 5    public async Task<OneOf<GetCourseCurriculumOut, SykiError>> Get(int id)
 6    {
 07        var curriculum = await ctx.CourseCurriculums.AsNoTracking()
 08            .Include(c => c.Course)
 09            .Include(c => c.Links)
 010            .FirstOrDefaultAsync(c => c.InstitutionId == ctx.RequestUser.InstitutionId && c.Id == id);
 011        if (curriculum == null) return CourseCurriculumNotFound.I;
 12
 013        var disciplineIds = curriculum.Links.Select(l => l.DisciplineId).ToList();
 14
 015        var disciplines = await ctx.Disciplines.AsNoTracking()
 016            .Where(d => disciplineIds.Contains(d.Id))
 017            .Select(d => new { d.Id, d.Name })
 018            .ToListAsync();
 19
 020        var disciplineMap = disciplines.ToDictionary(d => d.Id, d => d.Name);
 21
 022        var disciplineItems = curriculum.Links
 023            .OrderBy(l => l.Period)
 024            .ThenBy(l => disciplineMap.GetValueOrDefault(l.DisciplineId, string.Empty))
 025            .Select(l => new GetCourseCurriculumDisciplineOut
 026            {
 027                Id = l.DisciplineId,
 028                Name = disciplineMap.GetValueOrDefault(l.DisciplineId, string.Empty),
 029                Period = l.Period,
 030                Credits = l.Credits,
 031                Workload = l.Workload,
 032            })
 033            .ToList();
 34
 035        return new GetCourseCurriculumOut
 036        {
 037            Id = curriculum.Id,
 038            Name = curriculum.Name,
 039            CourseId = curriculum.CourseId,
 040            Course = curriculum.Course!.Name,
 041            Disciplines = disciplineItems,
 042        };
 043    }
 44}