Beispiel #1
0
        /// <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);
        }
Beispiel #3
0
        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);
        }