using System.Collections.Generic; using MongoDB.Driver; using LCU.Library.Internal.DocumentIngestorModels.Models.Pagination; namespace LCU.Library.Internal.DocumentModels.Requests.Search; public class Sorter { public static SortDefinition GetSorter(List fields) { SortDefinition? sortDefinition = null; if(fields == null) { return sortDefinition; } fields.Sort((a, b) => a.Position.CompareTo(b.Position)); foreach (var field in fields) { if (sortDefinition == null) { sortDefinition = field.IsDescending ? Builders.Sort.Descending(field.Field) : Builders.Sort.Ascending(field.Field); } else { sortDefinition = field.IsDescending ? sortDefinition.Descending(field.Field) : sortDefinition.Ascending(field.Field); } } return sortDefinition; } }