< 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: 77
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>
 15    public 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
 27        public CleanActivityLogTask(
 28            ILocalizationManager localization,
 29            IActivityManager activityManager,
 30            IServerConfigurationManager serverConfigurationManager)
 31        {
 2232            _localization = localization;
 2233            _activityManager = activityManager;
 2234            _serverConfigurationManager = serverConfigurationManager;
 2235        }
 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: {retent
 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        {
 2274            return [];
 75        }
 76    }
 77}