mirror of
https://github.com/LBPUnion/ProjectLighthouse.git
synced 2025-04-19 19:14:51 +00:00
filter locked levels from lucky dip (#1055)
* filter locked levels from lucky dip * yeah sure * put the filter in a more reasonable place
This commit is contained in:
parent
a0157c9a99
commit
fb2192d37d
3 changed files with 18 additions and 2 deletions
|
@ -263,6 +263,7 @@ public class SlotsController : ControllerBase
|
|||
PaginationData pageData = this.Request.GetPaginationData();
|
||||
|
||||
SlotQueryBuilder queryBuilder = this.FilterFromRequest(token);
|
||||
queryBuilder.AddFilter(new LockedSlotFilter());
|
||||
|
||||
pageData.TotalElements = await StatisticsHelper.SlotCount(this.database, queryBuilder);
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
using LBPUnion.ProjectLighthouse.Database;
|
||||
using LBPUnion.ProjectLighthouse.Extensions;
|
||||
using LBPUnion.ProjectLighthouse.Filter;
|
||||
using LBPUnion.ProjectLighthouse.Filter.Filters;
|
||||
using LBPUnion.ProjectLighthouse.Filter.Sorts;
|
||||
using LBPUnion.ProjectLighthouse.Types.Entities.Level;
|
||||
using LBPUnion.ProjectLighthouse.Types.Entities.Token;
|
||||
|
@ -16,7 +17,10 @@ public class LuckyDipCategory : SlotCategory
|
|||
public override string Endpoint { get; set; } = "lucky_dip";
|
||||
public override string Tag => "lucky_dip";
|
||||
|
||||
public override IQueryable<SlotEntity> GetItems(DatabaseContext database, GameTokenEntity token, SlotQueryBuilder queryBuilder) =>
|
||||
database.Slots.Where(queryBuilder.Build())
|
||||
public override IQueryable<SlotEntity> GetItems(DatabaseContext database, GameTokenEntity token, SlotQueryBuilder queryBuilder)
|
||||
{
|
||||
queryBuilder.AddFilter(new LockedSlotFilter());
|
||||
return database.Slots.Where(queryBuilder.Build())
|
||||
.ApplyOrdering(new SlotSortBuilder<SlotEntity>().AddSort(new RandomFirstUploadedSort()));
|
||||
}
|
||||
}
|
11
ProjectLighthouse/Filter/Filters/LockedSlotFilter.cs
Normal file
11
ProjectLighthouse/Filter/Filters/LockedSlotFilter.cs
Normal file
|
@ -0,0 +1,11 @@
|
|||
using System;
|
||||
using System.Linq.Expressions;
|
||||
using LBPUnion.ProjectLighthouse.Types.Entities.Level;
|
||||
using LBPUnion.ProjectLighthouse.Types.Filter;
|
||||
|
||||
namespace LBPUnion.ProjectLighthouse.Filter.Filters;
|
||||
|
||||
public class LockedSlotFilter : ISlotFilter
|
||||
{
|
||||
public Expression<Func<SlotEntity, bool>> GetPredicate() => s => !s.InitiallyLocked;
|
||||
}
|
Loading…
Add table
Reference in a new issue