ParseMessageXml method

Future<void> ParseMessageXml(
  1. EwsServiceXmlReader reader
)
Parses the message XML. The reader.

Implementation

/* private */
Future<void> ParseMessageXml(EwsServiceXmlReader reader) async {
  do {
    await reader.Read();

    if (reader.IsStartElement()) {
      switch (reader.LocalName) {
        case XmlElementNames.Value:
          this._errorDetails![
                  reader.ReadAttributeValue(XmlAttributeNames.Name)] =
              await reader.ReadElementValue<String>();
          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();
          await extendedPropDef.LoadFromXml(reader);
          this._errorProperties.add(extendedPropDef);
          break;

        default:
          break;
      }
    }
  } while (!reader.IsEndElementWithNamespace(
      XmlNamespace.Messages, XmlElementNames.MessageXml));
}