Refactor LBP3 text search to use the category system

This commit is contained in:
Slendy 2023-05-31 20:35:39 -05:00
commit cd926a8415
No known key found for this signature in database
GPG key ID: 7288D68361B91428
11 changed files with 51 additions and 30 deletions

View file

@ -20,6 +20,7 @@ public static class CategoryHelper
Categories.Add(new QueueCategory());
Categories.Add(new HeartedCategory());
Categories.Add(new LuckyDipCategory());
Categories.Add(new TextSearchCategory());
using DatabaseContext database = DatabaseContext.CreateNewInstance();
foreach (DatabaseCategoryEntity category in database.CustomCategories) Categories.Add(new CustomCategory(category));

View file

@ -0,0 +1,22 @@
using LBPUnion.ProjectLighthouse.Database;
using LBPUnion.ProjectLighthouse.Extensions;
using LBPUnion.ProjectLighthouse.Filter;
using LBPUnion.ProjectLighthouse.Filter.Sorts;
using LBPUnion.ProjectLighthouse.Types.Entities.Level;
using LBPUnion.ProjectLighthouse.Types.Entities.Token;
namespace LBPUnion.ProjectLighthouse.Servers.GameServer.Types.Categories;
public class TextSearchCategory : SlotCategory
{
public override string Name { get; set; } = "";
public override string Description { get; set; } = "";
public override string IconHash { get; set; } = "";
public override string Endpoint { get; set; } = "text";
public override string Tag => "text";
public override IQueryable<SlotEntity> GetItems
(DatabaseContext database, GameTokenEntity token, SlotQueryBuilder queryBuilder) =>
database.Slots.Where(queryBuilder.Build())
.ApplyOrdering(new SlotSortBuilder<SlotEntity>().AddSort(new TotalPlaysSort()));
}