Пример #1
0
        public IRendering Render(object source, IRenderingEngine engine = null)
        {
            var sourceType = source.GetType();

            var isStructured = RendererUtilities.IsStructured(sourceType);

            return(isStructured ? RenderObject(source, engine) : new PlainTextRendering(source?.ToString()));
        }
Пример #2
0
        public IRendering Render(object source, IRenderingEngine engine = null)
        {
            switch (source)
            {
            case IList sequence:
                var sourceType   = RendererUtilities.GetSequenceElementTypeOrKeyValuePairValueType(sequence);
                var accessors    = RendererUtilities.GetAccessors(sourceType).ToList();
                var keyValueList = sequence.OfType <object>()
                                   .Select((v, i) => new KeyValuePair <object, object>(i, v));
                var headers = RendererUtilities.CreateTableHeaders(accessors, true);
                var rows    = RendererUtilities.CreateTableRowsFromValues(accessors, keyValueList, engine);
                var table   = $@"<table>
{headers}
{rows}
</table>";
                return(new HtmlRendering(table));

            default:
                throw new ArgumentOutOfRangeException($"Sequence type {source.GetType()} not supported ");
            }
        }
Пример #3
0
        public IRendering Render(object source, IRenderingEngine engine = null)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            switch (source)
            {
            case IEnumerable sequence:
                var sourceType = RendererUtilities.GetSequenceElementTypeOrKeyValuePairValueType(sequence);
                var accessors  = RendererUtilities.GetAccessors(sourceType).ToList();
                var headers    = RendererUtilities.CreateTableHeaders(accessors, false);
                var rows       = RendererUtilities.CreateTableRowsFromValues(accessors, sequence, engine);
                var table      = $@"<table>
{headers}
{rows}
</table>";
                return(new HtmlRendering(table));

            default:
                throw new ArgumentOutOfRangeException($"Sequence type {source.GetType()} not supported ");
            }
        }