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)); } }
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 }); }