38 lines
1014 B
C#
38 lines
1014 B
C#
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;
|
|
}
|
|
}
|