diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2016-01-12 15:12:50 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2016-01-12 15:13:47 -0500 |
| commit | dbc9beab22a2ec4a9e2680505256cb478550a31f (patch) | |
| tree | 8a6ada73659fc4bfb4a8b9a50af362588ec416b0 | |
| parent | d6614728448a82bece05738b1a24f1bff861687e (diff) | |
add error handling to package retrieval
| -rw-r--r-- | MediaBrowser.Common.Implementations/Updates/InstallationManager.cs | 39 |
1 files changed, 19 insertions, 20 deletions
diff --git a/MediaBrowser.Common.Implementations/Updates/InstallationManager.cs b/MediaBrowser.Common.Implementations/Updates/InstallationManager.cs index d155f11c7..8e0df9005 100644 --- a/MediaBrowser.Common.Implementations/Updates/InstallationManager.cs +++ b/MediaBrowser.Common.Implementations/Updates/InstallationManager.cs @@ -194,37 +194,36 @@ namespace MediaBrowser.Common.Implementations.Updates /// <returns>Task{List{PackageInfo}}.</returns> public async Task<IEnumerable<PackageInfo>> GetAvailablePackagesWithoutRegistrationInfo(CancellationToken cancellationToken) { - using (var stream = await GetCachedPackages(cancellationToken).ConfigureAwait(false)) + try { - var packages = _jsonSerializer.DeserializeFromStream<List<PackageInfo>>(stream).ToList(); - - if ((DateTime.UtcNow - _lastPackageUpdateTime) > GetCacheLength()) + using (var stream = _fileSystem.OpenRead(PackageCachePath)) { - UpdateCachedPackages(CancellationToken.None, false); - } - - return packages; - } - } + var packages = _jsonSerializer.DeserializeFromStream<List<PackageInfo>>(stream).ToList(); - private string PackageCachePath - { - get { return Path.Combine(_appPaths.CachePath, "serverpackages.json"); } - } + if ((DateTime.UtcNow - _lastPackageUpdateTime) > GetCacheLength()) + { + UpdateCachedPackages(CancellationToken.None, false); + } - private async Task<Stream> GetCachedPackages(CancellationToken cancellationToken) - { - try - { - return _fileSystem.OpenRead(PackageCachePath); + return packages; + } } catch (Exception) { } + _lastPackageUpdateTime = DateTime.MinValue; await UpdateCachedPackages(cancellationToken, true).ConfigureAwait(false); - return _fileSystem.OpenRead(PackageCachePath); + using (var stream = _fileSystem.OpenRead(PackageCachePath)) + { + return _jsonSerializer.DeserializeFromStream<List<PackageInfo>>(stream).ToList(); + } + } + + private string PackageCachePath + { + get { return Path.Combine(_appPaths.CachePath, "serverpackages.json"); } } private readonly SemaphoreSlim _updateSemaphore = new SemaphoreSlim(1, 1); |
