protected virtual IOrderedQueryable <TDatagridViewModel> Process <TDatagridViewModel>(IOrderedQueryable <TDatagridViewModel> collection, ISorterSettings sorterSettings) { return(sorterSettings.SortDirection == SortDirection.Asc ? collection.ThenBy(sorterSettings.ColumnName) : collection.ThenByDescending(sorterSettings.ColumnName)); }
public virtual IList <ISorterSettings> CreateOrderAttributeColumnsSettingsCollection <TDatagridViewModel>(ISorterSettings sorterSettings) { var orderAttributes = (OrderByAttribute[])typeof(TDatagridViewModel).GetCustomAttributes(typeof(OrderByAttribute), true); var sorterSettingsCollection = new List <ISorterSettings>(); if (orderAttributes.Length == 0) { sorterSettingsCollection.Add(sorterSettings); } else { foreach (var orderAttribute in orderAttributes) { sorterSettings = DatagridSettings.Factory.CreateStructure <ISorterSettings>(); sorterSettings.Set(orderAttribute.ColumnName, orderAttribute.Direction); sorterSettingsCollection.Add(sorterSettings); } } return(sorterSettingsCollection); }