Example #1
0
        private StreamErrorType parseStreamErrorType(string s)
        {
            s = s.Replace('-', '_').ToUpper();
            StreamErrorType streamError = StreamErrorType.UNKNOWN;

            Enum.TryParse(s, out streamError);
            return(streamError);
        }
Example #2
0
 //--------------------------------------------------------Constructor:----------------------------------------------------------------\\
 #region --Constructors--
 /// <summary>
 /// Basic Constructor
 /// </summary>
 /// <history>
 /// 10/11/2017 Created [Fabian Sauter]
 /// </history>
 public StreamErrorMessage(XmlNode n)
 {
     ERROR_TYPE = StreamErrorType.UNKNOWN;
     ERROR_TEXT = "";
     if (n.HasChildNodes)
     {
         foreach (XmlNode n1 in n.ChildNodes)
         {
             if (string.Equals(n1.NamespaceURI, Consts.XML_STREAM_ERROR_NAMESPACE))
             {
                 ERROR_TYPE = parseStreamErrorType(n1.Name);
                 ERROR_TEXT = n1.InnerXml;
                 return;
             }
         }
     }
 }
		public StreamErrorElement(XmlNode xml, StreamErrorType errorType) : base(xml)
		{
			this.errorType = errorType;
		}
		/// <summary>
		/// Gets a stream:error element for the specified error and diagnostic text
		/// </summary>
		/// <param name="type">The type of error as listed in RFC 3920.</param>
		/// <param name="text">The diagnostic text associated with the error.</param>
		/// <returns>A new StreamErrorElement for the specified error</returns>
		public static StreamErrorElement GetStreamErrorElement(StreamErrorType type, string text)
		{
			StringWriter xmlString = new StringWriter();
			XmlTextWriter writer = new XmlTextWriter(xmlString);

			writer.WriteStartElement("stream:error");
			writer.WriteAttributeString("xmlns:stream", Session.STREAM_NAMESPACE);
			
			string errorStr = null;
			switch(type)
			{
				case StreamErrorType.UnsupportedVersion:
					errorStr = "unsupported-version";
					break;
				//TODO: ... Lots of cases ...
			}

			writer.WriteStartElement(errorStr, STREAM_ELEMENT_NAMESPACE);
			writer.WriteEndElement();

			writer.WriteStartElement("text", STREAM_ELEMENT_NAMESPACE);
			writer.WriteString(text);
			writer.WriteEndElement();

			writer.WriteEndElement();

			XmlDocument xml = new XmlDocument();
			xml.LoadXml(xmlString.ToString());

			return new StreamErrorElement(xml.DocumentElement);
		}