< Summary - Syki

Information
Class: Syki.Back.Features.Teacher.AddStudentClassActivityNote.AddStudentClassActivityNoteService
Assembly: Back
File(s): /home/runner/work/syki/syki/Back/Features/Teacher/AddStudentClassActivityNote/AddStudentClassActivityNoteService.cs
Tag: 4_16869239191
Line coverage
100%
Covered lines: 14
Uncovered lines: 0
Coverable lines: 14
Total lines: 25
Line coverage: 100%
Branch coverage
62%
Covered branches: 5
Total branches: 8
Branch coverage: 62.5%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
Add()62.5%88100%

File(s)

/home/runner/work/syki/syki/Back/Features/Teacher/AddStudentClassActivityNote/AddStudentClassActivityNoteService.cs

#LineLine coverage
 1namespace Syki.Back.Features.Teacher.AddStudentClassActivityNote;
 2
 463public class AddStudentClassActivityNoteService(SykiDbContext ctx) : ITeacherService
 4{
 5    public async Task<OneOf<SykiSuccess, SykiError>> Add(Guid teacherId, Guid classActivityId, AddStudentClassActivityNo
 6    {
 467        var activity = await ctx.ClassActivities.Where(x => x.Id == classActivityId).FirstOrDefaultAsync();
 488        if (activity == null) return new ClassActivityNotFound();
 9
 4410        var classOk = await ctx.Classes.AnyAsync(x => x.Id == activity.ClassId && x.TeacherId == teacherId);
 4411        if (!classOk) return new ClassNotFound();
 12
 4413        var work = await ctx.ClassActivityWorks
 4414            .Where(x => x.ClassActivityId == classActivityId && x.SykiStudentId == data.StudentId)
 4415            .FirstOrDefaultAsync();
 4416        if (work == null) return new ClassActivityNotFound();
 17
 4418        var result = work.AddNote(data.Value);
 4419        if (result.IsError) return result.Error;
 20
 4421        await ctx.SaveChangesAsync();
 22
 4423        return new SykiSuccess();
 4624    }
 25}