// 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); }
protected override void InternalProcessRecord() { TaskLogger.LogEnter(); IntegrityCheckQueryFlags flags = IntegrityCheckQueryFlags.None; Guid guid = this.requestGuid; if (this.jobGuid != Guid.Empty) { flags = IntegrityCheckQueryFlags.QueryJob; guid = this.jobGuid; } bool details = true; if (base.ParameterSetName == "Identity" && this.Detailed == false) { details = false; } List <StoreIntegrityCheckJob> storeIntegrityCheckJob = StoreIntegrityCheckAdminRpc.GetStoreIntegrityCheckJob(this.databaseObject, this.mailboxGuid, guid, flags, details, new Task.TaskErrorLoggingDelegate(base.WriteError), new Task.TaskWarningLoggingDelegate(this.WriteWarning), new Task.TaskVerboseLoggingDelegate(base.WriteVerbose)); if (storeIntegrityCheckJob != null) { this.WriteResult <StoreIntegrityCheckJob>(storeIntegrityCheckJob); } TaskLogger.LogExit(); }
internal static List <StoreIntegrityCheckJob> GetStoreIntegrityCheckJob(Database database, Guid mailboxGuid, Guid requestGuid, IntegrityCheckQueryFlags flags, bool details, Task.TaskErrorLoggingDelegate writeError, Task.TaskWarningLoggingDelegate writeWarning, Task.TaskVerboseLoggingDelegate writeVerbose) { List <StoreIntegrityCheckJob> jobs = new List <StoreIntegrityCheckJob>(); try { StoreIntegrityCheckAdminRpc.ExecuteAdminRpc(database.Guid, delegate(ExRpcAdmin rpcAdmin, string serverFqdn) { int num; int num2; rpcAdmin.GetAdminVersion(out num, out num2); if (num < 7 || (num == 7 && num2 < 15)) { throw new NotSupportedException(); } PropValue[][] array = rpcAdmin.StoreIntegrityCheckEx(database.Guid, mailboxGuid, requestGuid, 2U, (uint)flags, null, StoreIntegrityCheckAdminRpc.JobPropTags); foreach (PropValue[] propValues in array) { jobs.Add(new StoreIntegrityCheckJob(new DatabaseId(null, serverFqdn, database.Name, database.Guid), propValues)); } }, writeError, writeWarning, writeVerbose); } catch (MapiExceptionNetworkError innerException) { writeError(new OnlineIsIntegQueryJobException(database.Identity.ToString(), Strings.ServiceUnavaiable, innerException), ErrorCategory.ResourceUnavailable, database.Identity); } catch (MapiExceptionMdbOffline innerException2) { writeError(new OnlineIsIntegQueryJobException(database.Identity.ToString(), Strings.DatabaseOffline, innerException2), ErrorCategory.InvalidOperation, database.Identity); } catch (MapiPermanentException ex) { writeError(new OnlineIsIntegQueryJobException(database.Identity.ToString(), Strings.UnexpectedError(ex.ToString()), ex), ErrorCategory.InvalidOperation, database.Identity); } catch (MapiRetryableException ex2) { writeError(new OnlineIsIntegQueryJobException(database.Identity.ToString(), Strings.UnexpectedError(ex2.ToString()), ex2), ErrorCategory.InvalidOperation, database.Identity); } if (details) { return(jobs); } return(new List <StoreIntegrityCheckJob> { StoreIntegrityCheckJob.Aggregate(jobs) }); }