diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2016-02-02 21:51:00 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2016-02-02 21:51:00 -0500 |
| commit | 998f7c0fb8d52200b9d55c80787fb237631b5ecd (patch) | |
| tree | cf42b1dfef6501da68fb404a74b782881f946239 /MediaBrowser.Server.Implementations/Persistence/CleanDatabaseScheduledTask.cs | |
| parent | bb26e05e1e71fbbf0bc842f591a2157fa471b2be (diff) | |
update clean db task
Diffstat (limited to 'MediaBrowser.Server.Implementations/Persistence/CleanDatabaseScheduledTask.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Persistence/CleanDatabaseScheduledTask.cs | 73 |
1 files changed, 43 insertions, 30 deletions
diff --git a/MediaBrowser.Server.Implementations/Persistence/CleanDatabaseScheduledTask.cs b/MediaBrowser.Server.Implementations/Persistence/CleanDatabaseScheduledTask.cs index f4eb4ef8a..1bbe42426 100644 --- a/MediaBrowser.Server.Implementations/Persistence/CleanDatabaseScheduledTask.cs +++ b/MediaBrowser.Server.Implementations/Persistence/CleanDatabaseScheduledTask.cs @@ -65,17 +65,7 @@ namespace MediaBrowser.Server.Implementations.Persistence 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; - } + OnProgress(newPercentCommplete); progress.Report(newPercentCommplete); }); @@ -83,12 +73,22 @@ namespace MediaBrowser.Server.Implementations.Persistence await UpdateToLatestSchema(cancellationToken, innerProgress).ConfigureAwait(false); innerProgress = new ActionableProgress<double>(); - innerProgress.RegisterAction(p => progress.Report(40 + (.05 * p))); + innerProgress.RegisterAction(p => + { + double newPercentCommplete = 40 + (.05 * p); + OnProgress(newPercentCommplete); + progress.Report(newPercentCommplete); + }); await CleanDeadItems(cancellationToken, innerProgress).ConfigureAwait(false); progress.Report(45); innerProgress = new ActionableProgress<double>(); - innerProgress.RegisterAction(p => progress.Report(45 + (.55 * p))); + innerProgress.RegisterAction(p => + { + double newPercentCommplete = 45 + (.55 * p); + OnProgress(newPercentCommplete); + progress.Report(newPercentCommplete); + }); await CleanDeletedItems(cancellationToken, innerProgress).ConfigureAwait(false); progress.Report(100); @@ -101,6 +101,21 @@ namespace MediaBrowser.Server.Implementations.Persistence } } + private void OnProgress(double newPercentCommplete) + { + 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; + } + } + private async Task UpdateToLatestSchema(CancellationToken cancellationToken, IProgress<double> progress) { var itemIds = _libraryManager.GetItemIds(new InternalItemsQuery @@ -117,27 +132,25 @@ namespace MediaBrowser.Server.Implementations.Persistence { cancellationToken.ThrowIfCancellationRequested(); - if (itemId == Guid.Empty) + if (itemId != Guid.Empty) { // Somehow some invalid data got into the db. It probably predates the boundary checking - continue; - } - - var item = _libraryManager.GetItemById(itemId); + var item = _libraryManager.GetItemById(itemId); - if (item != null) - { - try - { - await _itemRepo.SaveItem(item, cancellationToken).ConfigureAwait(false); - } - catch (OperationCanceledException) - { - throw; - } - catch (Exception ex) + if (item != null) { - _logger.ErrorException("Error saving item", ex); + try + { + await _itemRepo.SaveItem(item, cancellationToken).ConfigureAwait(false); + } + catch (OperationCanceledException) + { + throw; + } + catch (Exception ex) + { + _logger.ErrorException("Error saving item", ex); + } } } |
