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