using System.Collections.Generic;
using System.Linq;
using API.Entities;
using API.Helpers;
namespace API.Extensions;
public static class AppUserExtensions
{
///
/// Adds a new SideNavStream to the user's SideNavStreams. This user should have these streams already loaded
///
///
///
public static void CreateSideNavFromLibrary(this AppUser user, Library library)
{
user.SideNavStreams ??= new List();
var maxCount = user.SideNavStreams.Select(s => s.Order).DefaultIfEmpty().Max();
if (user.SideNavStreams.FirstOrDefault(s => s.LibraryId == library.Id) != null) return;
user.SideNavStreams.Add(new AppUserSideNavStream()
{
Name = library.Name,
Order = maxCount + 1,
IsProvided = false,
StreamType = SideNavStreamType.Library,
LibraryId = library.Id,
Visible = true,
});
}
public static void RemoveSideNavFromLibrary(this AppUser user, Library library)
{
user.SideNavStreams ??= new List();
// Find the library and remove it
var item = user.SideNavStreams.FirstOrDefault(s => s.LibraryId == library.Id);
if (item == null) return;
user.SideNavStreams.Remove(item);
OrderableHelper.ReorderItems(user.SideNavStreams);
}
}