< Summary

Information
Class: Pomodoro.Web.Services.IndexPagePresenterService
Assembly: Pomodoro.Web
File(s): /home/runner/work/Pomodoro/Pomodoro/src/Pomodoro.Web/Services/IndexPagePresenterService.cs
Line coverage
100%
Covered lines: 27
Uncovered lines: 0
Coverable lines: 27
Total lines: 54
Line coverage: 100%
Branch coverage
100%
Covered branches: 4
Total branches: 4
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%
UpdateState(...)100%44100%

File(s)

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

#LineLine coverage
 1using Microsoft.Extensions.Logging;
 2using Pomodoro.Web.Models;
 3using Pomodoro.Web.Services;
 4
 5namespace Pomodoro.Web.Services;
 6
 7public class IndexPagePresenterService
 8{
 9    private readonly ILogger<IndexPagePresenterService> _logger;
 10
 49511    public IndexPagePresenterService(ILogger<IndexPagePresenterService> logger)
 49512    {
 49513        _logger = logger;
 49514    }
 15
 16    public IndexPageState UpdateState(ITaskService taskService, ITimerService timerService)
 33717    {
 18        try
 33719        {
 33720            return new IndexPageState
 33721            {
 33722                Tasks = taskService.Tasks?.ToList() ?? new List<TaskItem>(),
 33723                CurrentTaskId = taskService.CurrentTaskId,
 33724                RemainingTime = timerService.RemainingTime,
 33725                CurrentSessionType = timerService.CurrentSessionType,
 33726                IsTimerRunning = timerService.IsRunning,
 33727                IsTimerPaused = timerService.IsPaused,
 33728                IsTimerStarted = timerService.IsStarted
 33729            };
 30        }
 131        catch (Exception ex)
 132        {
 133            _logger.LogError(ex, "Error in UpdateState");
 134            return new IndexPageState
 135            {
 136                Tasks = new List<TaskItem>(),
 137                RemainingTime = TimeSpan.FromMinutes(Constants.Timer.DefaultPomodoroMinutes),
 138                CurrentSessionType = SessionType.Pomodoro,
 139                IsTimerStarted = false
 140            };
 41        }
 33742    }
 43}
 44
 45public class IndexPageState
 46{
 47    public List<TaskItem> Tasks { get; set; } = new();
 48    public Guid? CurrentTaskId { get; set; }
 49    public TimeSpan RemainingTime { get; set; }
 50    public SessionType CurrentSessionType { get; set; }
 51    public bool IsTimerRunning { get; set; }
 52    public bool IsTimerPaused { get; set; }
 53    public bool IsTimerStarted { get; set; }
 54}