< Summary - Syki

Information
Class: Syki.Back.Features.Student.GetStudentClassActivity.GetStudentClassActivityService
Assembly: Back
File(s): /home/runner/work/syki/syki/Back/Features/Student/GetStudentClassActivity/GetStudentClassActivityService.cs
Tag: 4_16869239191
Line coverage
0%
Covered lines: 0
Uncovered lines: 28
Coverable lines: 28
Total lines: 37
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 4
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%210%
Get()0%2040%

File(s)

/home/runner/work/syki/syki/Back/Features/Student/GetStudentClassActivity/GetStudentClassActivityService.cs

#LineLine coverage
 1namespace Syki.Back.Features.Student.GetStudentClassActivity;
 2
 03public class GetStudentClassActivityService(SykiDbContext ctx) : ITeacherService
 4{
 5    public async Task<OneOf<StudentClassActivityOut, SykiError>> Get(Guid studentId, Guid classId, Guid activityId)
 6    {
 07        var classOk = await ctx.ClassesStudents.AnyAsync(x => x.ClassId == classId && x.SykiStudentId == studentId);
 08        if (!classOk) return new ClassNotFound();
 9
 010        var activity = await ctx.ClassActivities.AsNoTracking()
 011            .Where(t => t.ClassId == classId && t.Id == activityId)
 012            .FirstOrDefaultAsync();
 013        if (activity == null) return new ClassActivityNotFound();
 14
 015        var work = await ctx.ClassActivityWorks.AsNoTracking()
 016            .Where(x => x.ClassActivityId == activityId && x.SykiStudentId == studentId)
 017            .FirstAsync();
 18
 019        return new StudentClassActivityOut
 020        {
 021            Id = activity.Id,
 022            ClassId = activity.ClassId,
 023            Note = activity.Note,
 024            Title = activity.Title,
 025            Description = activity.Description,
 026            Type = activity.Type,
 027            Status = activity.Status,
 028            Weight = activity.Weight,
 029            WorkStatus = work.Status,
 030            CreatedAt = activity.CreatedAt,
 031            DueDate = activity.DueDate,
 032            DueHour = activity.DueHour,
 033            Value = work.Note,
 034            PonderedValue = work.Note * activity.Weight / 100M,
 035        };
 036    }
 37}