Exemplo n.º 1
0
        public static bool Read(Stream stream, out IODocument circuitDocument, out DocumentLoadResult loadResult)
        {
            try
            {
                BinaryReader        reader        = new BinaryReader(stream);
                int                 magicNumber   = reader.ReadInt32();
                int                 formatVersion = reader.ReadInt32();
                string              appVersion    = reader.ReadString();
                CDDXContentEncoding contentFlags  = (CDDXContentEncoding)reader.ReadInt32();
                uint                contentOffset = 0;
                if (formatVersion >= 2)
                {
                    contentOffset = reader.ReadUInt32(); // offset to content
                }
                if (formatVersion >= 2)
                {
                    stream.Seek(contentOffset, SeekOrigin.Begin);
                }
                CircuitDocument newDocument = new CircuitDocument();
                if ((contentFlags & CDDXContentEncoding.Deflate) == CDDXContentEncoding.Deflate)
                {
                    DeflateStream deflateStream = new DeflateStream(stream, CompressionMode.Decompress);

                    Xml.XmlReader xmlReader = new Xml.XmlReader();
                    bool          result    = xmlReader.Load(deflateStream);
                    circuitDocument   = xmlReader.Document;
                    loadResult        = xmlReader.LoadResult;
                    loadResult.Format = "CDDX (Legacy 1.0)";
                    return(result);
                }
                else
                {
                    Xml.XmlReader xmlReader = new Xml.XmlReader();
                    bool          result    = xmlReader.Load(stream);
                    circuitDocument   = xmlReader.Document;
                    loadResult        = xmlReader.LoadResult;
                    loadResult.Format = "CDDX (Legacy 1.0)";
                    return(result);
                }
            }
            catch (Exception)
            {
                circuitDocument = null;
                loadResult      = new DocumentLoadResult();
                loadResult.Type = DocumentLoadResultType.FailIncorrectFormat;
                return(false);
            }
        }
 protected override bool HandleElement(Xml.XmlReader reader)
 {
     if (base.HandleElement(reader))
     {
         return(true);
     }
     else if (CanHandleElement(reader, XmlConstants.ValueAnnotation))
     {
         // EF does not support this EDM 3.0 element, so ignore it.
         SkipElement(reader);
         return(true);
     }
     else if (CanHandleElement(reader, XmlConstants.TypeAnnotation))
     {
         // EF does not support this EDM 3.0 element, so ignore it.
         SkipElement(reader);
         return(true);
     }
     return(false);
 }
Exemplo n.º 3
0
        public void ReadXml(Xml.XmlReader reader)
        {
            bool wasEmpty = reader.IsEmptyElement;

            reader.Read();
            if (wasEmpty)
            {
                return;
            }

            while (reader.NodeType != Xml.XmlNodeType.EndElement)
            {
                string key   = reader.GetAttribute("key");
                string value = reader.GetAttribute("value");
                this.Add((TKey)Convert.ChangeType(key, typeof(TKey)),
                         (TValue)Convert.ChangeType(value, typeof(TValue)));
                reader.Read();
                reader.MoveToContent();
            }
            reader.ReadEndElement();
        }
Exemplo n.º 4
0
 void IXmlSerializable.ReadXml(Xml.XmlReader reader)
 {
     this.Value = reader.ReadContentAsString();
 }
Exemplo n.º 5
0
 public static EndpointReference ReadFrom(Xml.XmlReader reader)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 6
0
 void IXmlSerializable.ReadXml(Xml.XmlReader reader)
 {
     this.ResourceKey = reader.GetAttribute("name");
     this.Value       = (ResourceValue)reader.ReadContentAs(typeof(ResourceValue), null);
 }
Exemplo n.º 7
0
        public static List <TextElement> Parse(string text, Style style, bool enabled)
        {
            if (string.IsNullOrEmpty(text))
            {
                return(new List <TextElement>());
            }

            if (enabled)
            {
                text = ConvertBbCodeToHtml(text);
            }
            else
            {
                text = EscapeXml(text);

                text = text.Replace("\r\n", "<br/>");
                text = text.Replace("\n", "<br/>");

                text = text.Replace("&quot;r&quot;n", "<br/>");
                text = text.Replace("&quot;n", "<br/>");
            }

            var element = new TextElement {
                Font = style.Font, Color = style.TextColor
            };
            var lastElement = new TextElement {
                Font = style.Font, Color = style.TextColor
            };
            var result = new List <TextElement>();

            if (_reader == null)
            {
                _reader = new Xml.XmlReader(text);
            }
            else
            {
                _reader.New(text);
            }

            while (_reader.Read())
            {
                switch (_reader.NodeType)
                {
                case XmlNodeType.Element:

                    switch (_reader.Name.ToLower())
                    {
                    case "control":
                        if (_reader.HasAttributes)
                        {
                            while (_reader.MoveToNextAttribute())
                            {
                                if (_reader.Name.Equals("key"))
                                {
                                    element.Control = _reader.Value;
                                }
                                else if (_reader.Name.Equals("data"))
                                {
                                    // element.Data = reader.Value;
                                }
                            }
                        }

                        result.Add(element);
                        element = new TextElement(element);

                        break;

                    case "font":
                        if (_reader.HasAttributes)
                        {
                            lastElement.Color = element.Color;
                            lastElement.Font  = element.Font;

                            while (_reader.MoveToNextAttribute())
                            {
                                if (_reader.Name.Equals("name"))
                                {
                                    element.Font = _reader.Value;
                                }
                                else if (_reader.Name.Equals("color"))
                                {
                                    var color = element.Color.Value;

                                    if (int.TryParse(_reader.Value, System.Globalization.NumberStyles.HexNumber, System.Globalization.CultureInfo.InvariantCulture, out color))
                                    {
                                        element.Color = color;
                                    }
                                    else if (int.TryParse(_reader.Value, System.Globalization.NumberStyles.Integer, System.Globalization.CultureInfo.InvariantCulture, out color))
                                    {
                                        element.Color = color;
                                    }
                                }
                            }
                        }

                        break;

                    case "a":
                        if (_reader.HasAttributes)
                        {
                            while (_reader.MoveToNextAttribute())
                            {
                                if (_reader.Name.Equals("href"))
                                {
                                    element.Href = _reader.Value;
                                }
                            }
                        }
                        break;

                    case "br":
                        element.Linebreak = true;
                        result.Add(element);

                        element = new TextElement(element);
                        break;

                    default: break;
                    }

                    break;

                case XmlNodeType.EndElement:
                    switch (_reader.Name.ToLower())
                    {
                    case "control":
                        element.Font  = lastElement.Font;
                        element.Color = lastElement.Color;
                        break;

                    case "font":
                        element.Font  = lastElement.Font;
                        element.Color = lastElement.Color;
                        break;

                    case "a":
                        element.Href = null;
                        break;
                    }

                    break;

                case XmlNodeType.Text:
                    if (_reader.Value.Length > 0)
                    {
                        element.Text = UnescapeXml(_reader.Value);
                        result.Add(element);

                        element = new TextElement(element);
                    }
                    break;

                default:
                    break;
                }
            }

            return(result);
        }