diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-12-17 00:30:31 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-12-17 00:30:31 -0500 |
| commit | 13274348e9e2162eca84dc8f20c4d80ade29e8bf (patch) | |
| tree | 0e38c1b2de2f430b98e24a4b816f3e80404d423e /MediaBrowser.Server.Implementations/Sync | |
| parent | febaab13bf96ded1ded80d5595b138cf5ef1da54 (diff) | |
sync updates
Diffstat (limited to 'MediaBrowser.Server.Implementations/Sync')
3 files changed, 50 insertions, 0 deletions
diff --git a/MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs b/MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs index 1976c0540..e7631069f 100644 --- a/MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs +++ b/MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs @@ -59,6 +59,15 @@ namespace MediaBrowser.Server.Implementations.Sync foreach (var item in items) { + // Respect ItemLimit, if set + if (job.ItemLimit.HasValue) + { + if (jobItems.Count >= job.ItemLimit.Value) + { + break; + } + } + var itemId = item.Id.ToString("N"); var jobItem = jobItems.FirstOrDefault(i => string.Equals(i.ItemId, itemId, StringComparison.OrdinalIgnoreCase)); @@ -89,6 +98,13 @@ namespace MediaBrowser.Server.Implementations.Sync await UpdateJobStatus(job, jobItems).ConfigureAwait(false); } + public Task UpdateJobStatus(string id) + { + var job = _syncRepo.GetJob(id); + + return UpdateJobStatus(job); + } + private Task UpdateJobStatus(SyncJob job) { if (job == null) diff --git a/MediaBrowser.Server.Implementations/Sync/SyncManager.cs b/MediaBrowser.Server.Implementations/Sync/SyncManager.cs index c2f004f0b..6043e8344 100644 --- a/MediaBrowser.Server.Implementations/Sync/SyncManager.cs +++ b/MediaBrowser.Server.Implementations/Sync/SyncManager.cs @@ -265,5 +265,24 @@ namespace MediaBrowser.Server.Implementations.Sync return null; } + + public async Task ReportSyncJobItemTransferred(string id) + { + var jobItem = _repo.GetJobItem(id); + + jobItem.Status = SyncJobItemStatus.Completed; + jobItem.Progress = 100; + + await _repo.Update(jobItem).ConfigureAwait(false); + + var processor = new SyncJobProcessor(_libraryManager, _repo, this, _logger, _userManager); + + await processor.UpdateJobStatus(jobItem.JobId).ConfigureAwait(false); + } + + public SyncJobItem GetJobItem(string id) + { + return _repo.GetJobItem(id); + } } } diff --git a/MediaBrowser.Server.Implementations/Sync/SyncRepository.cs b/MediaBrowser.Server.Implementations/Sync/SyncRepository.cs index a9e319cc4..7825b9e9a 100644 --- a/MediaBrowser.Server.Implementations/Sync/SyncRepository.cs +++ b/MediaBrowser.Server.Implementations/Sync/SyncRepository.cs @@ -352,6 +352,11 @@ namespace MediaBrowser.Server.Implementations.Sync } cmd.Parameters.Add(cmd, "@Status", DbType.String).Value = SyncJobStatus.Completed.ToString(); } + if (!string.IsNullOrWhiteSpace(query.TargetId)) + { + whereClauses.Add("TargetId=@TargetId"); + cmd.Parameters.Add(cmd, "@TargetId", DbType.String).Value = query.TargetId; + } var whereTextWithoutPaging = whereClauses.Count == 0 ? string.Empty : @@ -447,6 +452,16 @@ namespace MediaBrowser.Server.Implementations.Sync whereClauses.Add("JobId=@JobId"); cmd.Parameters.Add(cmd, "@JobId", DbType.String).Value = query.JobId; } + if (!string.IsNullOrWhiteSpace(query.TargetId)) + { + whereClauses.Add("TargetId=@TargetId"); + cmd.Parameters.Add(cmd, "@TargetId", DbType.String).Value = query.TargetId; + } + if (query.Status.HasValue) + { + whereClauses.Add("Status=@Status"); + cmd.Parameters.Add(cmd, "@Status", DbType.String).Value = query.Status.Value.ToString(); + } if (query.IsCompleted.HasValue) { |
