From 7c17c5182f4f4de8c5755eb92e803c0be20d667f Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Fri, 3 Apr 2015 21:24:49 -0400 Subject: add bulk sync remove --- .../Sync/TargetDataProvider.cs | 104 ++------------------- 1 file changed, 9 insertions(+), 95 deletions(-) (limited to 'MediaBrowser.Server.Implementations/Sync/TargetDataProvider.cs') diff --git a/MediaBrowser.Server.Implementations/Sync/TargetDataProvider.cs b/MediaBrowser.Server.Implementations/Sync/TargetDataProvider.cs index dea868848..3323ae148 100644 --- a/MediaBrowser.Server.Implementations/Sync/TargetDataProvider.cs +++ b/MediaBrowser.Server.Implementations/Sync/TargetDataProvider.cs @@ -42,11 +42,6 @@ namespace MediaBrowser.Server.Implementations.Sync _appHost = appHost; } - private string GetCachePath() - { - return Path.Combine(_appPaths.DataPath, "sync", _target.Id.GetMD5().ToString("N") + ".json"); - } - private string GetRemotePath() { var parts = new List @@ -66,37 +61,17 @@ namespace MediaBrowser.Server.Implementations.Sync return _fileSystem.GetValidFilename(filename); } - private async Task CacheData(Stream stream) - { - var cachePath = GetCachePath(); - - await _cacheFileLock.WaitAsync().ConfigureAwait(false); - - try - { - Directory.CreateDirectory(Path.GetDirectoryName(cachePath)); - using (var fileStream = _fileSystem.GetFileStream(cachePath, FileMode.Create, FileAccess.Write, FileShare.Read, true)) - { - await stream.CopyToAsync(fileStream).ConfigureAwait(false); - } - } - catch (Exception ex) - { - _logger.ErrorException("Error saving sync data to {0}", ex, cachePath); - } - finally - { - _cacheFileLock.Release(); - } - } - private async Task EnsureData(CancellationToken cancellationToken) { if (_items == null) { try { - using (var stream = await _provider.GetFile(GetRemotePath(), _target, new Progress(), cancellationToken)) + var path = GetRemotePath(); + + _logger.Debug("Getting {0} from {1}", path, _provider.Name); + + using (var stream = await _provider.GetFile(path, _target, new Progress(), cancellationToken)) { _items = _json.DeserializeFromStream>(stream); } @@ -109,15 +84,6 @@ namespace MediaBrowser.Server.Implementations.Sync { _items = new List(); } - - using (var memoryStream = new MemoryStream()) - { - _json.SerializeToStream(_items, memoryStream); - - // Now cache it - memoryStream.Position = 0; - await CacheData(memoryStream).ConfigureAwait(false); - } } } @@ -130,10 +96,6 @@ namespace MediaBrowser.Server.Implementations.Sync // Save to sync provider stream.Position = 0; await _provider.SendFile(stream, GetRemotePath(), _target, new Progress(), cancellationToken).ConfigureAwait(false); - - // Now cache it - stream.Position = 0; - await CacheData(stream).ConfigureAwait(false); } } @@ -204,62 +166,14 @@ namespace MediaBrowser.Server.Implementations.Sync return GetData(items => items.FirstOrDefault(i => string.Equals(i.Id, id, StringComparison.OrdinalIgnoreCase))); } - private async Task> GetCachedData() + public Task> GetItems(SyncTarget target, string serverId, string itemId) { - if (_items == null) - { - await _cacheFileLock.WaitAsync().ConfigureAwait(false); - - try - { - if (_items == null) - { - try - { - _items = _json.DeserializeFromFile>(GetCachePath()); - } - catch (FileNotFoundException) - { - _items = new List(); - } - catch (DirectoryNotFoundException) - { - _items = new List(); - } - } - } - finally - { - _cacheFileLock.Release(); - } - } - - return _items.ToList(); + return GetData(items => items.Where(i => string.Equals(i.ServerId, serverId, StringComparison.OrdinalIgnoreCase) && string.Equals(i.ItemId, itemId, StringComparison.OrdinalIgnoreCase)).ToList()); } - public async Task> GetCachedServerItemIds(SyncTarget target, string serverId) + public Task> GetItemsBySyncJobItemId(SyncTarget target, string serverId, string syncJobItemId) { - var items = await GetCachedData().ConfigureAwait(false); - - return items.Where(i => string.Equals(i.ServerId, serverId, StringComparison.OrdinalIgnoreCase)) - .Select(i => i.ItemId) - .ToList(); - } - - public async Task> GetCachedItems(SyncTarget target, string serverId, string itemId) - { - var items = await GetCachedData().ConfigureAwait(false); - - return items.Where(i => string.Equals(i.ServerId, serverId, StringComparison.OrdinalIgnoreCase) && string.Equals(i.ItemId, itemId, StringComparison.OrdinalIgnoreCase)) - .ToList(); - } - - public async Task> GetCachedItemsBySyncJobItemId(SyncTarget target, string serverId, string syncJobItemId) - { - var items = await GetCachedData().ConfigureAwait(false); - - return items.Where(i => string.Equals(i.ServerId, serverId, StringComparison.OrdinalIgnoreCase) && string.Equals(i.SyncJobItemId, syncJobItemId, StringComparison.OrdinalIgnoreCase)) - .ToList(); + return GetData(items => items.Where(i => string.Equals(i.ServerId, serverId, StringComparison.OrdinalIgnoreCase) && string.Equals(i.SyncJobItemId, syncJobItemId, StringComparison.OrdinalIgnoreCase)).ToList()); } } } -- cgit v1.2.3