// Token: 0x060011D2 RID: 4562 RVA: 0x00067D78 File Offset: 0x00065F78
        protected List <MailboxData> GetReadyToExecuteJobs(IntegrityCheckQueryFlags flags)
        {
            List <MailboxData> list = new List <MailboxData>(10);

            PropValue[][] rows = null;
            try
            {
                TimeBasedAssistant.TrackAdminRpcCalls(base.DatabaseInfo, "Client=Maintenance", delegate(ExRpcAdmin rpcAdmin)
                {
                    rows = rpcAdmin.StoreIntegrityCheckEx(this.DatabaseInfo.Guid, Guid.Empty, Guid.Empty, 2U, (uint)flags, null, StoreIntegrityCheckAssistantBase.columnsToRequest);
                });
            }
            catch (MapiRetryableException innerException)
            {
                throw new SkipException(innerException);
            }
            catch (MapiPermanentException innerException2)
            {
                throw new SkipException(innerException2);
            }
            if (rows != null)
            {
                foreach (PropValue[] array in rows)
                {
                    list.Add(new StoreIntegrityCheckAssistantBase.StoreIntegrityCheckJob(base.DatabaseInfo.Guid, array[0].GetInt(), array[1].GetGuid(), array[2].GetGuid()));
                }
            }
            return(list);
        }
        // Token: 0x060011B3 RID: 4531 RVA: 0x000679D8 File Offset: 0x00065BD8
        protected List <MailboxData> GetMailboxesToProcess(MailboxTableFlags mailboxTableFlags)
        {
            List <MailboxData> list = new List <MailboxData>(10);

            PropValue[][] rows = null;
            try
            {
                TimeBasedAssistant.TrackAdminRpcCalls(base.DatabaseInfo, "Client=Maintenance", delegate(ExRpcAdmin rpcAdmin)
                {
                    rows = rpcAdmin.GetMailboxTableInfo(this.DatabaseInfo.Guid, Guid.Empty, mailboxTableFlags, StoreMaintenanceAssistant.columnsToRequest);
                });
            }
            catch (MapiRetryableException innerException)
            {
                throw new SkipException(innerException);
            }
            catch (MapiPermanentException innerException2)
            {
                throw new SkipException(innerException2);
            }
            if (rows != null)
            {
                foreach (PropValue[] array in rows)
                {
                    list.Add(new StoreMaintenanceAssistant.MaintenanceMailboxData(array[0].GetGuid(), base.DatabaseInfo.Guid, array[1].GetInt(), array[2].GetGuid()));
                }
            }
            return(list);
        }
 // Token: 0x060011B2 RID: 4530 RVA: 0x0006791C File Offset: 0x00065B1C
 protected override void InvokeInternal(InvokeArgs invokeArgs, List <KeyValuePair <string, object> > customDataToLog)
 {
     StoreMaintenanceAssistant.MaintenanceMailboxData maintenanceMailboxData = invokeArgs.MailboxData as StoreMaintenanceAssistant.MaintenanceMailboxData;
     try
     {
         TimeBasedAssistant.TrackAdminRpcCalls(base.DatabaseInfo, "Client=Maintenance", delegate(ExRpcAdmin rpcAdmin)
         {
             rpcAdmin.ExecuteTask(this.DatabaseInfo.Guid, maintenanceMailboxData.MaintenanceId, maintenanceMailboxData.MailboxNumber);
             if (maintenanceMailboxData.MailboxNumber == 0)
             {
                 customDataToLog.Add(new KeyValuePair <string, object>("DatabaseMaintenance", maintenanceMailboxData.MaintenanceId.ToString()));
                 return;
             }
             customDataToLog.Add(new KeyValuePair <string, object>("MailboxMaintenance", maintenanceMailboxData.MaintenanceId.ToString()));
             customDataToLog.Add(new KeyValuePair <string, object>("Mailbox", maintenanceMailboxData.MailboxGuid.ToString()));
         });
     }
     catch (MapiRetryableException innerException)
     {
         throw new SkipException(innerException);
     }
     catch (MapiPermanentException innerException2)
     {
         throw new SkipException(innerException2);
     }
 }
 // Token: 0x060011D1 RID: 4561 RVA: 0x00067CAC File Offset: 0x00065EAC
 protected override void InvokeInternal(InvokeArgs invokeArgs, List <KeyValuePair <string, object> > customDataToLog)
 {
     StoreIntegrityCheckAssistantBase.StoreIntegrityCheckJob job = invokeArgs.MailboxData as StoreIntegrityCheckAssistantBase.StoreIntegrityCheckJob;
     try
     {
         TimeBasedAssistant.TrackAdminRpcCalls(base.DatabaseInfo, "Client=Maintenance", delegate(ExRpcAdmin rpcAdmin)
         {
             rpcAdmin.StoreIntegrityCheckEx(this.DatabaseInfo.Guid, job.MailboxGuid, job.JobGuid, 6U, (uint)this.ExecutionFlags, null, null);
             customDataToLog.Add(new KeyValuePair <string, object>("StoreIntegrityCheck", job.JobGuid.ToString()));
         });
     }
     catch (MapiRetryableException innerException)
     {
         throw new SkipException(innerException);
     }
     catch (MapiPermanentException innerException2)
     {
         throw new SkipException(innerException2);
     }
 }
        // Token: 0x06000FD2 RID: 4050 RVA: 0x0005D6C0 File Offset: 0x0005B8C0
        private StoreStatistics GetStoreStatistics(DatabaseInfo databaseInfo, Guid mailboxGuid)
        {
            StoreStatistics result = null;

            TimeBasedAssistant.TrackAdminRpcCalls(databaseInfo, "Client=TBA", delegate(ExRpcAdmin admin)
            {
                PropValue[][] mailboxTableInfo = admin.GetMailboxTableInfo(databaseInfo.Guid, mailboxGuid, SearchIndexRepairAssistant.StorePropTags);
                if (mailboxTableInfo.Length != 1)
                {
                    throw new AssistantException(Strings.IndexRepairUnexpectedRpcResultLength(mailboxTableInfo.Length));
                }
                if (mailboxTableInfo[0].Length != SearchIndexRepairAssistant.StorePropTags.Length)
                {
                    throw new AssistantException(Strings.IndexRepairUnexpectedRpcResultRowLength(mailboxTableInfo[0].Length));
                }
                int @int = mailboxTableInfo[0][0].GetInt();
                int int2 = mailboxTableInfo[0][1].GetInt();
                result   = new StoreStatistics((long)@int, (long)int2);
            });
            return(result);
        }