public GridColumnCollection(IColumnBuilder <T> columnBuilder, IGridSortSettings sortSettings) { _columnBuilder = columnBuilder; _sortSettings = sortSettings; }
protected override void VisitColumn(IColumnBuilder expression) { base.VisitColumn(expression); this.VisitAlias(expression.Alias); }
public bool Equals(IColumnBuilder left, IColumnBuilder right) { return((ColumnBuilder)left == (ColumnBuilder)right); }
public static Func <IColumnBuilder, bool> Equals(IColumnBuilder column) { return(other => ColumnBuilder.Equals(column, other)); }
public SGrid(IEnumerable <T> items, IQueryCollection query, bool renderOnlyRows, string pagerViewName = GridPager.DefaultPagerViewName, IColumnBuilder <T> columnBuilder = null) : this(items, QueryDictionary <StringValues> .Convert(query), renderOnlyRows, pagerViewName, columnBuilder) { }
public SGrid(IEnumerable <T> items, IQueryCollection query, IColumnBuilder <T> columnBuilder = null) : this(items, QueryDictionary <StringValues> .Convert(query), columnBuilder) { }
public GridColumnCollection(IGrid grid, IColumnBuilder <T> columnBuilder, IGridSortSettings sortSettings) { _grid = grid; _columnBuilder = columnBuilder; SortSettings = sortSettings; }
private CGrid(HttpClient httpClient, string url, Func <QueryDictionary <StringValues>, ItemsDTO <T> > dataService, Func <QueryDictionary <StringValues>, Task <ItemsDTO <T> > > dataServiceAsync, IQueryDictionary <StringValues> query, bool renderOnlyRows, Action <IGridColumnCollection <T> > columns = null, CultureInfo cultureInfo = null, IColumnBuilder <T> columnBuilder = null) { _dataServiceAsync = dataServiceAsync; _dataService = dataService; _selectedItems = new List <object>(); Items = new List <T>(); //response.Items; Url = url; _httpClient = httpClient; _query = query as QueryDictionary <StringValues>; //set up sort settings: _settings = new QueryStringGridSettingsProvider(_query); Sanitizer = new Sanitizer(); if (cultureInfo != null) { CultureInfo.CurrentCulture = cultureInfo; } EmptyGridText = Strings.DefaultGridEmptyText; Language = Strings.Lang; _currentPagerODataProcessor = new PagerGridODataProcessor <T>(this); _currentSortODataProcessor = new SortGridODataProcessor <T>(this, _settings.SortSettings); _currentFilterODataProcessor = new FilterGridODataProcessor <T>(this, _settings.FilterSettings, _settings.SearchSettings); _currentSearchODataProcessor = new SearchGridODataProcessor <T>(this, _settings.SearchSettings); _currentExpandODataProcessor = new ExpandGridODataProcessor <T>(this); _annotations = new GridAnnotationsProvider(); //Set up column collection: if (columnBuilder == null) { _columnBuilder = new DefaultColumnBuilder <T>(this, _annotations); } else { _columnBuilder = columnBuilder; } _columnsCollection = new GridColumnCollection <T>(this, _columnBuilder, _settings.SortSettings); ComponentOptions = new GridOptions(); ApplyGridSettings(); Pager = new GridPager(query); ComponentOptions.RenderRowsOnly = renderOnlyRows; columns?.Invoke(Columns); Mode = GridMode.Grid; CreateEnabled = false; ReadEnabled = false; UpdateEnabled = false; DeleteEnabled = false; ButtonComponents = new QueryDictionary <(string Label, Nullable <MarkupString> Content, Type ComponentType, IList <Action <object> > Actions, IList <Func <object, Task> > Functions, object Object)>(); ButtonCrudComponents = new QueryDictionary <(string Label, Nullable <MarkupString> Content, Type ComponentType, GridMode GridMode, Func <T, bool> ReadMode, Func <T, bool> UpdateMode, Func <T, bool> DeleteMode, IList <Action <object> > Actions, IList <Func <object, Task> > Functions, object Object)>(); }
public CGrid(string url, IQueryDictionary <StringValues> query, bool renderOnlyRows, Action <IGridColumnCollection <T> > columns = null, CultureInfo cultureInfo = null, IColumnBuilder <T> columnBuilder = null) : this(null, url, null, null, query, renderOnlyRows, columns, cultureInfo, columnBuilder) { }
protected override void VisitColumn(IColumnBuilder expression) { base.VisitColumn(expression); this.VisitDirection(expression.Direction); }
public static IColumn <TDatabase, TTable> Column <TDatabase, TTable, TColumn>(this IColumnBuilder <TDatabase, TTable> @this, Expression <Func <TTable, TColumn> > column, SqlType type, bool nullable = false, int?maxLength = null, string name = null, TColumn defaultValue = default(TColumn), bool identity = false, IDatabaseTypeConverter <TColumn> converter = null) { var builder = @this as InternalTableBuilder <TDatabase, TTable>; var property = ExpressionHelpers.ParsePropertySelector(column ?? throw ModelBuilderError.ArgumentNull(nameof(column)).AsException()); { var priorColumn = builder.Columns.FirstOrDefault(c => c.Property.Name == property.Name); if (priorColumn != null) { throw ModelBuilderError.ColumnRepeatedSelector(typeof(TTable).Name, property.Name, priorColumn.Name).AsException(); } } var columnName = name ?? property.Name; if (builder.Columns.Any(t => t.Name == columnName)) { throw ModelBuilderError.ColumnRepeatedName(builder.Name, columnName).AsException(); } if (nullable && identity) { throw ModelBuilderError.ColumnIdentityNullable().AsException(); } if (property.Type.GetTypeInfo().IsEnum) { if (!(type == SqlType.String || SqlTypeHelpers.IsIntegral(type))) { throw ModelBuilderError.ColumnEnumNotStringOrIntegralType().AsException(); } var values = Enum.GetValues(property.Type); if (type == SqlType.String) { var maxValue = values.Cast <object>() .Select(e => e.ToString()) .OrderByDescending(e => e.Length) .First(); if (maxLength != null && maxValue.Length > maxLength) { throw ModelBuilderError.ColumnEnumLongerThanMaxStringSize($"{property.Type.ToString()}.{maxValue}", (int)maxLength).AsException(); } } else { } } builder.Columns.Add(new ColumnModel(name: columnName, property: property, sqlType: type, isNullable: nullable, isIdentity: identity, defaultValue: defaultValue)); return(builder); }