/// <summary>
/// Returns a list of options for sorting.
/// </summary>
/// <returns>The list of sort options.</returns>
public static IList<SortOption> SortOptions()
{
return new SortOption[]
{
new SortOption("A-Z", list => (list as List<ItemDefinition>).Sort(
(x, y) =>
{
if (x == y) { return 0; }
if (x == null) { return -1;}
if (y == null) { return 1; }
return x?.name.CompareTo(y?.name ?? "") ?? -1;
})),
new SortOption("Z-A", list => (list as List<ItemDefinition>).Sort(
(x, y) =>
{
if (x == y) { return 0; }
if (x == null) { return -1;}
if (y == null) { return 1; }
return y?.name.CompareTo(x?.name ?? "") ?? 1;
})),
new SortOption("Category A-Z",list => (list as List<ItemDefinition>).Sort(
(x, y) =>
{
if (x?.Category == y?.Category) { return 0; }
if (x?.Category == DatabaseValidator.UncategorizedItemCategory) { return -1; }
if (y?.Category == DatabaseValidator.UncategorizedItemCategory) { return 1; }
return x?.Category.name.CompareTo(y?.Category.name ?? "") ?? -1;
})),
new SortOption("Category Z-A",list => (list as List<ItemDefinition>).Sort(
(x, y) =>
{
if (x?.Category == y?.Category) { return 0; }
if (x?.Category == DatabaseValidator.UncategorizedItemCategory) { return -1; }
if (y?.Category == DatabaseValidator.UncategorizedItemCategory) { return 1; }
return y?.Category.name.CompareTo(x?.Category.name ?? "") ?? 1;
})),
};
}