// Token: 0x060008FE RID: 2302 RVA: 0x00035AF4 File Offset: 0x00033CF4
        private static void ConvertV7StickyOptions(FolderSyncState syncState)
        {
            XmlNode       xmlNode       = null;
            ByteArrayData byteArrayData = (ByteArrayData)syncState[CustomStateDatumType.CachedOptionsNode];

            if (byteArrayData == null || byteArrayData.Data == null)
            {
                return;
            }
            using (MemoryStream memoryStream = new MemoryStream(byteArrayData.Data))
            {
                using (WbxmlReader wbxmlReader = new WbxmlReader(memoryStream))
                {
                    xmlNode = wbxmlReader.ReadXmlDocument().FirstChild;
                    if (xmlNode == null)
                    {
                        return;
                    }
                }
            }
            using (MemoryStream memoryStream2 = new MemoryStream(50))
            {
                WbxmlWriter wbxmlWriter = new WbxmlWriter(memoryStream2);
                XmlElement  xmlElement  = xmlNode.OwnerDocument.CreateElement("Collection", "AirSync:");
                xmlElement.AppendChild(xmlNode);
                wbxmlWriter.WriteXmlDocumentFromElement(xmlElement);
                syncState[CustomStateDatumType.CachedOptionsNode] = new ByteArrayData(memoryStream2.ToArray());
            }
        }
Example #2
0
        // Token: 0x06000C2F RID: 3119 RVA: 0x0003FD5C File Offset: 0x0003DF5C
        private void BuildMultiPartResponse(XmlDocument xmlResponse)
        {
            StringBuilder stringBuilder = null;

            if (base.MailboxLoggingEnabled && base.MailboxLogger != null)
            {
                stringBuilder = new StringBuilder();
                stringBuilder.Append("----------------------- Multipart Response ---------------------\r\n");
            }
            using (BinaryWriter binaryWriter = new BinaryWriter(base.OutputStream))
            {
                AirSyncStream airSyncStream = new AirSyncStream();
                base.Context.Response.BuildMultiPartWbXmlResponse(xmlResponse, airSyncStream);
                this.multipartStreams.Insert(0, airSyncStream);
                binaryWriter.Write(this.multipartStreams.Count);
                if (stringBuilder != null)
                {
                    stringBuilder.AppendFormat("Number of Parts: {0}\r\n", this.multipartStreams.Count);
                }
                int num = 4 + this.multipartStreams.Count * 8;
                for (int i = 0; i < this.multipartStreams.Count; i++)
                {
                    long length = this.multipartStreams[i].Length;
                    binaryWriter.Write(num);
                    binaryWriter.Write((int)length);
                    if (stringBuilder != null)
                    {
                        stringBuilder.AppendFormat("Part {0}: offset {1}, size {2}\r\n", i, num, length);
                    }
                    num += (int)length;
                }
                for (int j = 0; j < this.multipartStreams.Count; j++)
                {
                    StreamHelper.CopyStream(this.multipartStreams[j], base.OutputStream, (int)this.multipartStreams[j].Length);
                    if (stringBuilder != null && j == 0)
                    {
                        stringBuilder.AppendLine();
                        this.multipartStreams[j].Seek(0L, SeekOrigin.Begin);
                        using (WbxmlReader wbxmlReader = new WbxmlReader(this.multipartStreams[j]))
                        {
                            stringBuilder.Append(AirSyncUtility.BuildOuterXml(wbxmlReader.ReadXmlDocument(), !GlobalSettings.EnableMailboxLoggingVerboseMode));
                        }
                        stringBuilder.AppendLine();
                    }
                }
                if (stringBuilder != null)
                {
                    base.MailboxLogger.SetData(MailboxLogDataName.ResponseBody, stringBuilder.ToString());
                }
            }
        }
Example #3
0
        XmlDocument IAirSyncRequest.LoadRequestDocument()
        {
            XmlDocument result      = null;
            Stream      inputStream = ((IAirSyncRequest)this).InputStream;

            if (string.Equals(this.httpRequest.ContentType, "application/vnd.ms-sync.wbxml", StringComparison.OrdinalIgnoreCase) && inputStream.Length > 0L)
            {
                inputStream.Seek(0L, SeekOrigin.Begin);
                using (WbxmlReader wbxmlReader = new WbxmlReader(inputStream))
                {
                    result = wbxmlReader.ReadXmlDocument();
                }
            }
            return(result);
        }