Ejemplo n.º 1
0
        private void LiWithHeader(StringBuilder sb, string header, IEnumerable <string> messages)
        {
            var enumerable = messages as string[] ?? messages.ToArray();

            if (!enumerable.Any())
            {
                return;
            }

            using (var h2 = new LazyHtml(sb, "h2"))
            {
                h2.Write(header);
            }

            using (var ul = new LazyHtml(sb, "ul"))
            {
                foreach (var message in enumerable)
                {
                    using (var li = new LazyHtml(sb, "li"))
                    {
                        ul.Write(message);
                    }
                }
            }
        }
Ejemplo n.º 2
0
        public string ToHtml()
        {
            var sb = new StringBuilder();

            using (var html = new LazyHtml(sb, "html"))
            {
                using (var body = new LazyHtml(sb, "body"))
                {
                    using (var h1 = new LazyHtml(sb, "h1"))
                    {
                        h1.Write($"Build Report {DateTime.Now.ToString(CultureInfo.InvariantCulture)}");
                    }

                    LiWithHeader(sb, "Warnings", _warnings);

                    foreach (var content in _contents)
                    {
                        Content(sb, content);
                    }

                    foreach (var section in _sections.Where(s => s.Value.Messages.Any()).OrderByDescending(s => s.Value.Priority))
                    {
                        LiWithHeader(sb, section.Key, section.Value.Messages);
                    }

                    LiWithHeader(sb, "Info", _infos);
                }
            }

            return(sb.ToString());
        }
Ejemplo n.º 3
0
        private void Content(StringBuilder sb, KeyValuePair <string, object[]> content)
        {
            if (content.Value.Length == 0)
            {
                return;
            }

            using (var h2 = new LazyHtml(sb, "h2"))
            {
                h2.Write(content.Key);
            }

            var properties = content.Value.First().GetType().GetProperties();

            using (var table = new LazyHtml(sb, "table cellspacing=0 cellpadding=5"))
            {
                using (var trh = new LazyHtml(sb, "tr"))
                {
                    foreach (var property in properties)
                    {
                        using (var tdh = new LazyHtml(sb, "td style=\"border: 1px solid gray\""))
                        {
                            tdh.Write(property.Name);
                        }
                    }
                }

                foreach (var entity in content.Value)
                {
                    using (var tr = new LazyHtml(sb, "tr"))
                    {
                        foreach (var property in properties)
                        {
                            using (var td = new LazyHtml(sb, "td  style=\"border: 1px solid gray\""))
                            {
                                var value = property.GetValue(entity);
                                if (value != null)
                                {
                                    td.Write(value.ToString());
                                }
                            }
                        }
                    }
                }
            }
        }