aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Sync
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2014-12-17 00:30:31 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2014-12-17 00:30:31 -0500
commit13274348e9e2162eca84dc8f20c4d80ade29e8bf (patch)
tree0e38c1b2de2f430b98e24a4b816f3e80404d423e /MediaBrowser.Server.Implementations/Sync
parentfebaab13bf96ded1ded80d5595b138cf5ef1da54 (diff)
sync updates
Diffstat (limited to 'MediaBrowser.Server.Implementations/Sync')
-rw-r--r--MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs16
-rw-r--r--MediaBrowser.Server.Implementations/Sync/SyncManager.cs19
-rw-r--r--MediaBrowser.Server.Implementations/Sync/SyncRepository.cs15
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)
{