mirror of
				https://github.com/Kareadita/Kavita.git
				synced 2025-10-31 10:37:04 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			58 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System.Collections.Generic;
 | |
| using System.Linq;
 | |
| using API.Data.Misc;
 | |
| using API.Entities;
 | |
| using API.Helpers;
 | |
| 
 | |
| namespace API.Extensions;
 | |
| #nullable enable
 | |
| 
 | |
| public static class AppUserExtensions
 | |
| {
 | |
|     /// <summary>
 | |
|     /// Adds a new SideNavStream to the user's SideNavStreams. This user should have these streams already loaded
 | |
|     /// </summary>
 | |
|     /// <param name="user"></param>
 | |
|     /// <param name="library"></param>
 | |
|     public static void CreateSideNavFromLibrary(this AppUser user, Library library)
 | |
|     {
 | |
|         user.SideNavStreams ??= new List<AppUserSideNavStream>();
 | |
|         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<AppUserSideNavStream>();
 | |
| 
 | |
|         // 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);
 | |
| 
 | |
|     }
 | |
| 
 | |
|     public static AgeRestriction GetAgeRestriction(this AppUser user)
 | |
|     {
 | |
|         return new AgeRestriction()
 | |
|         {
 | |
|             AgeRating = user.AgeRestriction,
 | |
|             IncludeUnknowns = user.AgeRestrictionIncludeUnknowns,
 | |
|         };
 | |
|     }
 | |
| }
 |