< Summary - Syki

Information
Class: Syki.Back.Features.Academic.AssignCampiToTeacher.AssignCampiToTeacherService
Assembly: Back
File(s): /home/runner/work/syki/syki/Back/Features/Academic/AssignCampiToTeacher/AssignCampiToTeacherService.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/AssignCampiToTeacher/AssignCampiToTeacherService.cs

#LineLine coverage
 1namespace Syki.Back.Features.Academic.AssignCampiToTeacher;
 2
 2103public class AssignCampiToTeacherService(SykiDbContext ctx) : IAcademicService
 4{
 5    public async Task<OneOf<SykiSuccess, SykiError>> Assign(Guid institutionId, Guid teacherId, AssignCampiToTeacherIn d
 6    {
 2107        var teacher = await ctx.Teachers.Include(x => x.Campi).FirstOrDefaultAsync(p => p.InstitutionId == institutionId
 2128        if (teacher == null) return new TeacherNotFound();
 9
 20810        var campi = await ctx.Campi
 20811            .Where(x => data.Campi.Contains(x.Id))
 20812            .ToListAsync();
 13
 20814        if (campi.Count != data.Campi.Count)
 215            return new InvalidCampusList();
 16
 20617        teacher.Campi = campi;
 18
 20619        await ctx.SaveChangesAsync();
 20
 20621        return new SykiSuccess();
 21022    }
 23}