Esempio n. 1
0
            public Response Execute(ActiveSync.RequestBase request)
            {
                string url = string.Format(ACTIVESYNC_URL,
                                           _account.Account.ServerURL,
                                           Uri.EscapeDataString(_account.Account.DeviceId),
                                           request.Command,
                                           Uri.EscapeDataString(_account.Account.UserName),
                                           "WindowsOutlook");

                // Construct the body
                WBXMLDocument doc = new WBXMLDocument();

                doc.LoadXml(request.Body);
                doc.VersionNumber = 1.3;
                doc.TagCodeSpace  = new ActiveSyncCodeSpace();
                doc.Encoding      = Encoding.UTF8;
                byte[] contentBody = doc.GetBytes();

                using (HttpContent content = new ByteArrayContent(contentBody))
                {
                    Logger.Instance.Trace(this, "Sending request: {0} -> {1}", _account.Account.ServerURL, doc.ToXMLString());
                    content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.ms-sync.wbxml");
                    string caps = ZPushCapabilities.Client.ToString();
                    Logger.Instance.Trace(this, "Sending request: {0} -> {1}: {2}", _account.Account.ServerURL, caps, doc.ToXMLString());
                    content.Headers.Add(Constants.ZPUSH_HEADER_CLIENT_CAPABILITIES, caps);
                    using (HttpResponseMessage response = _client.PostAsync(url, content, _cancel).Result)
                    {
                        return(new Response(response));
                    }
                }
            }