Exemple #1
0
        public Stream Build(HeaderBase header, BodyBase body)
        {
            var formattedHeader = _headerBuilder.Build(header);
            var formattedBody   = _bodyBuilder.Build(body);

            var finalContent = _merger.Merge(formattedHeader, formattedBody);

            return(finalContent);
        }
 public WindowPanel(string title = "", float width = 165, System.Type headerType = null) : base(width)
 {
     if (headerType == null)
     {
         headerType = typeof(HeaderWidget);
     }
     _header = (HeaderBase)System.Activator.CreateInstance(headerType, title);
     _header.SetToggleCallback(x => _container.Style.Set(Styles.Hidden, !x));
     _container = new VerticalLayout(width);
     base.AddChild(_header);
     base.AddChild(_container);
 }
Exemple #3
0
        private void WriteValue <TItem>(TItem item, HeaderBase <TItem> header,
                                        int offset, StreamWriter streamWriter, bool shouldWriteOffsetValue)
        {
            var value = header.GetValue(item);

            if (value == null)
            {
                if (shouldWriteOffsetValue)
                {
                    streamWriter.Write(OffsetValue);
                }
            }
            else if (value is bool)
            {
                streamWriter.Write((bool)value ? "Yes" : "No");
                if (shouldWriteOffsetValue)
                {
                    streamWriter.Write(OffsetValue);
                }
            }
            else if (value is DateTime)
            {
                var dateFormat = Thread.CurrentThread.CurrentCulture.DateTimeFormat;
                streamWriter.Write(((DateTime)value).ToString("d", dateFormat));
                if (shouldWriteOffsetValue)
                {
                    streamWriter.Write(OffsetValue);
                }
            }
            else if (value is ICollection)
            {
                // ReSharper disable PossibleMultipleEnumeration
                streamWriter.Write(OffsetValue);
                IEnumerable <HeaderBase <object> > childHeaders = null;
                foreach (var itemValue in value as ICollection)
                {
                    if (itemValue == null)
                    {
                        continue;
                    }
                    streamWriter.Write(Environment.NewLine);
                    Offset(offset, streamWriter);
                    if (childHeaders == null)
                    {
                        childHeaders = CreateHeadersFromProperties <object>(itemValue.GetType());
                    }
                    foreach (var itemHeader in childHeaders)
                    {
                        WriteValue(itemValue, itemHeader, offset, streamWriter,
                                   shouldWriteOffsetValue: UseOffsetBeforeNewLine || !(!UseOffsetBeforeNewLine && childHeaders.Last().Equals(itemHeader)));
                    }
                }
                // ReSharper restore PossibleMultipleEnumeration
            }
            else if (value is string)
            {
                var strVal             = value as string;
                var wrappedInQuotMarks = strVal.StartsWith("\"") && strVal.EndsWith("\"");
                if (wrappedInQuotMarks)
                {
                    streamWriter.Write("\"\"");
                }
                streamWriter.Write(value);
                if (wrappedInQuotMarks)
                {
                    streamWriter.Write("\"\"");
                }
                if (shouldWriteOffsetValue)
                {
                    streamWriter.Write(OffsetValue);
                }
            }
            else if (value is Enum)
            {
                //do nothing
            }
            else
            {
                streamWriter.Write(value.ToString());
                if (shouldWriteOffsetValue)
                {
                    streamWriter.Write(OffsetValue);
                }
            }
        }