public static bool CouldCompareValuesToReference(this IStringValueField field, object value1, object value2, out int result) { result = 0; if (field.ReferenceGroupingItem == null) { return(false); } var value1IsLabel = string.Equals(value1.ToString(), field.ReferenceGroupingItem.Label); var value2IsLabel = string.Equals(value2.ToString(), field.ReferenceGroupingItem.Label); if (!value1IsLabel && value2IsLabel) { result = -1; return(true); } if (value1IsLabel && value2IsLabel) { result = 0; return(true); } if (value1IsLabel && !value2IsLabel) { result = 1; return(true); } return(false); }
public static IReadOnlyList <GroupingItem> GroupingItemsWithReference(this IStringValueField field, IReadOnlyList <GroupingItem> groupingItems) { var groupings = new List <GroupingItem>(groupingItems); if (field.ReferenceGroupingItem != null) { groupings.Add(field.ReferenceGroupingItem); } return(groupings); }
public static GroupingItem GroupingByName(this IStringValueField field, string name) { return(field.GroupingItems.Find(gi => string.Equals(gi.Label, name))); }