< Summary - Syki

Information
Class: Syki.Back.Metrics.SetupCurrentMetricsStore
Assembly: Back
File(s): /home/runner/work/syki/syki/Back/Metrics/SetupCurrentMetricsStore.cs
Tag: 4_16869239191
Line coverage
93%
Covered lines: 15
Uncovered lines: 1
Coverable lines: 16
Total lines: 33
Line coverage: 93.7%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
StartAsync(...)100%11100%
StopAsync()100%1190.9%

File(s)

/home/runner/work/syki/syki/Back/Metrics/SetupCurrentMetricsStore.cs

#LineLine coverage
 1namespace Syki.Back.Metrics;
 2
 23public class SetupCurrentMetricsStore(IServiceScopeFactory serviceScopeFactory) : IHostedService
 4{
 25    private RequestMetrics _requestMetrics = new();
 6
 7    public Task StartAsync(CancellationToken cancellationToken)
 8    {
 29        return Task.CompletedTask;
 10    }
 11
 12    public async Task StopAsync(CancellationToken cancellationToken)
 13    {
 214        if (!Env.IsTesting()) return;
 15
 216        using IServiceScope scope = serviceScopeFactory.CreateScope();
 217        var ctx = scope.ServiceProvider.GetRequiredService<SykiDbContext>();
 18
 219        var requests = SykiMetricsStore.Requests
 56020            .Select(x => new RequestData { Endpoint = x.Key, Values = x.Value })
 56021            .OrderByDescending(x => x.Values["Total"])
 222            .ToList();
 23
 224        _requestMetrics.Save(requests);
 25
 26        try
 27        {
 228            ctx.Add(_requestMetrics);
 229            await ctx.SaveChangesAsync(cancellationToken);
 230        }
 031        catch (Exception) { }
 232    }
 33}