protected override void AddWebRequestHeaders(HttpWebRequest request)
        {
            base.AddWebRequestHeaders(request);
            EasExtensionCapabilities extensionCapabilities = base.EasConnectionSettings.ExtensionCapabilities;

            if (extensionCapabilities != null && extensionCapabilities.SupportsExtensions(EasExtensionsVersion1.FolderTypes))
            {
                request.Headers.Add("X-OLK-Extension", extensionCapabilities.RequestExtensions(EasExtensionsVersion1.FolderTypes));
            }
        }
Example #2
0
        protected override OptionsResponse ExtractResponse(HttpWebResponse webResponse)
        {
            base.LogInfoHeaders(webResponse.Headers);
            string responseHeader  = webResponse.GetResponseHeader("MS-ASProtocolCommands");
            string responseHeader2 = webResponse.GetResponseHeader("MS-ASProtocolVersions");
            string responseHeader3 = webResponse.GetResponseHeader("X-OLK-Extensions");

            if (string.IsNullOrWhiteSpace(responseHeader) || string.IsNullOrWhiteSpace(responseHeader2))
            {
                return(new OptionsResponse
                {
                    OptionsStatus = OptionsStatus.MissingHeaderInResponse
                });
            }
            string[] first = (from sValue in responseHeader.Split(new char[]
            {
                ','
            })
                              select sValue.Trim()).ToArray <string>();
            string[] second = (from sValue in responseHeader2.Split(new char[]
            {
                ','
            })
                               select sValue.Trim()).ToArray <string>();
            string[] capabilities = (from sValue in responseHeader3.Split(new char[]
            {
                ','
            })
                                     select sValue.Trim()).ToArray <string>();
            EasServerCapabilities    easServerCapabilities    = new EasServerCapabilities(first.Union(second));
            EasExtensionCapabilities easExtensionCapabilities = new EasExtensionCapabilities(capabilities);

            this.OptionsStatus = OptionsStatus.Success;
            return(new OptionsResponse
            {
                OptionsStatus = OptionsStatus.Success,
                EasServerCapabilities = easServerCapabilities,
                EasExtensionCapabilities = easExtensionCapabilities
            });
        }