Exemple #1
0
        public static void PrintTableFromObject <T>(Action <string> write, TextTableBorder border, int padding, int maxLength,
                                                    IEnumerable <T> items, IEnumerable <KeyValuePair <string, string> > properties)
        {
            var t = typeof(T);

            PrintTableFromObject <T>(write, border, padding, maxLength, items, properties.ToDictionary(_ => t.GetProperty(_.Key), _ => _.Value));
        }
Exemple #2
0
        public static void PrintTableFromObject <T>(Action <string> write, TextTableBorder border, int padding, int maxLength, IEnumerable <T> items, IEnumerable <KeyValuePair <PropertyInfo, string> > properties)
        {
            var props  = properties.ToArray();
            var values = items.Select(
                __ => props.Select(prop => prop.Key.GetValue(__)?.ToString()).ToArray())
                         .ToList();

            values.Insert(0, props.Select(_ => _.Value).ToArray());

            PrintTable(write, border, padding, maxLength, values);
        }
Exemple #3
0
        public static void PrintTableFromObject <T>(Action <string> write, TextTableBorder border, int padding, int maxLength,
                                                    IEnumerable <T> items)
        {
            if (!items.Any())
            {
                return;
            }
            var props = items.First().GetType().GetProperties().ToDictionary(_ => _, _ => _.Name);

            PrintTableFromObject(write, border, padding, maxLength, items, props);
        }
Exemple #4
0
        public static void PrintKeyValue(Action <string> write, TextTableBorder border, int keyWidth, int valueWidth, string name, IEnumerable <KeyValuePair <string, string> > values)
        {
            var key = name.PadCenter(keyWidth + valueWidth + 1);

            write(TableBegin(border, key));
            write(TableRow(border, key));
            write(border.Middle2Left + string.Empty.PadLeft(keyWidth, border.Middle2Center) + border.TopIntercection +
                  string.Empty.PadLeft(valueWidth, border.Middle2Center) + border.Middle2Right);

            foreach (var pair in values)
            {
                write(TableRow(border, pair.Key.PadRight(keyWidth), pair.Value.PadRight(valueWidth)));
            }
            write(TableEnd(border, keyWidth, valueWidth));
        }
Exemple #5
0
        public static void PrintTable(Action <string> write, TextTableBorder border, int padding, int maxLength,
                                      string[][] headerWithRows)
        {
            var columns = headerWithRows.First().Count();
            var rows    = headerWithRows.Count();

            var width = Enumerable.Range(0, columns * rows).GroupBy(_ => _ % columns, _ => headerWithRows[_ / columns][_ % columns].TrimToMaxLength(maxLength)).Select(_ => _.Max(__ => __?.Length ?? 0))
                        .Select(_ => _ + padding * 2).ToArray();

            write(TableBegin(border, width));
            write(TableRow(border, headerWithRows.First().Select((_, i) => string.Empty.PadLeft(padding) + _.TrimToMaxLength(maxLength).PadRight(width[i] - padding))));
            write(TableEndRow(border, width));

            foreach (var item in headerWithRows.Skip(1))
            {
                write(TableRow(border, item.Select((_, i) => string.Empty.PadLeft(padding) + (_ ?? string.Empty).TrimToMaxLength(maxLength).PadRight(width[i] - padding))));
            }
            write(TableEnd(border, width));
        }
Exemple #6
0
 public static string TableBegin(TextTableBorder border, IEnumerable <string> values)
 {
     return(TableBegin(border, values.Select(_ => _.Length)));
 }
Exemple #7
0
 public static string TableBegin(TextTableBorder border, IEnumerable <int> values)
 {
     return(border.TopLeft + string.Join(border.TopIntercection.ToString(), values.Select(_ => string.Empty.PadLeft(_, border.TopCenter))) + border.TopRight);
 }
Exemple #8
0
        public static void PrintTable(Action <string> write, TextTableBorder border, int padding, int maxLength, IEnumerable <IEnumerable <string> > headerWithRows)
        {
            var arr = headerWithRows.Select(_ => _.ToArray()).ToArray();

            PrintTable(write, border, padding, maxLength, arr);
        }
Exemple #9
0
 public static void PrintTableFromObject <T>(Action <string> write, TextTableBorder border, int padding, int maxLength, IEnumerable <T> items,
                                             IEnumerable <string> properties)
 {
     PrintTableFromObject(write, border, padding, maxLength, items, properties.ToDictionary(_ => _, _ => _));
 }
Exemple #10
0
 public static void PrintTableFromObject <T>(Action <string> write, TextTableBorder border, int padding, int maxLength, IEnumerable <T> items,
                                             params Expression <Func <T, object> >[] properties)
 {
     PrintTableFromObject(write, border, padding, maxLength, items, properties.Select(_ => GetPropertyInfo(_).Name));
 }
Exemple #11
0
 public static string TableEnd(TextTableBorder border, params int[] values)
 {
     return(TableEnd(border, values.AsEnumerable()));
 }
Exemple #12
0
 private static string TableEndRow(TextTableBorder border, IEnumerable <int> values)
 {
     return(border.Middle2Left + string.Join(border.Middle2Intercection.ToString(), values.Select(_ => string.Empty.PadLeft(_, border.Middle2Center))) + border.Middle2Right);
 }
Exemple #13
0
 private static string TableEndRow(TextTableBorder border, IEnumerable <string> values)
 {
     return(TableEndRow(border, values.Select(_ => _.Length)));
 }
Exemple #14
0
 private static string TableRow(TextTableBorder border, IEnumerable <string> values)
 {
     return(border.Middle1Left + string.Join(border.Middle1Intercection.ToString(), values) + border.Middle1Right);
 }
Exemple #15
0
 public static string TableRow(TextTableBorder border, params string[] values)
 {
     return(TableRow(border, values.AsEnumerable()));
 }