/// <summary> /// Parses the message XML. /// </summary> /// <param name="reader">The reader.</param> private void ParseMessageXml(EwsServiceXmlReader reader) { do { reader.Read(); if (reader.IsStartElement()) { switch (reader.LocalName) { case XmlElementNames.Value: this.errorDetails.Add(reader.ReadAttributeValue(XmlAttributeNames.Name), reader.ReadElementValue()); break; case XmlElementNames.FieldURI: this.errorProperties.Add(ServiceObjectSchema.FindPropertyDefinition(reader.ReadAttributeValue(XmlAttributeNames.FieldURI))); break; case XmlElementNames.IndexedFieldURI: this.errorProperties.Add( new IndexedPropertyDefinition( reader.ReadAttributeValue(XmlAttributeNames.FieldURI), reader.ReadAttributeValue(XmlAttributeNames.FieldIndex))); break; case XmlElementNames.ExtendedFieldURI: ExtendedPropertyDefinition extendedPropDef = new ExtendedPropertyDefinition(); extendedPropDef.LoadFromXml(reader); this.errorProperties.Add(extendedPropDef); break; default: break; } } } while (!reader.IsEndElement(XmlNamespace.Messages, XmlElementNames.MessageXml)); }