Smart Filters & Dashboard Customization (#2282)
Co-authored-by: Robbie Davis <robbie@therobbiedavis.com>
This commit is contained in:
parent
3d501c9532
commit
84f85b4f24
92 changed files with 7149 additions and 555 deletions
|
|
@ -14,7 +14,7 @@ namespace API.Extensions.QueryExtensions.Filtering;
|
|||
|
||||
public static class SeriesFilter
|
||||
{
|
||||
|
||||
private const float FloatingPointTolerance = 0.01f;
|
||||
public static IQueryable<Series> HasLanguage(this IQueryable<Series> queryable, bool condition,
|
||||
FilterComparison comparison, IList<string> languages)
|
||||
{
|
||||
|
|
@ -94,7 +94,7 @@ public static class SeriesFilter
|
|||
switch (comparison)
|
||||
{
|
||||
case FilterComparison.Equal:
|
||||
return queryable.Where(s => s.Ratings.Any(r => r.Rating == rating && r.AppUserId == userId));
|
||||
return queryable.Where(s => s.Ratings.Any(r => Math.Abs(r.Rating - rating) < FloatingPointTolerance && r.AppUserId == userId));
|
||||
case FilterComparison.GreaterThan:
|
||||
return queryable.Where(s => s.Ratings.Any(r => r.Rating > rating && r.AppUserId == userId));
|
||||
case FilterComparison.GreaterThanEqual:
|
||||
|
|
@ -252,7 +252,7 @@ public static class SeriesFilter
|
|||
switch (comparison)
|
||||
{
|
||||
case FilterComparison.Equal:
|
||||
subQuery = subQuery.Where(s => s.Percentage == readProgress);
|
||||
subQuery = subQuery.Where(s => Math.Abs(s.Percentage - readProgress) < FloatingPointTolerance);
|
||||
break;
|
||||
case FilterComparison.GreaterThan:
|
||||
subQuery = subQuery.Where(s => s.Percentage > readProgress);
|
||||
|
|
@ -267,7 +267,7 @@ public static class SeriesFilter
|
|||
subQuery = subQuery.Where(s => s.Percentage <= readProgress);
|
||||
break;
|
||||
case FilterComparison.NotEqual:
|
||||
subQuery = subQuery.Where(s => s.Percentage != readProgress);
|
||||
subQuery = subQuery.Where(s => Math.Abs(s.Percentage - readProgress) > FloatingPointTolerance);
|
||||
break;
|
||||
case FilterComparison.Matches:
|
||||
case FilterComparison.Contains:
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@ public static class SeriesSort
|
|||
SortField.LastChapterAdded => query.OrderBy(s => s.LastChapterAdded),
|
||||
SortField.TimeToRead => query.OrderBy(s => s.AvgHoursToRead),
|
||||
SortField.ReleaseYear => query.OrderBy(s => s.Metadata.ReleaseYear),
|
||||
//SortField.ReadProgress => query.OrderBy()
|
||||
_ => query
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -130,6 +130,17 @@ public static class IncludesExtensions
|
|||
query = query.Include(u => u.ScrobbleHolds);
|
||||
}
|
||||
|
||||
if (includeFlags.HasFlag(AppUserIncludes.SmartFilters))
|
||||
{
|
||||
query = query.Include(u => u.SmartFilters);
|
||||
}
|
||||
|
||||
if (includeFlags.HasFlag(AppUserIncludes.DashboardStreams))
|
||||
{
|
||||
query = query.Include(u => u.DashboardStreams)
|
||||
.ThenInclude(s => s.SmartFilter);
|
||||
}
|
||||
|
||||
return query.AsSplitQuery();
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue