< Summary

Information
Class: Pomodoro.Web.Services.HistoryStatsService
Assembly: Pomodoro.Web
File(s): /home/runner/work/Pomodoro/Pomodoro/src/Pomodoro.Web/Services/HistoryStatsService.cs
Line coverage
100%
Covered lines: 13
Uncovered lines: 0
Coverable lines: 13
Total lines: 30
Line coverage: 100%
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
CalculateStats(...)100%11100%

File(s)

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

#LineLine coverage
 1using Pomodoro.Web.Models;
 2
 3namespace Pomodoro.Web.Services;
 4
 5/// <summary>
 6/// Service for calculating history page statistics
 7/// </summary>
 8public class HistoryStatsService : IHistoryStatsService
 9{
 10    /// <summary>
 11    /// Calculates daily statistics from a list of activities
 12    /// </summary>
 13    /// <param name="activities">List of activities to calculate stats for</param>
 14    /// <returns>Daily statistics summary</returns>
 15    public virtual DailyStatsSummary CalculateStats(List<ActivityRecord> activities)
 3916    {
 23317        var pomodoros = activities.Where(a => a.Type == SessionType.Pomodoro).ToList();
 18
 3919        return new DailyStatsSummary
 3920        {
 3921            PomodoroCount = pomodoros.Count,
 18622            FocusMinutes = pomodoros.Sum(a => a.DurationMinutes),
 3923            TasksWorkedOn = pomodoros
 18624                .Where(a => a.TaskId.HasValue)
 4325                .Select(a => a.TaskId!.Value)
 3926                .Distinct()
 3927                .Count()
 3928        };
 3929    }
 30}