object ParseResponse(EwsServiceXmlReader reader)
    {
        GetClientExtensionResponse response = new GetClientExtensionResponse();

        response.LoadFromXml(reader, XmlElementNames.GetClientExtensionResponse);
        return(response);
    }
    /// <summary>
    /// Executes this request.
    /// </summary>
    /// <returns>Service response.</returns>
    GetClientExtensionResponse Execute()
    {
        GetClientExtensionResponse serviceResponse = (GetClientExtensionResponse)this.InternalExecute();

        serviceResponse.ThrowIfNecessary();
        return(serviceResponse);
    }
示例#3
0
        // Token: 0x06000B51 RID: 2897 RVA: 0x0002DA14 File Offset: 0x0002BC14
        internal static Dictionary <string, ExtensionData> GetOrgExtensions(StringList requestedExtensionIds, string domain, bool shouldReturnEnabledOnly, bool isUserScope, string userId, StringList userEnabledExtensionIds, StringList userDisabledExtensionIds, out OrgExtensionTable.RequestData requestData, bool isDebug, out string orgMasterTableRawXml, bool retrieveOnly1_0 = false)
        {
            Dictionary <string, ExtensionData> dictionary       = new Dictionary <string, ExtensionData>(StringComparer.OrdinalIgnoreCase);
            Collection <ClientExtension>       clientExtensions = null;
            string orgRawXml = null;

            OrgExtensionTable.RequestData requestDataSave = new OrgExtensionTable.RequestData();
            requestData = requestDataSave;
            OrgExtensionTable.ExecuteWebServicesAction(delegate
            {
                Stopwatch stopwatch = new Stopwatch();
                stopwatch.Start();
                ExchangeService exchangeService = OrgExtensionTable.CreateExchangeServiceDelegate(domain, requestDataSave);
                if (exchangeService == null)
                {
                    return;
                }
                if (OrgExtensionTable.GetClientExtensionTimeoutIsAllowed())
                {
                    exchangeService.Timeout = 30000;
                }
                requestDataSave.CreateExchangeServiceTime   = stopwatch.ElapsedMilliseconds;
                GetClientExtensionResponse clientExtension2 = exchangeService.GetClientExtension(requestedExtensionIds, shouldReturnEnabledOnly, isUserScope, userId, userEnabledExtensionIds, userDisabledExtensionIds, isDebug);
                stopwatch.Stop();
                requestDataSave.GetClientExtensionTime = stopwatch.ElapsedMilliseconds - requestDataSave.CreateExchangeServiceTime;
                requestDataSave.ExchangeServiceUri     = exchangeService.Url;
                string text;
                if (exchangeService.HttpResponseHeaders.TryGetValue("request-id", out text))
                {
                    requestDataSave.EwsRequestId = text.Replace("-", string.Empty);
                }
                else
                {
                    requestDataSave.EwsRequestId = "NotFound";
                }
                clientExtensions = clientExtension2.ClientExtensions;
                if (isDebug && !string.IsNullOrWhiteSpace(clientExtension2.RawMasterTableXml))
                {
                    try
                    {
                        byte[] bytes = Convert.FromBase64String(clientExtension2.RawMasterTableXml);
                        orgRawXml    = Encoding.UTF8.GetString(bytes);
                    }
                    catch (FormatException innerException)
                    {
                        throw new OwaExtensionOperationException(innerException);
                    }
                    catch (ArgumentException innerException2)
                    {
                        throw new OwaExtensionOperationException(innerException2);
                    }
                }
            });
            if (clientExtensions != null)
            {
                foreach (ClientExtension clientExtension in clientExtensions)
                {
                    try
                    {
                        ExtensionData extensionData = ExtensionData.CreateFromClientExtension(clientExtension);
                        if (!retrieveOnly1_0 || !(extensionData.SchemaVersion != SchemaConstants.SchemaVersion1_0))
                        {
                            ExtensionData extensionData2;
                            if (!dictionary.TryGetValue(extensionData.ExtensionId, out extensionData2) || !(extensionData.SchemaVersion < extensionData2.SchemaVersion))
                            {
                                dictionary[ExtensionDataHelper.FormatExtensionId(extensionData.ExtensionId)] = extensionData;
                            }
                        }
                    }
                    catch (OwaExtensionOperationException ex)
                    {
                        OrgExtensionTable.Tracer.TraceError <OwaExtensionOperationException>(0L, "skipping an org extension because it cannot be parsed. Exception: {0}", ex);
                        ExtensionDiagnostics.Logger.LogEvent(ApplicationLogicEventLogConstants.Tuple_OrgExtensionParsingFailed, null, new object[]
                        {
                            "ProcessOrgExtensions",
                            ExtensionDiagnostics.GetLoggedExceptionString(ex)
                        });
                    }
                }
            }
            orgMasterTableRawXml = orgRawXml;
            return(dictionary);
        }