< Summary - Syki

Information
Class: Syki.Back.Features.Students.GetStudent.GetStudentService
Assembly: Back
File(s): /home/runner/work/syki/syki/Back/Features/Students/GetStudent/GetStudentService.cs
Tag: 97_27801654829
Line coverage
0%
Covered lines: 0
Uncovered lines: 20
Coverable lines: 20
Total lines: 30
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/Students/GetStudent/GetStudentService.cs

#LineLine coverage
 1namespace Syki.Back.Features.Students.GetStudent;
 2
 03public class GetStudentService(SykiDbContext ctx) : ISykiService
 4{
 5    public async Task<OneOf<GetStudentOut, SykiError>> Get(int studentId)
 6    {
 07        var institutionId = ctx.RequestUser.InstitutionId;
 8
 09        var student = await ctx.Students.AsNoTracking()
 010            .Include(s => s.User)
 011            .FirstOrDefaultAsync(s => s.Id == studentId && s.InstitutionId == institutionId);
 12
 013        if (student == null) return StudentNotFound.I;
 14
 015        var currentEnrollment = await ctx.StudentCourseEnrollments.AsNoTracking()
 016            .Where(e => e.StudentId == studentId && e.LeftAt == null)
 017            .OrderByDescending(e => e.EnrolledAt)
 018            .FirstOrDefaultAsync();
 19
 020        return new GetStudentOut
 021        {
 022            Id = student.Id,
 023            Name = student.Name,
 024            Email = student.User!.Email!,
 025            EnrollmentCode = student.EnrollmentCode,
 026            Status = student.Status,
 027            CurrentCourseOfferingId = currentEnrollment?.CourseOfferingId,
 028        };
 029    }
 30}