< Summary - Syki

Information
Class: Syki.Back.Features.Adm.GetCommandsSummary.GetCommandsSummaryService
Assembly: Back
File(s): /home/runner/work/syki/syki/Back/Features/Adm/GetCommandsSummary/GetCommandsSummaryService.cs
Tag: 4_16869239191
Line coverage
0%
Covered lines: 0
Uncovered lines: 9
Coverable lines: 9
Total lines: 46
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/Adm/GetCommandsSummary/GetCommandsSummaryService.cs

#LineLine coverage
 1using Dapper;
 2using Npgsql;
 3
 4namespace Syki.Back.Features.Adm.GetCommandsSummary;
 5
 06public class GetCommandsSummaryService(NpgsqlDataSource dataSource) : IAdmService
 7{
 8    public async Task<GetCommandsSummaryOut> Get()
 9    {
 010        await using var connection = await dataSource.OpenConnectionAsync();
 11
 012        var result = new GetCommandsSummaryOut();
 13
 14        const string summarySql = @"
 15            SELECT
 16                count(1) AS total,
 17                count(1) FILTER (WHERE status = 'Pending') AS pending,
 18                count(1) FILTER (WHERE status = 'Processing') AS processing,
 19                count(1) FILTER (WHERE status = 'Success') AS success,
 20                count(1) FILTER (WHERE status = 'Error') AS error
 21            FROM syki.commands
 22        ";
 23
 24        const string typesSql = @"
 25            SELECT type, count(1) AS total
 26            FROM syki.commands
 27            GROUP BY TYPE
 28            ORDER BY total DESC
 29        ";
 30
 31        const string institutionsSql = @"
 32            SELECT id, name
 33            FROM syki.institutions
 34            WHERE id <> '00000000-0000-0000-0000-000000000000'
 35            ORDER BY name
 36        ";
 37
 038        result.Summary = await connection.QueryFirstAsync<CommandsSummaryOut>(summarySql);
 039        result.Types = (await connection.QueryAsync<CommandTypeCountOut>(typesSql)).ToList();
 040        result.Institutions = (await connection.QueryAsync<TinyInstitutionOut>(institutionsSql)).ToList();
 41
 042        result.Types.ForEach(x => x.Description = x.Type.ToCommandDescription());
 43
 044        return result;
 045    }
 46}