mirror of
https://github.com/LBPUnion/ProjectLighthouse.git
synced 2025-08-02 10:08:39 +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();
|
PaginationData pageData = this.Request.GetPaginationData();
|
||||||
|
|
||||||
SlotQueryBuilder queryBuilder = this.FilterFromRequest(token);
|
SlotQueryBuilder queryBuilder = this.FilterFromRequest(token);
|
||||||
|
queryBuilder.AddFilter(new LockedSlotFilter());
|
||||||
|
|
||||||
pageData.TotalElements = await StatisticsHelper.SlotCount(this.database, queryBuilder);
|
pageData.TotalElements = await StatisticsHelper.SlotCount(this.database, queryBuilder);
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
using LBPUnion.ProjectLighthouse.Database;
|
using LBPUnion.ProjectLighthouse.Database;
|
||||||
using LBPUnion.ProjectLighthouse.Extensions;
|
using LBPUnion.ProjectLighthouse.Extensions;
|
||||||
using LBPUnion.ProjectLighthouse.Filter;
|
using LBPUnion.ProjectLighthouse.Filter;
|
||||||
|
using LBPUnion.ProjectLighthouse.Filter.Filters;
|
||||||
using LBPUnion.ProjectLighthouse.Filter.Sorts;
|
using LBPUnion.ProjectLighthouse.Filter.Sorts;
|
||||||
using LBPUnion.ProjectLighthouse.Types.Entities.Level;
|
using LBPUnion.ProjectLighthouse.Types.Entities.Level;
|
||||||
using LBPUnion.ProjectLighthouse.Types.Entities.Token;
|
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 Endpoint { get; set; } = "lucky_dip";
|
||||||
public override string Tag => "lucky_dip";
|
public override string Tag => "lucky_dip";
|
||||||
|
|
||||||
public override IQueryable<SlotEntity> GetItems(DatabaseContext database, GameTokenEntity token, SlotQueryBuilder queryBuilder) =>
|
public override IQueryable<SlotEntity> GetItems(DatabaseContext database, GameTokenEntity token, SlotQueryBuilder queryBuilder)
|
||||||
database.Slots.Where(queryBuilder.Build())
|
{
|
||||||
|
queryBuilder.AddFilter(new LockedSlotFilter());
|
||||||
|
return database.Slots.Where(queryBuilder.Build())
|
||||||
.ApplyOrdering(new SlotSortBuilder<SlotEntity>().AddSort(new RandomFirstUploadedSort()));
|
.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
Add a link
Reference in a new issue