< Summary - Syki

Information
Class: Syki.Back.Features.Academic.AssignDisciplinesToTeacher.AssignDisciplinesToTeacherService
Assembly: Back
File(s): /home/runner/work/syki/syki/Back/Features/Academic/AssignDisciplinesToTeacher/AssignDisciplinesToTeacherService.cs
Tag: 21_17346963026
Line coverage
100%
Covered lines: 12
Uncovered lines: 0
Coverable lines: 12
Total lines: 23
Line coverage: 100%
Branch coverage
100%
Covered branches: 4
Total branches: 4
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%
Assign()100%44100%

File(s)

/home/runner/work/syki/syki/Back/Features/Academic/AssignDisciplinesToTeacher/AssignDisciplinesToTeacherService.cs

#LineLine coverage
 1namespace Syki.Back.Features.Academic.AssignDisciplinesToTeacher;
 2
 2083public class AssignDisciplinesToTeacherService(SykiDbContext ctx) : IAcademicService
 4{
 5    public async Task<OneOf<SykiSuccess, SykiError>> Assign(Guid institutionId, Guid teacherId, AssignDisciplinesToTeach
 6    {
 2087        var teacher = await ctx.Teachers.Include(x => x.Disciplines).FirstOrDefaultAsync(p => p.InstitutionId == institu
 2108        if (teacher == null) return new TeacherNotFound();
 9
 20610        var disciplines = await ctx.Disciplines
 20611            .Where(x => data.Disciplines.Contains(x.Id))
 20612            .ToListAsync();
 13
 20614        if (disciplines.Count != data.Disciplines.Count)
 215            return new InvalidDisciplinesList();
 16
 20417        teacher.Disciplines = disciplines;
 18
 20419        await ctx.SaveChangesAsync();
 20
 20421        return new SykiSuccess();
 20822    }
 23}