< Summary

Information
Class: Pomodoro.Web.Services.TodayStatsService
Assembly: Pomodoro.Web
File(s): /home/runner/work/Pomodoro/Pomodoro/src/Pomodoro.Web/Services/TodayStatsService.cs
Line coverage
100%
Covered lines: 33
Uncovered lines: 0
Coverable lines: 33
Total lines: 52
Line coverage: 100%
Branch coverage
100%
Covered branches: 2
Total branches: 2
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
GetTodayTotalFocusMinutes()100%11100%
GetTodayPomodoroCount()100%11100%
GetTodayTasksWorkedOn()100%22100%
GetTodayStats()100%11100%

File(s)

/home/runner/work/Pomodoro/Pomodoro/src/Pomodoro.Web/Services/TodayStatsService.cs

#LineLine coverage
 1using Pomodoro.Web.Models;
 2using Pomodoro.Web.Services;
 3
 4namespace Pomodoro.Web.Services;
 5
 6public class TodayStatsService : ITodayStatsService
 7{
 8    private readonly IActivityService _activityService;
 9
 5110    public TodayStatsService(IActivityService activityService)
 5111    {
 5112        _activityService = activityService;
 5113    }
 14
 15    public int GetTodayTotalFocusMinutes()
 416    {
 417        return _activityService.GetTodayActivities()
 918            .Where(a => a.Type == SessionType.Pomodoro)
 819            .Sum(a => a.DurationMinutes);
 420    }
 21
 22    public int GetTodayPomodoroCount()
 423    {
 424        return _activityService.GetTodayActivities()
 1525            .Count(a => a.Type == SessionType.Pomodoro);
 426    }
 27
 28    public int GetTodayTasksWorkedOn()
 629    {
 630        return _activityService.GetTodayActivities()
 1831            .Where(a => a.Type == SessionType.Pomodoro && !string.IsNullOrWhiteSpace(a.TaskName))
 1132            .Select(a => a.TaskName)
 633            .Distinct()
 634            .Count();
 635    }
 36
 37    public (int TotalFocusMinutes, int PomodoroCount, int TasksWorkedOn) GetTodayStats()
 3038    {
 3039        var activities = _activityService.GetTodayActivities()
 1540            .Where(a => a.Type == SessionType.Pomodoro)
 3041            .ToList();
 42
 543        return (
 1144            activities.Sum(a => a.DurationMinutes),
 545            activities.Count,
 1146            activities.Where(a => !string.IsNullOrWhiteSpace(a.TaskName))
 747                .Select(a => a.TaskName)
 548                .Distinct()
 549                .Count()
 550        );
 551    }
 52}