< Summary - Estud

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

File(s)

/home/runner/work/syki/syki/Back/Features/CourseCurriculums/GetCourseCurriculum/GetCourseCurriculumService.cs

#LineLine coverage
 1namespace Estud.Back.Features.CourseCurriculums.GetCourseCurriculum;
 2
 83public class GetCourseCurriculumService(EstudDbContext ctx) : IEstudService
 4{
 5    public async Task<OneOf<GetCourseCurriculumOut, EstudError>> Get(int id)
 6    {
 87        var curriculum = await ctx.CourseCurriculums.AsNoTracking()
 88            .Include(c => c.Course)
 89            .Include(c => c.Links)
 810            .FirstOrDefaultAsync(c => c.InstitutionId == ctx.RequestUser.InstitutionId && c.Id == id);
 1211        if (curriculum == null) return CourseCurriculumNotFound.I;
 12
 813        var disciplineIds = curriculum.Links.Select(l => l.DisciplineId).ToList();
 14
 415        var disciplines = await ctx.Disciplines.AsNoTracking()
 416            .Where(d => disciplineIds.Contains(d.Id))
 417            .Select(d => new { d.Id, d.Name })
 418            .ToListAsync();
 19
 1220        var disciplineMap = disciplines.ToDictionary(d => d.Id, d => d.Name);
 21
 422        var disciplineItems = curriculum.Links
 423            .OrderBy(l => l.Period)
 424            .ThenBy(l => disciplineMap.GetValueOrDefault(l.DisciplineId, string.Empty))
 425            .Select(l => new GetCourseCurriculumDisciplineOut
 426            {
 427                Id = l.DisciplineId,
 428                Name = disciplineMap.GetValueOrDefault(l.DisciplineId, string.Empty),
 429                Period = l.Period,
 430                Credits = l.Credits,
 431                Workload = l.Workload,
 432            })
 433            .ToList();
 34
 435        return new GetCourseCurriculumOut
 436        {
 437            Id = curriculum.Id,
 438            Name = curriculum.Name,
 439            CourseId = curriculum.CourseId,
 440            Course = curriculum.Course!.Name,
 441            Disciplines = disciplineItems,
 442        };
 843    }
 44}