< Summary - Syki

Information
Class: Syki.Back.Features.Academic.GetCampusClasses.GetCampusClassesService
Assembly: Back
File(s): /home/runner/work/syki/syki/Back/Features/Academic/GetCampusClasses/GetCampusClassesService.cs
Tag: 21_17346963026
Line coverage
0%
Covered lines: 0
Uncovered lines: 11
Coverable lines: 11
Total lines: 49
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 2
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%620%

File(s)

/home/runner/work/syki/syki/Back/Features/Academic/GetCampusClasses/GetCampusClassesService.cs

#LineLine coverage
 1using Dapper;
 2using Npgsql;
 3
 4namespace Syki.Back.Features.Academic.GetCampusClasses;
 5
 06public class GetCampusClassesService(SykiDbContext ctx, NpgsqlDataSource dataSource) : IAcademicService
 7{
 8    public async Task<List<GetCampusClassesOut>> Get(Guid institutionId, Guid campusId)
 9    {
 010        await using var connection = await dataSource.OpenConnectionAsync();
 11
 012        var period = await ctx.GetCurrentAcademicPeriod(institutionId);
 13
 14        const string sql = @"
 15            SELECT
 16                c.id,
 17                c.discipline_id,
 18                d.name AS discipline,
 19                c.vacancies,
 20                c.workload,
 21                c.status,
 22                c.teacher_id,
 23                t.name AS teacher
 24            FROM
 25                syki.classes c
 26            INNER JOIN
 27                syki.disciplines d ON d.id = c.discipline_id
 28            LEFT JOIN
 29              syki.teachers t ON t.id = c.teacher_id
 30            WHERE
 31                c.institution_id = @InstitutionId
 32                    AND
 33                c.campus_id = @CampusId
 34                  AND
 35                c.period_id = @PeriodId
 36            ORDER BY
 37                d.name
 38        ";
 39
 040        var parameters = new
 041        {
 042            campusId,
 043            institutionId,
 044            PeriodId = period.Id
 045        };
 46
 047        return (await connection.QueryAsync<GetCampusClassesOut>(sql, parameters)).ToList();
 048    }
 49}