/// <summary> /// Tries to read element from XML. /// </summary> /// <param name="reader">The reader.</param> /// <returns>True if element was read.</returns> internal override bool TryReadElementFromXml(EwsServiceXmlReader reader) { switch (reader.LocalName) { case XmlElementNames.Manifest: this.Manifest = ClientApp.ReadToXmlDocument(reader); return(true); case XmlElementNames.Metadata: this.Metadata = new ClientAppMetadata(); this.Metadata.LoadFromXml(reader, XmlNamespace.Types, XmlElementNames.Metadata); return(true); default: return(false); } }
/// <summary> /// Read the response from Exchange 2013. /// This method assumes that the reader is currently at the Manifests element. /// </summary> /// <param name="reader">The reader.</param> private void ReadFromExchange2013(EwsServiceXmlReader reader) { ////<GetAppManifestsResponse ResponseClass="Success" xmlns="http://schemas.microsoft.com/exchange/services/2006/messages"> ////<ResponseCode>NoError</ResponseCode> ////<m:Manifests xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages"> ////<m:Manifest>[base 64 encoded manifest]</m:Manifest> <--- reader should be at this node at the beginning of loop ////<m:Manifest>[base 64 encoded manifest]</m:Manifest> //// .... ////</m:Manifests> <--- reader should be at this node at the end of the loop while (reader.IsStartElement(XmlNamespace.Messages, XmlElementNames.Manifest)) { XmlDocument manifest = ClientApp.ReadToXmlDocument(reader); this.Manifests.Add(manifest); this.Apps.Add(new ClientApp() { Manifest = manifest }); } }