LoadPropertyValueFromXml method

  1. @override
void LoadPropertyValueFromXml(
  1. EwsServiceXmlReader reader,
  2. PropertyBag propertyBag
)
override
Loads from XML. The reader. The property bag.

Implementation

@override
void LoadPropertyValueFromXml(
    EwsServiceXmlReader reader, PropertyBag propertyBag) {
  Set<EffectiveRights> value = Set();

  reader.EnsureCurrentNodeIsStartElementWithNamespace(
      XmlNamespace.Types, this.XmlElementName);

  if (!reader.IsEmptyElement) {
    do {
      reader.Read();

      if (reader.IsStartElement()) {
        switch (reader.LocalName) {
          case XmlElementNames.CreateAssociated:
            if (reader.ReadElementValue<bool>()!) {
              value.add(EffectiveRights.CreateAssociated);
            }
            break;
          case XmlElementNames.CreateContents:
            if (reader.ReadElementValue<bool>()!) {
              value.add(EffectiveRights.CreateContents);
            }
            break;
          case XmlElementNames.CreateHierarchy:
            if (reader.ReadElementValue<bool>()!) {
              value.add(EffectiveRights.CreateHierarchy);
            }
            break;
          case XmlElementNames.Delete:
            if (reader.ReadElementValue<bool>()!) {
              value.add(EffectiveRights.Delete);
            }
            break;
          case XmlElementNames.Modify:
            if (reader.ReadElementValue<bool>()!) {
              value.add(EffectiveRights.Modify);
            }
            break;
          case XmlElementNames.Read:
            if (reader.ReadElementValue<bool>()!) {
              value.add(EffectiveRights.Read);
            }
            break;
          case XmlElementNames.ViewPrivateItems:
            if (reader.ReadElementValue<bool>()!) {
              value.add(EffectiveRights.ViewPrivateItems);
            }
            break;
        }
      }
    } while (!reader.IsEndElementWithNamespace(
        XmlNamespace.Types, this.XmlElementName));
  }

  propertyBag[this] = value;
}