diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-01-03 14:38:22 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-01-03 14:38:22 -0500 |
| commit | 36295aa833bf5d152613500a4546aa76314150a8 (patch) | |
| tree | 3c82888e4c848ad0d834601b69d2eb311b0e94eb /MediaBrowser.Server.Implementations/Sync/SyncManager.cs | |
| parent | 769c282fd153a8273c67ff870df204b3b2ad1637 (diff) | |
use SocketHttpListener project
Diffstat (limited to 'MediaBrowser.Server.Implementations/Sync/SyncManager.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Sync/SyncManager.cs | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/MediaBrowser.Server.Implementations/Sync/SyncManager.cs b/MediaBrowser.Server.Implementations/Sync/SyncManager.cs index 68eaa38d35..3b2d70f849 100644 --- a/MediaBrowser.Server.Implementations/Sync/SyncManager.cs +++ b/MediaBrowser.Server.Implementations/Sync/SyncManager.cs @@ -37,7 +37,7 @@ namespace MediaBrowser.Server.Implementations.Sync private readonly Func<IDtoService> _dtoService; private readonly IApplicationHost _appHost; private readonly ITVSeriesManager _tvSeriesManager; - private readonly Func<IMediaEncoder> MediaEncoder; + private readonly Func<IMediaEncoder> _mediaEncoder; private ISyncProvider[] _providers = { }; @@ -51,7 +51,7 @@ namespace MediaBrowser.Server.Implementations.Sync _dtoService = dtoService; _appHost = appHost; _tvSeriesManager = tvSeriesManager; - MediaEncoder = mediaEncoder; + _mediaEncoder = mediaEncoder; } public void AddParts(IEnumerable<ISyncProvider> providers) @@ -61,7 +61,7 @@ namespace MediaBrowser.Server.Implementations.Sync public async Task<SyncJobCreationResult> CreateJob(SyncJobRequest request) { - var processor = new SyncJobProcessor(_libraryManager, _repo, this, _logger, _userManager, _tvSeriesManager, MediaEncoder()); + var processor = new SyncJobProcessor(_libraryManager, _repo, this, _logger, _userManager, _tvSeriesManager, _mediaEncoder()); var user = _userManager.GetUserById(request.UserId); @@ -165,7 +165,7 @@ namespace MediaBrowser.Server.Implementations.Sync if (item == null) { - var processor = new SyncJobProcessor(_libraryManager, _repo, this, _logger, _userManager, _tvSeriesManager, MediaEncoder()); + var processor = new SyncJobProcessor(_libraryManager, _repo, this, _logger, _userManager, _tvSeriesManager, _mediaEncoder()); var user = _userManager.GetUserById(job.UserId); @@ -395,7 +395,7 @@ namespace MediaBrowser.Server.Implementations.Sync await _repo.Update(jobItem).ConfigureAwait(false); - var processor = new SyncJobProcessor(_libraryManager, _repo, this, _logger, _userManager, _tvSeriesManager, MediaEncoder()); + var processor = new SyncJobProcessor(_libraryManager, _repo, this, _logger, _userManager, _tvSeriesManager, _mediaEncoder()); await processor.UpdateJobStatus(jobItem.JobId).ConfigureAwait(false); } @@ -532,6 +532,22 @@ namespace MediaBrowser.Server.Implementations.Sync } } + // Now check each item that's on the device + foreach (var itemId in request.LocalItemIds) + { + // See if it's already marked for removal + if (response.ItemIdsToRemove.Contains(itemId, StringComparer.OrdinalIgnoreCase)) + { + continue; + } + + // If there isn't a sync job for this item, mark it for removal + if (!jobItemResult.Items.Any(i => string.Equals(itemId, i.ItemId, StringComparison.OrdinalIgnoreCase))) + { + response.ItemIdsToRemove.Add(itemId); + } + } + response.ItemIdsToRemove = response.ItemIdsToRemove.Distinct(StringComparer.OrdinalIgnoreCase).ToList(); return response; |
