|
@@ -296,7 +296,13 @@ namespace Emby.Server.Implementations.EntryPoints
|
|
|
/// <param name="foldersAddedTo">The folders added to.</param>
|
|
|
/// <param name="foldersRemovedFrom">The folders removed from.</param>
|
|
|
/// <param name="cancellationToken">The cancellation token.</param>
|
|
|
- private async Task SendChangeNotifications(List<BaseItem> itemsAdded, List<BaseItem> itemsUpdated, List<BaseItem> itemsRemoved, List<Folder> foldersAddedTo, List<Folder> foldersRemovedFrom, CancellationToken cancellationToken)
|
|
|
+ private async Task SendChangeNotifications(
|
|
|
+ List<BaseItem> itemsAdded,
|
|
|
+ List<BaseItem> itemsUpdated,
|
|
|
+ List<BaseItem> itemsRemoved,
|
|
|
+ List<Folder> foldersAddedTo,
|
|
|
+ List<Folder> foldersRemovedFrom,
|
|
|
+ CancellationToken cancellationToken)
|
|
|
{
|
|
|
var userIds = _sessionManager.Sessions
|
|
|
.Select(i => i.UserId)
|
|
@@ -325,7 +331,12 @@ namespace Emby.Server.Implementations.EntryPoints
|
|
|
|
|
|
try
|
|
|
{
|
|
|
- await _sessionManager.SendMessageToUserSessions(new List<Guid> { userId }, SessionMessageType.LibraryChanged, info, cancellationToken).ConfigureAwait(false);
|
|
|
+ await _sessionManager.SendMessageToUserSessions(
|
|
|
+ new List<Guid> { userId },
|
|
|
+ SessionMessageType.LibraryChanged,
|
|
|
+ info,
|
|
|
+ cancellationToken)
|
|
|
+ .ConfigureAwait(false);
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
@@ -344,7 +355,13 @@ namespace Emby.Server.Implementations.EntryPoints
|
|
|
/// <param name="foldersRemovedFrom">The folders removed from.</param>
|
|
|
/// <param name="userId">The user id.</param>
|
|
|
/// <returns>LibraryUpdateInfo.</returns>
|
|
|
- private LibraryUpdateInfo GetLibraryUpdateInfo(List<BaseItem> itemsAdded, List<BaseItem> itemsUpdated, List<BaseItem> itemsRemoved, List<Folder> foldersAddedTo, List<Folder> foldersRemovedFrom, Guid userId)
|
|
|
+ private LibraryUpdateInfo GetLibraryUpdateInfo(
|
|
|
+ List<BaseItem> itemsAdded,
|
|
|
+ List<BaseItem> itemsUpdated,
|
|
|
+ List<BaseItem> itemsRemoved,
|
|
|
+ List<Folder> foldersAddedTo,
|
|
|
+ List<Folder> foldersRemovedFrom,
|
|
|
+ Guid userId)
|
|
|
{
|
|
|
var user = _userManager.GetUserById(userId);
|
|
|
|
|
@@ -352,20 +369,33 @@ namespace Emby.Server.Implementations.EntryPoints
|
|
|
newAndRemoved.AddRange(foldersAddedTo);
|
|
|
newAndRemoved.AddRange(foldersRemovedFrom);
|
|
|
|
|
|
- var allUserRootChildren = _libraryManager.GetUserRootFolder().GetChildren(user, true).OfType<Folder>().ToList();
|
|
|
+ var allUserRootChildren = _libraryManager.GetUserRootFolder()
|
|
|
+ .GetChildren(user, true)
|
|
|
+ .OfType<Folder>()
|
|
|
+ .ToList();
|
|
|
|
|
|
return new LibraryUpdateInfo
|
|
|
{
|
|
|
- ItemsAdded = itemsAdded.SelectMany(i => TranslatePhysicalItemToUserLibrary(i, user)).Select(i => i.Id.ToString("N", CultureInfo.InvariantCulture)).Distinct().ToArray(),
|
|
|
-
|
|
|
- ItemsUpdated = itemsUpdated.SelectMany(i => TranslatePhysicalItemToUserLibrary(i, user)).Select(i => i.Id.ToString("N", CultureInfo.InvariantCulture)).Distinct().ToArray(),
|
|
|
-
|
|
|
- ItemsRemoved = itemsRemoved.SelectMany(i => TranslatePhysicalItemToUserLibrary(i, user, true)).Select(i => i.Id.ToString("N", CultureInfo.InvariantCulture)).Distinct().ToArray(),
|
|
|
-
|
|
|
- FoldersAddedTo = foldersAddedTo.SelectMany(i => TranslatePhysicalItemToUserLibrary(i, user)).Select(i => i.Id.ToString("N", CultureInfo.InvariantCulture)).Distinct().ToArray(),
|
|
|
-
|
|
|
- FoldersRemovedFrom = foldersRemovedFrom.SelectMany(i => TranslatePhysicalItemToUserLibrary(i, user)).Select(i => i.Id.ToString("N", CultureInfo.InvariantCulture)).Distinct().ToArray(),
|
|
|
-
|
|
|
+ ItemsAdded = itemsAdded.SelectMany(i => TranslatePhysicalItemToUserLibrary(i, user))
|
|
|
+ .Select(i => i.Id.ToString("N", CultureInfo.InvariantCulture))
|
|
|
+ .Distinct()
|
|
|
+ .ToArray(),
|
|
|
+ ItemsUpdated = itemsUpdated.SelectMany(i => TranslatePhysicalItemToUserLibrary(i, user))
|
|
|
+ .Select(i => i.Id.ToString("N", CultureInfo.InvariantCulture))
|
|
|
+ .Distinct()
|
|
|
+ .ToArray(),
|
|
|
+ ItemsRemoved = itemsRemoved.SelectMany(i => TranslatePhysicalItemToUserLibrary(i, user, true))
|
|
|
+ .Select(i => i.Id.ToString("N", CultureInfo.InvariantCulture))
|
|
|
+ .Distinct()
|
|
|
+ .ToArray(),
|
|
|
+ FoldersAddedTo = foldersAddedTo.SelectMany(i => TranslatePhysicalItemToUserLibrary(i, user))
|
|
|
+ .Select(i => i.Id.ToString("N", CultureInfo.InvariantCulture))
|
|
|
+ .Distinct()
|
|
|
+ .ToArray(),
|
|
|
+ FoldersRemovedFrom = foldersRemovedFrom.SelectMany(i => TranslatePhysicalItemToUserLibrary(i, user))
|
|
|
+ .Select(i => i.Id.ToString("N", CultureInfo.InvariantCulture))
|
|
|
+ .Distinct()
|
|
|
+ .ToArray(),
|
|
|
CollectionFolders = GetTopParentIds(newAndRemoved, allUserRootChildren).ToArray()
|
|
|
};
|
|
|
}
|