public override void ExportToQueryableObject(QueryableObject queryableObject) { base.ExportToQueryableObject(queryableObject); QueryableMailboxDispatcher queryableMailboxDispatcher = queryableObject as QueryableMailboxDispatcher; if (queryableMailboxDispatcher != null) { queryableMailboxDispatcher.MailboxGuid = this.MailboxGuid; queryableMailboxDispatcher.DecayedEventCounter = this.decayedEventCounter; queryableMailboxDispatcher.NumberOfActiveDispatchers = this.numberOfActiveDispatchers; queryableMailboxDispatcher.IsMailboxDead = this.IsMailboxDead; queryableMailboxDispatcher.IsIdle = this.IsIdle; } }
private List <QueryableObject> QueryMailboxDispatcher(object[] parameters, QueryFilter filter) { List <QueryableObject> list = new List <QueryableObject>(); IList <OnlineDatabase> onlineDatabases = OnlineDiagnostics.Instance.databaseManager.GetOnlineDatabases((Guid?)parameters[0]); if (onlineDatabases == null || onlineDatabases.Count != 1) { throw new ArgumentException("Could not find the database specified by DatabaseGuid", "DatabaseGuid"); } IList <MailboxDispatcher> mailboxDispatcher = ((EventControllerPrivate)onlineDatabases[0].EventController).GetMailboxDispatcher((Guid?)parameters[1]); foreach (MailboxDispatcher mailboxDispatcher2 in mailboxDispatcher) { QueryableMailboxDispatcher queryableMailboxDispatcher = new QueryableMailboxDispatcher(); mailboxDispatcher2.ExportToQueryableObject(queryableMailboxDispatcher); if (filter == null || OpathFilterEvaluator.FilterMatches(filter, queryableMailboxDispatcher)) { list.Add(queryableMailboxDispatcher); } } return(list); }