aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Persistence/CleanDatabaseScheduledTask.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2016-02-01 14:54:49 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2016-02-01 14:54:49 -0500
commit96120099cb2a1d23e46fc32b2985cabd1fa2a84a (patch)
tree9b7719a304a0104d7c946f140c99184825dd6aac /MediaBrowser.Server.Implementations/Persistence/CleanDatabaseScheduledTask.cs
parent4d7c01622451b0a65d02e734e097c0083bb798e7 (diff)
add message for db upgrade
Diffstat (limited to 'MediaBrowser.Server.Implementations/Persistence/CleanDatabaseScheduledTask.cs')
-rw-r--r--MediaBrowser.Server.Implementations/Persistence/CleanDatabaseScheduledTask.cs36
1 files changed, 33 insertions, 3 deletions
diff --git a/MediaBrowser.Server.Implementations/Persistence/CleanDatabaseScheduledTask.cs b/MediaBrowser.Server.Implementations/Persistence/CleanDatabaseScheduledTask.cs
index 69ddb4d13..f4eb4ef8a 100644
--- a/MediaBrowser.Server.Implementations/Persistence/CleanDatabaseScheduledTask.cs
+++ b/MediaBrowser.Server.Implementations/Persistence/CleanDatabaseScheduledTask.cs
@@ -9,11 +9,14 @@ using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Logging;
using System;
using System.Collections.Generic;
+using System.Globalization;
using System.Threading;
using System.Threading.Tasks;
using CommonIO;
using MediaBrowser.Controller.Channels;
using MediaBrowser.Controller.Entities.Audio;
+using MediaBrowser.Controller.Localization;
+using MediaBrowser.Controller.Net;
namespace MediaBrowser.Server.Implementations.Persistence
{
@@ -24,16 +27,21 @@ namespace MediaBrowser.Server.Implementations.Persistence
private readonly ILogger _logger;
private readonly IServerConfigurationManager _config;
private readonly IFileSystem _fileSystem;
+ private readonly IHttpServer _httpServer;
+ private readonly ILocalizationManager _localization;
- public const int MigrationVersion = 7;
+ public const int MigrationVersion = 12;
+ public static bool EnableUnavailableMessage = false;
- public CleanDatabaseScheduledTask(ILibraryManager libraryManager, IItemRepository itemRepo, ILogger logger, IServerConfigurationManager config, IFileSystem fileSystem)
+ public CleanDatabaseScheduledTask(ILibraryManager libraryManager, IItemRepository itemRepo, ILogger logger, IServerConfigurationManager config, IFileSystem fileSystem, IHttpServer httpServer, ILocalizationManager localization)
{
_libraryManager = libraryManager;
_itemRepo = itemRepo;
_logger = logger;
_config = config;
_fileSystem = fileSystem;
+ _httpServer = httpServer;
+ _localization = localization;
}
public string Name
@@ -54,7 +62,23 @@ namespace MediaBrowser.Server.Implementations.Persistence
public async Task Execute(CancellationToken cancellationToken, IProgress<double> progress)
{
var innerProgress = new ActionableProgress<double>();
- innerProgress.RegisterAction(p => progress.Report(.4 * p));
+ innerProgress.RegisterAction(p =>
+ {
+ double newPercentCommplete = .4 * p;
+ if (EnableUnavailableMessage)
+ {
+ var html = "<!doctype html><html><head><title>Emby</title></head><body>";
+ var text = _localization.GetLocalizedString("DbUpgradeMessage");
+ html += string.Format(text, newPercentCommplete.ToString("N2", CultureInfo.InvariantCulture));
+
+ html += "<script>setTimeout(function(){window.location.reload(true);}, 5000);</script>";
+ html += "</body></html>";
+
+ _httpServer.GlobalResponse = html;
+ }
+
+ progress.Report(newPercentCommplete);
+ });
await UpdateToLatestSchema(cancellationToken, innerProgress).ConfigureAwait(false);
@@ -69,6 +93,12 @@ namespace MediaBrowser.Server.Implementations.Persistence
progress.Report(100);
await _itemRepo.UpdateInheritedValues(cancellationToken).ConfigureAwait(false);
+
+ if (EnableUnavailableMessage)
+ {
+ EnableUnavailableMessage = false;
+ _httpServer.GlobalResponse = null;
+ }
}
private async Task UpdateToLatestSchema(CancellationToken cancellationToken, IProgress<double> progress)