namespace MVC_SimpleCRUD_Layered.Application.Models; public class PagingInfo { public int TotalItemsCount { get; set; } public int FilteredItemsCount { get; set; } public int ItemsPerPage { get; set; } public int CurrentPage { get; set; } public string? Sorts { get; set; } public string? SearchText { get; set; } public int TotalPages => Math.Max(1, (int)Math.Ceiling((decimal)FilteredItemsCount / ItemsPerPage)); public bool IsFiltered => !string.IsNullOrWhiteSpace(SearchText); public string ToggleSort(string propertyName) { return string.Equals(Sorts, propertyName, StringComparison.OrdinalIgnoreCase) ? $"-{propertyName}" : propertyName; } public bool IsSortedBy(string propertyName) { return string.Equals(Sorts?.TrimStart('-'), propertyName, StringComparison.OrdinalIgnoreCase); } public bool IsDescending() { return Sorts?.StartsWith("-", StringComparison.Ordinal) == true; } }