< Summary - Syki

Information
Class: Syki.Back.Features.CourseCurriculums.GetCourseCurriculums.GetCourseCurriculumsService
Assembly: Back
File(s): /home/runner/work/syki/syki/Back/Features/CourseCurriculums/GetCourseCurriculums/GetCourseCurriculumsService.cs
Tag: 56_26538939494
Line coverage
100%
Covered lines: 14
Uncovered lines: 0
Coverable lines: 14
Total lines: 23
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
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/CourseCurriculums/GetCourseCurriculums/GetCourseCurriculumsService.cs

#LineLine coverage
 1namespace Syki.Back.Features.CourseCurriculums.GetCourseCurriculums;
 2
 43public class GetCourseCurriculumsService(SykiDbContext ctx) : ISykiService
 4{
 5    public async Task<GetCourseCurriculumsOut> Get()
 6    {
 47        var curriculums = await ctx.CourseCurriculums.AsNoTracking()
 48            .Include(c => c.Course)
 49            .Where(c => c.InstitutionId == ctx.RequestUser.InstitutionId)
 410            .OrderBy(c => c.Name)
 411            .ToListAsync();
 12
 613        var ids = curriculums.Select(d => d.Id).ToHashSet();
 614        var result = curriculums.ConvertAll(d => d.ToGetCourseCurriculumsItemOut());
 15
 416        var disciplines = await ctx.CourseCurriculumDisciplines.AsNoTracking()
 417            .Where(c => ids.Count == 0 || ids.Contains(c.CourseCurriculumId))
 418            .ToListAsync();
 619        result.ForEach(x => x.Disciplines = disciplines.Count(c => c.CourseCurriculumId == x.Id));
 20
 421        return new GetCourseCurriculumsOut { Total = result.Count, Items = result };
 422    }
 23}