add error handling to package retrieval

pull/702/head
Luke Pulverenti 9 years ago
parent d661472844
commit dbc9beab22

@ -194,7 +194,9 @@ namespace MediaBrowser.Common.Implementations.Updates
/// <returns>Task{List{PackageInfo}}.</returns> /// <returns>Task{List{PackageInfo}}.</returns>
public async Task<IEnumerable<PackageInfo>> GetAvailablePackagesWithoutRegistrationInfo(CancellationToken cancellationToken) public async Task<IEnumerable<PackageInfo>> GetAvailablePackagesWithoutRegistrationInfo(CancellationToken cancellationToken)
{ {
using (var stream = await GetCachedPackages(cancellationToken).ConfigureAwait(false)) try
{
using (var stream = _fileSystem.OpenRead(PackageCachePath))
{ {
var packages = _jsonSerializer.DeserializeFromStream<List<PackageInfo>>(stream).ToList(); var packages = _jsonSerializer.DeserializeFromStream<List<PackageInfo>>(stream).ToList();
@ -206,25 +208,22 @@ namespace MediaBrowser.Common.Implementations.Updates
return packages; return packages;
} }
} }
catch (Exception)
private string PackageCachePath
{ {
get { return Path.Combine(_appPaths.CachePath, "serverpackages.json"); }
} }
private async Task<Stream> GetCachedPackages(CancellationToken cancellationToken) _lastPackageUpdateTime = DateTime.MinValue;
{ await UpdateCachedPackages(cancellationToken, true).ConfigureAwait(false);
try using (var stream = _fileSystem.OpenRead(PackageCachePath))
{ {
return _fileSystem.OpenRead(PackageCachePath); return _jsonSerializer.DeserializeFromStream<List<PackageInfo>>(stream).ToList();
} }
catch (Exception)
{
} }
await UpdateCachedPackages(cancellationToken, true).ConfigureAwait(false); private string PackageCachePath
return _fileSystem.OpenRead(PackageCachePath); {
get { return Path.Combine(_appPaths.CachePath, "serverpackages.json"); }
} }
private readonly SemaphoreSlim _updateSemaphore = new SemaphoreSlim(1, 1); private readonly SemaphoreSlim _updateSemaphore = new SemaphoreSlim(1, 1);

Loading…
Cancel
Save