public static GriddlyFilterList FilterList(this GriddlyColumn column, IEnumerable <SelectListItem> items, bool isMultiple = true, bool defaultSelectAll = false, string nullItemText = null, bool isNoneAll = true, string field = null, string caption = null, string htmlClass = null, string captionPlural = null) { if (caption == null) { caption = column.Caption; } if (field == null) { field = GetField(column); } if (string.IsNullOrWhiteSpace(caption)) { throw new ArgumentNullException("caption", "Caption must be specified."); } if (string.IsNullOrWhiteSpace(field)) { throw new ArgumentNullException("field", "Field must be specified."); } List <SelectListItem> itemsList = new List <SelectListItem>(); if (!string.IsNullOrWhiteSpace(nullItemText)) { itemsList.Add(new SelectListItem() { Text = nullItemText, Value = "" }); } itemsList.AddRange(items); List <SelectListItem> selectableItemsList = new List <SelectListItem>(); selectableItemsList.AddRange(itemsList.Where(x => !(x is SelectListItemGroup))); selectableItemsList.AddRange(itemsList.Where(x => x is SelectListItemGroup).SelectMany(x => ((SelectListItemGroup)x).Items)); var filter = new GriddlyFilterList() { Field = field, Items = itemsList, SelectableItems = selectableItemsList, Caption = caption, IsMultiple = isMultiple, IsNoneAll = isNoneAll, IsNullable = !string.IsNullOrWhiteSpace(nullItemText), DefaultSelectAll = defaultSelectAll, HtmlClass = htmlClass }; if (captionPlural != null) { filter.CaptionPlural = captionPlural; } return(filter); }
static string GetField(GriddlyColumn column) { string value = null; if (column.ExpressionString != null) { value = column.ExpressionString.Split('.').Last(); if (value.Length > 1) { value = char.ToLower(value[0]) + value.Substring(1); } } return(value); }
public static GriddlyFilterRange FilterRange(this GriddlyColumn column, FilterDataType dataType = FilterDataType.Decimal, string field = null, string fieldEnd = null, string caption = null, string htmlClass = null, string captionPlural = null) { if (caption == null) { caption = column.Caption; } if (field == null) { field = GetField(column) + "Start"; } if (fieldEnd == null) { fieldEnd = GetField(column) + "End"; } if (string.IsNullOrWhiteSpace(caption)) { throw new ArgumentNullException("caption", "Caption must be specified."); } if (string.IsNullOrWhiteSpace(field)) { throw new ArgumentNullException("field", "Field must be specified."); } if (string.IsNullOrWhiteSpace(fieldEnd)) { throw new ArgumentNullException("fieldEnd", "End field must be specified."); } var filter = new GriddlyFilterRange() { Field = field, FieldEnd = fieldEnd, Caption = caption, DataType = dataType, HtmlClass = htmlClass }; if (captionPlural != null) { filter.CaptionPlural = captionPlural; } return(filter); }
public GriddlySettings Add(GriddlyColumn column, Func <GriddlyColumn, GriddlyFilter> filter = null) { if (filter != null) { GriddlyFilter filterDef = filter(column); if (filterDef != null) { column.Filter = filterDef; Filters.Add(filterDef); } } Columns.Add(column); return(this); }
public override void PopulateSummaryValues(GriddlySettings <T> settings) { List <GriddlyColumn> summaryColumns = settings.Columns.Where(x => x.SummaryFunction != null).ToList(); if (summaryColumns.Any()) { StringBuilder aggregateExpression = new StringBuilder(); aggregateExpression.Append("SELECT "); for (int i = 0; i < summaryColumns.Count; i++) { if (i > 0) { aggregateExpression.Append(", "); } GriddlyColumn col = summaryColumns[i]; aggregateExpression.AppendFormat("{0}({1}) AS _a{2}", col.SummaryFunction, col.ExpressionString, i); } string sql = string.Format(_outerSqlTemplate, string.Format("{0} FROM ({1}) [_proj]", aggregateExpression.ToString(), _sql)); try { IDbConnection cn = _getConnection(); IDbTransaction tx = _getTransaction != null?_getTransaction() : null; IDictionary <string, object> item = cn.Query(sql, _param, tx).Single(); for (int i = 0; i < summaryColumns.Count; i++) { summaryColumns[i].SummaryValue = item["_a" + i]; } } catch (Exception ex) { throw new DapperGriddlyException("Error populating summary values.", sql, _param, ex); } } }
public static GriddlyFilterList FilterBool(this GriddlyColumn column, string trueLabel = "Yes", string falseLabel = "No", string nullItemText = null, bool isMultiple = false, bool defaultSelectAll = false, bool isNoneAll = false, string field = null, string caption = null, string htmlClass = null, string captionPlural = null) { return(column.FilterList(BuildBoolItems(trueLabel, falseLabel), isMultiple, defaultSelectAll, nullItemText, isNoneAll, field, caption, htmlClass, captionPlural)); }
public static GriddlyFilterList FilterEnum <T>(this GriddlyColumn column, IEnumerable <T> items, bool isMultiple = true, bool defaultSelectAll = false, string nullItemText = null, bool isNoneAll = true, string field = null, string caption = null, string htmlClass = null, string captionPlural = null) where T : struct { return(column.FilterList(Extensions.ToSelectListItems(items).OrderBy(x => x.Text), isMultiple, defaultSelectAll, nullItemText, isNoneAll, field, caption, htmlClass, captionPlural)); }