// Token: 0x060006CD RID: 1741 RVA: 0x00025EEC File Offset: 0x000240EC
        internal override GetSyncStateResult GetExchangeDiagnosticsInfoData(DiagnosableParameters arguments)
        {
            ParsedCallData     parsedCallData = this.ParseCallData(arguments.Argument);
            ExchangePrincipal  mailboxOwner   = ExchangePrincipal.FromProxyAddress(ADSessionSettings.RootOrgOrSingleTenantFromAcceptedDomainAutoDetect(parsedCallData.Mailbox.Domain), parsedCallData.Mailbox.ToString(), RemotingOptions.AllowCrossSite);
            GetSyncStateResult result;

            using (MailboxSession mailboxSession = MailboxSession.OpenAsAdmin(mailboxOwner, CultureInfo.CurrentCulture, "Client=ActiveSync"))
            {
                GetSyncStateResult data = SyncStateDiagnostics.GetData(mailboxSession, parsedCallData);
                if (parsedCallData.FidMapping)
                {
                    this.FillFidMapping(data, mailboxSession);
                }
                result = data;
            }
            return(result);
        }
        // Token: 0x060006CF RID: 1743 RVA: 0x0002622C File Offset: 0x0002442C
        private ParsedCallData ParseCallData(string arguments)
        {
            ParsedCallData parsedCallData = new ParsedCallData();

            parsedCallData.Metadata = true;
            string text = arguments.ToLower().Trim();

            string[] array = text.Split(new char[]
            {
                ';'
            });
            foreach (string text2 in array)
            {
                if (text2.StartsWith("emailaddress="))
                {
                    parsedCallData.Mailbox = SmtpAddress.Parse(text2.Substring("emailaddress=".Length));
                }
                else if (text2.StartsWith("deviceid="))
                {
                    parsedCallData.Metadata = false;
                    parsedCallData.DeviceId = text2.Substring("deviceid=".Length);
                }
                else if (text2.StartsWith("devicetype="))
                {
                    parsedCallData.Metadata   = false;
                    parsedCallData.DeviceType = text2.Substring("devicetype=".Length);
                }
                else if (text2.StartsWith("syncstate="))
                {
                    parsedCallData.Metadata      = false;
                    parsedCallData.SyncStateName = text2.Substring("syncstate=".Length);
                }
                else if (text2.StartsWith("fidmapping"))
                {
                    parsedCallData.Metadata      = false;
                    parsedCallData.FidMapping    = true;
                    parsedCallData.SyncStateName = "FolderIdMapping";
                }
            }
            if (parsedCallData.Mailbox == SmtpAddress.Empty)
            {
                throw new ArgumentException(string.Format("{0} argument MUST be specified and must be a valid Smtp address.", "emailaddress="));
            }
            bool flag  = string.IsNullOrEmpty(parsedCallData.DeviceId);
            bool flag2 = string.IsNullOrEmpty(parsedCallData.DeviceType);

            if (flag != flag2)
            {
                throw new ArgumentException(string.Format("{0} and {1} arguments must be both present.", "deviceid=", "devicetype="));
            }
            if ((!string.IsNullOrEmpty(parsedCallData.SyncStateName) || parsedCallData.FidMapping) && flag)
            {
                throw new ArgumentException(string.Format("If {0} or {1} is specified, then {2} and {3} must also be specified", new object[]
                {
                    "syncstate=",
                    "fidmapping",
                    "deviceid=",
                    "devicetype="
                }));
            }
            return(parsedCallData);
        }