< Summary - Syki

Information
Class: Syki.Back.Features.Student.CreateClassActivityWork.CreateClassActivityWorkService
Assembly: Back
File(s): /home/runner/work/syki/syki/Back/Features/Student/CreateClassActivityWork/CreateClassActivityWorkService.cs
Tag: 4_16869239191
Line coverage
100%
Covered lines: 16
Uncovered lines: 0
Coverable lines: 16
Total lines: 27
Line coverage: 100%
Branch coverage
75%
Covered branches: 3
Total branches: 4
Branch coverage: 75%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
Create()75%44100%

File(s)

/home/runner/work/syki/syki/Back/Features/Student/CreateClassActivityWork/CreateClassActivityWorkService.cs

#LineLine coverage
 1namespace Syki.Back.Features.Student.CreateClassActivityWork;
 2
 103public class CreateClassActivityWorkService(SykiDbContext ctx) : IStudentService
 4{
 5    public async Task<OneOf<ClassActivityWorkOut, SykiError>> Create(Guid classActivityId, Guid userId, CreateClassActiv
 6    {
 107        var classActivity = await ctx.ClassActivities.AsNoTracking()
 108            .Where(x => x.Id == classActivityId)
 109            .FirstOrDefaultAsync();
 1210        if (classActivity == null) return new ClassActivityNotFound();
 11
 812        var classesIds = await ctx.ClassesStudents
 813            .Where(x => x.SykiStudentId == userId)
 814            .Select(x => x.ClassId).ToListAsync();
 815        if (!classesIds.Contains(classActivity.ClassId)) return new ClassActivityNotFound();
 16
 817        var classActivityWork = await ctx.ClassActivityWorks
 818            .Where(x => x.ClassActivityId == classActivityId && x.SykiStudentId == userId)
 819            .FirstAsync();
 20
 821        classActivityWork.AddLink(data.Link);
 22
 823        await ctx.SaveChangesAsync();
 24
 825        return classActivityWork.ToOut();
 1026    }
 27}