3.0.5464.40000

This commit is contained in:
Luke Pulverenti
2014-12-17 17:39:17 -05:00
parent 3763f7d912
commit e3484bdcc2
10 changed files with 92 additions and 31 deletions

View File

@@ -48,7 +48,7 @@ namespace MediaBrowser.Server.Implementations.Sync
throw new InvalidOperationException("Cannot proceed with sync because user no longer exists.");
}
var items = GetItemsForSync(job.RequestedItemIds, user)
var items = GetItemsForSync(job.RequestedItemIds, user, job.UnwatchedOnly)
.ToList();
var jobItems = _syncRepo.GetJobItems(new SyncJobItemQuery
@@ -171,12 +171,31 @@ namespace MediaBrowser.Server.Implementations.Sync
return _syncRepo.Update(job);
}
public IEnumerable<BaseItem> GetItemsForSync(IEnumerable<string> itemIds, User user)
public IEnumerable<BaseItem> GetItemsForSync(IEnumerable<string> itemIds, User user, bool unwatchedOnly)
{
return itemIds
var items = itemIds
.SelectMany(i => GetItemsForSync(i, user))
.Where(_syncManager.SupportsSync)
.DistinctBy(i => i.Id);
.Where(_syncManager.SupportsSync);
if (unwatchedOnly)
{
// Avoid implicitly captured closure
var currentUser = user;
items = items.Where(i =>
{
var video = i as Video;
if (video != null)
{
return !video.IsPlayed(currentUser);
}
return true;
});
}
return items.DistinctBy(i => i.Id);
}
private IEnumerable<BaseItem> GetItemsForSync(string id, User user)
@@ -200,8 +219,8 @@ namespace MediaBrowser.Server.Implementations.Sync
.GetRecursiveChildren(user);
return itemByName.GetTaggedItems(items);
}
}
if (item.IsFolder)
{
var folder = (Folder)item;

View File

@@ -49,7 +49,7 @@ namespace MediaBrowser.Server.Implementations.Sync
var user = _userManager.GetUserById(request.UserId);
var items = processor
.GetItemsForSync(request.ItemIds, user)
.GetItemsForSync(request.ItemIds, user, request.UnwatchedOnly)
.ToList();
if (items.Any(i => !SupportsSync(i)))

View File

@@ -61,7 +61,7 @@ namespace MediaBrowser.Server.Implementations.Sync
public bool IsHidden
{
get { return false; }
get { return true; }
}
public bool IsEnabled