aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Sync/SyncRepository.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Server.Implementations/Sync/SyncRepository.cs')
-rw-r--r--MediaBrowser.Server.Implementations/Sync/SyncRepository.cs27
1 files changed, 21 insertions, 6 deletions
diff --git a/MediaBrowser.Server.Implementations/Sync/SyncRepository.cs b/MediaBrowser.Server.Implementations/Sync/SyncRepository.cs
index 0e527ea54..6d77749e0 100644
--- a/MediaBrowser.Server.Implementations/Sync/SyncRepository.cs
+++ b/MediaBrowser.Server.Implementations/Sync/SyncRepository.cs
@@ -459,7 +459,7 @@ namespace MediaBrowser.Server.Implementations.Sync
return null;
}
- public QueryResult<SyncJobItem> GetJobItems(SyncJobItemQuery query)
+ private QueryResult<T> GetJobItemReader<T>(SyncJobItemQuery query, string baseSelectText, Func<IDataReader, T> itemFactory)
{
if (query == null)
{
@@ -468,7 +468,7 @@ namespace MediaBrowser.Server.Implementations.Sync
using (var cmd = _connection.CreateCommand())
{
- cmd.CommandText = BaseJobItemSelectText;
+ cmd.CommandText = baseSelectText;
var whereClauses = new List<string>();
@@ -515,14 +515,14 @@ namespace MediaBrowser.Server.Implementations.Sync
cmd.CommandText += "; select count (Id) from SyncJobItems" + whereTextWithoutPaging;
- var list = new List<SyncJobItem>();
+ var list = new List<T>();
var count = 0;
using (var reader = cmd.ExecuteReader(CommandBehavior.SequentialAccess))
{
while (reader.Read())
{
- list.Add(GetJobItem(reader));
+ list.Add(itemFactory(reader));
}
if (reader.NextResult() && reader.Read())
@@ -531,7 +531,7 @@ namespace MediaBrowser.Server.Implementations.Sync
}
}
- return new QueryResult<SyncJobItem>()
+ return new QueryResult<T>()
{
Items = list.ToArray(),
TotalRecordCount = count
@@ -539,6 +539,16 @@ namespace MediaBrowser.Server.Implementations.Sync
}
}
+ public QueryResult<string> GetLibraryItemIds(SyncJobItemQuery query)
+ {
+ return GetJobItemReader(query, "select ItemId from SyncJobItems", GetItemId);
+ }
+
+ public QueryResult<SyncJobItem> GetJobItems(SyncJobItemQuery query)
+ {
+ return GetJobItemReader(query, BaseJobItemSelectText, GetJobItem);
+ }
+
public Task Create(SyncJobItem jobItem)
{
return Update(jobItem);
@@ -679,10 +689,15 @@ namespace MediaBrowser.Server.Implementations.Sync
info.IsMarkedForRemoval = reader.GetBoolean(13);
info.JobItemIndex = reader.GetInt32(14);
-
+
return info;
}
+ private string GetItemId(IDataReader reader)
+ {
+ return reader.GetString(0);
+ }
+
/// <summary>
/// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
/// </summary>