< Summary - Jellyfin

Information
Class: Emby.Server.Implementations.ScheduledTasks.Tasks.CleanActivityLogTask
Assembly: Emby.Server.Implementations
File(s): /srv/git/jellyfin/Emby.Server.Implementations/ScheduledTasks/Tasks/CleanActivityLogTask.cs
Line coverage
29%
Covered lines: 5
Uncovered lines: 12
Coverable lines: 17
Total lines: 76
Line coverage: 29.4%
Branch coverage
0%
Covered branches: 0
Total branches: 4
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Coverage history

Coverage history 0 25 50 75 100

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
get_Name()100%210%
get_Key()100%210%
get_Description()100%210%
get_Category()100%210%
get_IsHidden()100%210%
get_IsEnabled()100%210%
get_IsLogged()100%210%
ExecuteAsync(...)0%2040%
GetDefaultTriggers()100%11100%

File(s)

/srv/git/jellyfin/Emby.Server.Implementations/ScheduledTasks/Tasks/CleanActivityLogTask.cs

#LineLine coverage
 1using System;
 2using System.Collections.Generic;
 3using System.Threading;
 4using System.Threading.Tasks;
 5using MediaBrowser.Controller.Configuration;
 6using MediaBrowser.Model.Activity;
 7using MediaBrowser.Model.Globalization;
 8using MediaBrowser.Model.Tasks;
 9
 10namespace Emby.Server.Implementations.ScheduledTasks.Tasks;
 11
 12/// <summary>
 13/// Deletes old activity log entries.
 14/// </summary>
 15public class CleanActivityLogTask : IScheduledTask, IConfigurableScheduledTask
 16{
 17    private readonly ILocalizationManager _localization;
 18    private readonly IActivityManager _activityManager;
 19    private readonly IServerConfigurationManager _serverConfigurationManager;
 20
 21    /// <summary>
 22    /// Initializes a new instance of the <see cref="CleanActivityLogTask"/> class.
 23    /// </summary>
 24    /// <param name="localization">Instance of the <see cref="ILocalizationManager"/> interface.</param>
 25    /// <param name="activityManager">Instance of the <see cref="IActivityManager"/> interface.</param>
 26    /// <param name="serverConfigurationManager">Instance of the <see cref="IServerConfigurationManager"/> interface.</p
 27    public CleanActivityLogTask(
 28        ILocalizationManager localization,
 29        IActivityManager activityManager,
 30        IServerConfigurationManager serverConfigurationManager)
 31    {
 2132        _localization = localization;
 2133        _activityManager = activityManager;
 2134        _serverConfigurationManager = serverConfigurationManager;
 2135    }
 36
 37    /// <inheritdoc />
 038    public string Name => _localization.GetLocalizedString("TaskCleanActivityLog");
 39
 40    /// <inheritdoc />
 041    public string Key => "CleanActivityLog";
 42
 43    /// <inheritdoc />
 044    public string Description => _localization.GetLocalizedString("TaskCleanActivityLogDescription");
 45
 46    /// <inheritdoc />
 047    public string Category => _localization.GetLocalizedString("TasksMaintenanceCategory");
 48
 49    /// <inheritdoc />
 050    public bool IsHidden => false;
 51
 52    /// <inheritdoc />
 053    public bool IsEnabled => true;
 54
 55    /// <inheritdoc />
 056    public bool IsLogged => true;
 57
 58    /// <inheritdoc />
 59    public Task ExecuteAsync(IProgress<double> progress, CancellationToken cancellationToken)
 60    {
 061        var retentionDays = _serverConfigurationManager.Configuration.ActivityLogRetentionDays;
 062        if (!retentionDays.HasValue || retentionDays < 0)
 63        {
 064            throw new InvalidOperationException($"Activity Log Retention days must be at least 0. Currently: {retentionD
 65        }
 66
 067        var startDate = DateTime.UtcNow.AddDays(-retentionDays.Value);
 068        return _activityManager.CleanAsync(startDate);
 69    }
 70
 71    /// <inheritdoc />
 72    public IEnumerable<TaskTriggerInfo> GetDefaultTriggers()
 73    {
 2174        return [];
 75    }
 76}