/// <summary> /// Renders the table. /// </summary> /// <returns></returns> public IHtmlContent Render() { this.CheckConfiguration(); if (!_config.Rows.Any()) { IEnumerable <T> entities = _config.Paging.PageSize > 0 ? _model.Entities.Take(_config.Paging.PageSize) : _model.Entities; // No row configuration has been performed. // Create row configs from the entities. foreach (var row in entities.Select(e => new RowConfig <T>(e))) { _config.Rows.Add(row); } } if (_config.Paging.PageSize > 0 && _config.Rows.Count() > _config.Paging.PageSize) { IEnumerable <RowConfig <T> > rows = _config.Rows.Take(_config.Paging.PageSize).ToList(); // Apply paging. _config.Rows.Clear(); foreach (var row in rows) { _config.Rows.Add(row); } } return(_renderer.Render(_config, _model.EntityCount)); }
public TableBuilderTest() { TableModel <TableEntity> model = new TableModel <TableEntity>(Enumerable.Empty <TableEntity>()); _renderer = Substitute.For <ITableRenderer <TableEntity> >(); _renderer.Render(Arg.Do <ITableConfig <TableEntity> >(tc => _config = tc), Arg.Any <int>()); _builderFactory = Substitute.For <IBuilderFactory>(); _tableConfig = Substitute.For <ITableConfig <TableEntity> >(); _tableConfig.Paging.Returns(new PagingConfig()); _tableConfig.Update.Returns(new UpdateConfig()); _tableConfig.Columns.Returns(new Dictionary <string, ColumnConfig>()); _builder = new TableBuilder <TableEntity>(model, _renderer, _builderFactory, _tableConfig); }
public IHtmlContent Render(CardConfig config, ITableRenderer tableRenderer, IListGroupRenderer listGroupRenderer) { Element = new TagBuilder("div"); this.BaseConfig(config, "card", "bg-"); this.AddElement(new TagBuilder("div"), new[] { "card-header" }, config.Header); this.Body(config); if (tableRenderer != null) { Element.InnerHtml.AppendHtml(tableRenderer.Render()); } if (listGroupRenderer != null) { Element.InnerHtml.AppendHtml(listGroupRenderer.Render()); } this.AddElement(new TagBuilder("div"), new[] { "card-footer" }, config.Footer); return(Element); }