Add HeartedCategory

This commit is contained in:
jvyden 2022-01-11 02:44:15 -05:00
commit 3aa4aac772
No known key found for this signature in database
GPG key ID: 18BCF2BE0262B278
2 changed files with 22 additions and 14 deletions

View file

@ -12,20 +12,7 @@ namespace LBPUnion.ProjectLighthouse.Helpers
Categories.Add(new TeamPicksCategory());
Categories.Add(new NewestLevelsCategory());
Categories.Add(new QueueCategory());
Categories.Add
(
new CustomCategory
(
"Custom Category",
"This is a custom category!",
"custom1",
"g820614",
new[]
{
35, 37, 2979, 3042,
}
)
);
Categories.Add(new HeartedCategory());
}
}
}

View file

@ -0,0 +1,21 @@
#nullable enable
using System;
using System.Collections.Generic;
using System.Linq;
using LBPUnion.ProjectLighthouse.Types.Levels;
using Microsoft.EntityFrameworkCore;
namespace LBPUnion.ProjectLighthouse.Types.Categories
{
public class HeartedCategory : CategoryWithUser
{
public override string Name { get; set; } = "My Hearted Levels";
public override string Description { get; set; } = "Levels you've hearted in the past";
public override string IconHash { get; set; } = "g820607";
public override string Endpoint { get; set; } = "hearted";
public override Slot? GetPreviewSlot(Database database, User user) => database.HeartedLevels.FirstOrDefault(h => h.UserId == user.UserId)?.Slot;
public override int GetTotalSlots(Database database, User user) => database.HeartedLevels.Count(h => h.UserId == user.UserId);
public override IEnumerable<Slot> GetSlots(Database database, User user, int pageStart, int pageSize)
=> database.HeartedLevels.Where(h => h.UserId == user.UserId).Include(h => h.Slot).Select(h => h.Slot).Skip(pageStart).Take(Math.Min(pageSize, 20));
}
}