/
AMachine
/
MMDB_Backend
Обзор
Документация
Войти
/
AMachine
/
MMDB_Backend
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
MMDB.Data/Extensions/NotesSorting.cs
36 строк
1 KB
AssaultMachine
add field Id to filter
19 май 2025, 19:00
19 май 2025, 19:00
1bdc42d
Код
Авторство
О чём код?
using System.Linq.Expressions; using MMDB.Core.Models; using MMDB.Core.FilterParameters; using MMDB.Data.Entities.SS13; namespace MMDB.Data.Extensions; public static class NotesSorting { public static IReadOnlyDictionary<string, Expression<Func<MessageEntity, object?>>> SortSelector = new Dictionary<string, Expression<Func<MessageEntity, object?>>>(StringComparer.OrdinalIgnoreCase) { ["Id"] = n => n.Id, ["Ckey"] = n => n.Targetckey, ["Type"] = n => n.Type, ["ACkey"] = n => n.Adminckey, ["CreatedAt"] = n => n.Timestamp, ["Server"] = n => n.Server, ["RoundId"] = n => n.RoundId, ["IsSecret"] = n => n.Secret, ["ExpiresAt"] = n => n.ExpireTimestamp, ["Severity"] = n => n.Severity, ["PlayTime"] = n => n.Playtime, ["IsDeleted"] = n => n.Deleted, }; public static IQueryable<MessageEntity> Sort(this IQueryable<MessageEntity> notes, NoteParameters parameters) { var sortBy = parameters.SortBy ?? "Ckey"; var descending = parameters.SortDesc ?? false; if (!SortSelector.TryGetValue(sortBy, out var selector)) selector = SortSelector["Ckey"]; return descending ? notes.OrderByDescending(selector) : notes.OrderBy(selector); } }