private List <QueryableObject> QueryEventDispatcher(object[] parameters, QueryFilter filter) { List <QueryableObject> list = new List <QueryableObject>(50); 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"); } EventControllerPrivate eventControllerPrivate = (EventControllerPrivate)onlineDatabases[0].EventController; IList <MailboxDispatcher> mailboxDispatcher = eventControllerPrivate.GetMailboxDispatcher((Guid?)parameters[1]); if (mailboxDispatcher == null) { return(list); } MailboxDispatcher mailboxDispatcher2 = mailboxDispatcher[0]; foreach (EventDispatcherPrivate eventDispatcherPrivate in mailboxDispatcher2.GetEventDispatcher((Guid?)parameters[2])) { QueryableEventDispatcher queryableEventDispatcher = new QueryableEventDispatcher(); eventDispatcherPrivate.ExportToQueryableObject(queryableEventDispatcher); if (filter == null || OpathFilterEvaluator.FilterMatches(filter, queryableEventDispatcher)) { list.Add(queryableEventDispatcher); } } return(list); }
public override CapabilityEvaluationResult Evaluate(ADRawEntry adObject) { if (adObject == null) { throw new ArgumentNullException("adObject"); } ExTraceGlobals.AccessCheckTracer.TraceDebug <string, string>((long)this.GetHashCode(), "Entering SimpleCapabilityIdentifierEvaluator.Evaluate('{0}') CapabilityToCheck '{1}'.", adObject.GetDistinguishedNameOrName(), base.Capability.ToString()); if (!adObject.propertyBag.Contains(SharedPropertyDefinitions.RawCapabilities)) { ExTraceGlobals.AccessCheckTracer.TraceDebug <string, string, string>((long)this.GetHashCode(), "SimpleCapabilityIdentifierEvaluator.Evaluate('{0}') return '{1}'. CapabilityToCheck '{2}' - object doesn't have the Capabilities property.", adObject.GetDistinguishedNameOrName(), CapabilityEvaluationResult.NotApplicable.ToString(), base.Capability.ToString()); return(CapabilityEvaluationResult.NotApplicable); } CapabilityEvaluationResult capabilityEvaluationResult; if (OpathFilterEvaluator.FilterMatches(this.filter, adObject)) { capabilityEvaluationResult = CapabilityEvaluationResult.Yes; } else { capabilityEvaluationResult = CapabilityEvaluationResult.No; } ExTraceGlobals.AccessCheckTracer.TraceDebug <string, string, string>((long)this.GetHashCode(), "SimpleCapabilityIdentifierEvaluator.Evaluate('{0}') return '{1}'. CapabilityToCheck '{2}'", adObject.GetDistinguishedNameOrName(), capabilityEvaluationResult.ToString(), base.Capability.ToString()); return(capabilityEvaluationResult); }
// Token: 0x060004EB RID: 1259 RVA: 0x0001C344 File Offset: 0x0001A544 public bool IsMatch(MailboxProvisioningAttributes attributes) { if (!string.IsNullOrEmpty(this.Value) && this.filter == null) { this.filter = this.ParseFilter(); } return(string.IsNullOrEmpty(this.Value) || OpathFilterEvaluator.FilterMatches(this.filter, attributes.PropertyBag)); }
protected override bool InternalTryValidate(ADRawEntry adObject, out RuleValidationException validationException) { validationException = null; OrganizationValidationRuleDefinition organizationValidationRuleDefinition = base.RuleDefinition as OrganizationValidationRuleDefinition; if (!Datacenter.IsMultiTenancyEnabled()) { ExTraceGlobals.AccessCheckTracer.TraceDebug <string, bool>((long)this.GetHashCode(), "OrganizationValidationRule.InternalTryValidate('{0}') return '{1}'. - not datacenter mode.", adObject.GetDistinguishedNameOrName(), true); return(true); } OrganizationId organizationId = (OrganizationId)adObject[ADObjectSchema.OrganizationId]; ADSessionSettings sessionSettings = OrganizationId.ForestWideOrgId.Equals(organizationId) ? ADSessionSettings.FromRootOrgScopeSet() : ADSessionSettings.FromOrganizationIdWithoutRbacScopesServiceOnly(organizationId); IConfigurationSession session = DirectorySessionFactory.Default.CreateTenantConfigurationSession(adObject.OriginatingServer, true, ConsistencyMode.IgnoreInvalid, sessionSettings, 377, "InternalTryValidate", "f:\\15.00.1497\\sources\\dev\\data\\src\\directory\\ValidationRules\\ValidationRule.cs"); ExchangeConfigurationUnit exchangeConfigurationUnit = ProvisioningCache.Instance.TryAddAndGetOrganizationData <ExchangeConfigurationUnit>(CannedProvisioningCacheKeys.OrganizationCUContainer, organizationId, () => session.Read <ExchangeConfigurationUnit>(organizationId.ConfigurationUnit)); if (exchangeConfigurationUnit == null) { ExTraceGlobals.AccessCheckTracer.TraceDebug <string, bool>((long)this.GetHashCode(), "OrganizationValidationRule.InternalTryValidate('{0}') return '{1}'. - organization (ExchangeConfigurationUnit) object is not found.", adObject.GetDistinguishedNameOrName(), true); return(true); } foreach (ValidationRuleExpression validationRuleExpression in organizationValidationRuleDefinition.OverridingAllowExpressions) { bool flag = true; foreach (PropertyDefinition propertyDefinition in validationRuleExpression.QueryFilter.FilterProperties()) { if (!exchangeConfigurationUnit.propertyBag.Contains((ProviderPropertyDefinition)propertyDefinition)) { ExTraceGlobals.AccessCheckTracer.TraceDebug <string, string>((long)this.GetHashCode(), "ExpressionFilterValidationRule.InternalTryValidate({0}). Missing Property {1}.", exchangeConfigurationUnit.GetDistinguishedNameOrName(), propertyDefinition.Name); flag = false; break; } } if (flag && OpathFilterEvaluator.FilterMatches(validationRuleExpression.QueryFilter, exchangeConfigurationUnit)) { ExTraceGlobals.AccessCheckTracer.TraceDebug <string, bool, string>((long)this.GetHashCode(), "OrganizationValidationRule.InternalTryValidate('{0}') return '{1}'. - matched filter: {2}.", adObject.GetDistinguishedNameOrName(), true, validationRuleExpression.QueryString); return(true); } } foreach (ValidationRuleExpression validationRuleExpression2 in organizationValidationRuleDefinition.RestrictionExpressions) { bool flag2 = true; foreach (PropertyDefinition propertyDefinition2 in validationRuleExpression2.QueryFilter.FilterProperties()) { if (!exchangeConfigurationUnit.propertyBag.Contains((ProviderPropertyDefinition)propertyDefinition2)) { ExTraceGlobals.AccessCheckTracer.TraceDebug <string, string>((long)this.GetHashCode(), "ExpressionFilterValidationRule.InternalTryValidate({0}). Missing Property {1}.", exchangeConfigurationUnit.GetDistinguishedNameOrName(), propertyDefinition2.Name); flag2 = false; break; } } if (flag2 && OpathFilterEvaluator.FilterMatches(validationRuleExpression2.QueryFilter, exchangeConfigurationUnit)) { validationException = new RuleValidationException(base.GetValidationRuleErrorMessage(adObject, validationRuleExpression2.QueryString)); return(false); } } return(true); }
// Token: 0x060071EF RID: 29167 RVA: 0x00179AD0 File Offset: 0x00177CD0 internal BudgetCacheHandlerMetadata GetMetadata(string filter) { QueryFilter queryFilter = null; if (!string.IsNullOrEmpty(filter)) { queryFilter = BudgetCache <T> .ParseWhereClause(filter); } List <T> values = base.Values; BudgetCacheHandlerMetadata budgetCacheHandlerMetadata = new BudgetCacheHandlerMetadata(); budgetCacheHandlerMetadata.TotalCount = base.Count; budgetCacheHandlerMetadata.Efficiency = this.CacheEfficiency; budgetCacheHandlerMetadata.Budgets = new List <BudgetHandlerMetadata>(); foreach (T t in values) { Budget budget = t; if (queryFilter != null) { IReadOnlyPropertyBag readOnlyPropertyBag = budget; if (readOnlyPropertyBag != null && !OpathFilterEvaluator.FilterMatches(queryFilter, readOnlyPropertyBag)) { continue; } } if (budget.Owner.IsServiceAccountBudget) { budgetCacheHandlerMetadata.ServiceAccountBudgets++; } BudgetHandlerMetadata budgetHandlerMetadata = new BudgetHandlerMetadata(); budgetHandlerMetadata.Locked = false; budgetHandlerMetadata.LockedAt = null; budgetHandlerMetadata.LockedUntil = null; float balance = budget.CasTokenBucket.GetBalance(); if (balance >= 0f) { budgetCacheHandlerMetadata.NotThrottled++; } else if (budget.CasTokenBucket.Locked) { budgetHandlerMetadata.Locked = true; budgetHandlerMetadata.LockedAt = budget.CasTokenBucket.LockedAt.ToString(); budgetHandlerMetadata.LockedUntil = budget.CasTokenBucket.LockedUntilUtc.ToString(); budgetCacheHandlerMetadata.InCutoff++; } else { budgetCacheHandlerMetadata.InMicroDelay++; } budgetHandlerMetadata.Key = budget.Owner.ToString(); budgetHandlerMetadata.OutstandingActions = budget.OutstandingActionsCount; budgetHandlerMetadata.Snapshot = budget.ToString(); budgetCacheHandlerMetadata.Budgets.Add(budgetHandlerMetadata); } budgetCacheHandlerMetadata.MatchingCount = budgetCacheHandlerMetadata.Budgets.Count; return(budgetCacheHandlerMetadata); }
// Token: 0x060008DD RID: 2269 RVA: 0x00022FB4 File Offset: 0x000211B4 public ConditionalResults Evaluate(IReadOnlyPropertyBag propertyBag) { if (this.ShouldEvaluate && OpathFilterEvaluator.FilterMatches(this.QueryFilter, propertyBag)) { Interlocked.Increment(ref this.hits); this.LastHitUtc = TimeProvider.UtcNow; return(this.FetchData(propertyBag)); } return(null); }
internal bool Matches(IConfigSchema schema, ISettingsContext context) { if (!this.Enabled || (this.ExpirationDate != DateTime.MinValue && DateTime.UtcNow > this.ExpirationDate)) { return(false); } Exception ex; QueryFilter filter = this.TryParseFilter(schema, null, out ex); return(OpathFilterEvaluator.FilterMatches(filter, null, (PropertyDefinition pdef) => ((SettingsScopeFilterSchema.ScopeFilterPropertyDefinition)pdef).RetrieveValue(context))); }
private List <QueryableObject> QueryDatabaseManager(object[] parameters, QueryFilter filter) { QueryableDatabaseManager queryableDatabaseManager = new QueryableDatabaseManager(); OnlineDiagnostics.Instance.databaseManager.ExportToQueryableObject(queryableDatabaseManager); List <QueryableObject> list = new List <QueryableObject>(1); if (filter == null || OpathFilterEvaluator.FilterMatches(filter, queryableDatabaseManager)) { list.Add(queryableDatabaseManager); } return(list); }
private List <QueryableObject> QueryAssistantType(object[] parameters, QueryFilter filter) { List <QueryableObject> list = new List <QueryableObject>(OnlineDiagnostics.Instance.databaseManager.AssistantTypes.Length); foreach (AssistantType assistantType in OnlineDiagnostics.Instance.databaseManager.AssistantTypes) { QueryableEventBasedAssistantType queryableEventBasedAssistantType = new QueryableEventBasedAssistantType(); assistantType.ExportToQueryableObject(queryableEventBasedAssistantType); if (filter == null || OpathFilterEvaluator.FilterMatches(filter, queryableEventBasedAssistantType)) { list.Add(queryableEventBasedAssistantType); } } return(list); }
private List <QueryableObject> QueryOnlineDatabase(object[] parameters, QueryFilter filter) { IList <OnlineDatabase> onlineDatabases = OnlineDiagnostics.Instance.databaseManager.GetOnlineDatabases((Guid?)parameters[0]); List <QueryableObject> list = new List <QueryableObject>(onlineDatabases.Count); foreach (OnlineDatabase onlineDatabase in onlineDatabases) { QueryableOnlineDatabase queryableOnlineDatabase = new QueryableOnlineDatabase(); onlineDatabase.ExportToQueryableObject(queryableOnlineDatabase); if (filter == null || OpathFilterEvaluator.FilterMatches(filter, queryableOnlineDatabase)) { list.Add(queryableOnlineDatabase); } } return(list); }
protected override void WriteResult(IConfigurable dataObject) { MailboxResourceMonitor mailboxResourceMonitor = (MailboxResourceMonitor)dataObject; if (this.inputFilter != null) { if (OpathFilterEvaluator.FilterMatches(this.inputFilter, mailboxResourceMonitor)) { base.WriteResult(dataObject); return; } } else { base.WriteResult(mailboxResourceMonitor); } }
public override CapabilityEvaluationResult Evaluate(ADRawEntry adObject) { if (adObject == null) { throw new ArgumentNullException("adObject"); } ExTraceGlobals.AccessCheckTracer.TraceDebug <string, string>((long)this.GetHashCode(), "Entering RichCoexistenceCapabilityIdentifierEvaluator.Evaluate('{0}') CapabilityToCheck '{1}'.", adObject.GetDistinguishedNameOrName(), base.Capability.ToString()); if (!adObject.propertyBag.Contains(IADMailStorageSchema.RemoteRecipientType)) { ExTraceGlobals.AccessCheckTracer.TraceDebug <string, string, string>((long)this.GetHashCode(), "RichCoexistenceCapabilityIdentifierEvaluator.Evaluate('{0}') return '{1}'. CapabilityToCheck '{2}'. Object doesnt have 'RemoteRecipientType' property", adObject.GetDistinguishedNameOrName(), CapabilityEvaluationResult.NotApplicable.ToString(), base.Capability.ToString()); return(CapabilityEvaluationResult.NotApplicable); } if (OpathFilterEvaluator.FilterMatches(RichCoexistenceCapabilityIdentifierEvaluator.filter, adObject)) { ExTraceGlobals.AccessCheckTracer.TraceDebug <string, string>((long)this.GetHashCode(), "RichCoexistenceCapabilityIdentifierEvaluator.Evaluate('{0}') adObject has RemoteRecipientType set. CapabilityToCheck '{1}'. ", adObject.GetDistinguishedNameOrName(), base.Capability.ToString()); return(base.Evaluate(adObject)); } ExTraceGlobals.AccessCheckTracer.TraceDebug <string, string, string>((long)this.GetHashCode(), "RichCoexistenceCapabilityIdentifierEvaluator.Evaluate('{0}') return '{1}'. CapabilityToCheck '{2}'", adObject.GetDistinguishedNameOrName(), CapabilityEvaluationResult.No.ToString(), base.Capability.ToString()); return(CapabilityEvaluationResult.No); }
private bool IsInFilter(MobileDevice device) { if (this.inputFilter == null) { throw new InvalidOperationException("The inputFilter should not be null in this case"); } if (device != null) { try { return(OpathFilterEvaluator.FilterMatches(this.inputFilter, device)); } catch (FilterOnlyAttributesException) { return(true); } return(false); } return(false); }
protected override bool InternalTryValidate(ADRawEntry adObject, out RuleValidationException validationException) { validationException = null; CapabilityIdentifierEvaluator capabilityIdentifierEvaluator = base.RestrictedCapabilityEvaluators.FirstOrDefault((CapabilityIdentifierEvaluator x) => CapabilityEvaluationResult.Yes == x.Evaluate(adObject)); ExTraceGlobals.AccessCheckTracer.TraceDebug <string, string>((long)this.GetHashCode(), "ExpressionFilterValidationRule.InternalTryValidate({0}). CurlpritCapability {1}.", adObject.GetDistinguishedNameOrName(), (capabilityIdentifierEvaluator != null) ? capabilityIdentifierEvaluator.Capability.ToString() : "<NULL>"); if (capabilityIdentifierEvaluator == null) { return(true); } foreach (ValidationRuleExpression validationRuleExpression in base.RuleDefinition.Expressions) { if (validationRuleExpression.ApplicableObjects != null && validationRuleExpression.ApplicableObjects.Count > 0) { Type right = validationRuleExpression.ApplicableObjects.FirstOrDefault((Type x) => x.IsAssignableFrom(adObject.GetType())); if (null == right) { ExTraceGlobals.AccessCheckTracer.TraceDebug <string, Type, string>((long)this.GetHashCode(), "ExpressionFilterValidationRule.InternalTryValidate({0}). Object type '{1}' is not on the list of applicable types for expression {2}.", adObject.GetDistinguishedNameOrName(), adObject.GetType(), validationRuleExpression.QueryString); continue; } } bool flag = true; foreach (PropertyDefinition propertyDefinition in validationRuleExpression.QueryFilter.FilterProperties()) { if (!adObject.propertyBag.Contains((ProviderPropertyDefinition)propertyDefinition)) { ExTraceGlobals.AccessCheckTracer.TraceDebug <string, string>((long)this.GetHashCode(), "ExpressionFilterValidationRule.InternalTryValidate({0}). Missing Property {1}.", adObject.GetDistinguishedNameOrName(), propertyDefinition.Name); flag = false; break; } } if (flag && !OpathFilterEvaluator.FilterMatches(validationRuleExpression.QueryFilter, adObject) && !base.IsOverridingAllowCapabilityFound(adObject)) { validationException = new RuleValidationException(base.GetValidationRuleErrorMessage(adObject, capabilityIdentifierEvaluator.Capability)); return(false); } } return(true); }
public override bool Evaluate(RulesEvaluationContext baseContext) { ClientAccessRulesEvaluationContext clientAccessRulesEvaluationContext = (ClientAccessRulesEvaluationContext)baseContext; if (clientAccessRulesEvaluationContext.UserSchema != null && clientAccessRulesEvaluationContext.User != null) { try { QueryParser queryParser = new QueryParser(this.UserRecipientFilter, clientAccessRulesEvaluationContext.UserSchema, QueryParser.Capabilities.All, null, new QueryParser.ConvertValueFromStringDelegate(QueryParserUtils.ConvertValueFromString)); return(OpathFilterEvaluator.FilterMatches(queryParser.ParseTree, clientAccessRulesEvaluationContext.User)); } catch (ParsingException ex) { ExTraceGlobals.ClientAccessRulesTracer.TraceDebug(0L, string.Format("Unexpected exception: {0}", ex.ToString())); } catch (DataSourceOperationException ex2) { ExTraceGlobals.ClientAccessRulesTracer.TraceDebug(0L, string.Format("Missing information in property bag to process Monad Filter rule", ex2.ToString())); } return(false); } return(false); }
protected override bool MeetsAdditionalCriteria(ADRawEntry entry) { return(OpathFilterEvaluator.FilterMatches(this.scopeFilter, entry)); }
protected override void InternalProcessRecord() { TaskLogger.LogEnter(); foreach (Database database in this.databases) { try { Guid mailboxGuid = Guid.Empty; MailboxTableFlags mailboxTableFlags = MailboxTableFlags.MailboxTableFlagsNone; if (null != this.identity) { mailboxGuid = this.identity.MailboxGuid; } if (this.isRunningMailboxStatisticsTask) { mailboxTableFlags |= MailboxTableFlags.IncludeSoftDeletedMailbox; } QueryFilter filter = new MailboxContextFilter(mailboxGuid, (ulong)((long)mailboxTableFlags), this.NoADLookupForMailboxStatistics); IEnumerable <TPresentationObject> enumerable = this.mapiSession.FindPaged <TDataObject, TPresentationObject>(filter, MapiTaskHelper.ConvertDatabaseADObjectToDatabaseId(database), QueryScope.SubTree, null, 0, 0); foreach (TPresentationObject tpresentationObject in enumerable) { try { MailboxId mailboxId = tpresentationObject.Identity as MailboxId; if (this.Identity == null || (null != mailboxId && ((Guid.Empty != this.identity.MailboxGuid && this.identity.MailboxGuid == mailboxId.MailboxGuid) || (!string.IsNullOrEmpty(this.identity.MailboxExchangeLegacyDn) && string.Equals(this.identity.MailboxExchangeLegacyDn, mailboxId.MailboxExchangeLegacyDn, StringComparison.OrdinalIgnoreCase))))) { if (this.isRunningLogonStatisticsTask) { ((LogonStatistics)((object)tpresentationObject)).ServerName = database.ServerName; ((LogonStatistics)((object)tpresentationObject)).DatabaseName = database.Name; } else if (this.isRunningResourceMonitorDigestTask) { ((MailboxResourceMonitor)((object)tpresentationObject)).ServerName = this.server.Name; ((MailboxResourceMonitor)((object)tpresentationObject)).DatabaseName = database.Name; ((MailboxResourceMonitor)((object)tpresentationObject)).IsDatabaseCopyActive = (database.Server.ObjectGuid == this.server.Guid); } else if (this.isRunningMailboxStatisticsTask) { Microsoft.Exchange.Management.MapiTasks.Presentation.MailboxStatistics mailboxStatistics = (Microsoft.Exchange.Management.MapiTasks.Presentation.MailboxStatistics)((object)tpresentationObject); mailboxStatistics.ServerName = this.server.Name; mailboxStatistics.DatabaseName = database.Name; mailboxStatistics.Database = database.Identity; mailboxStatistics.IsDatabaseCopyActive = (database.Server.ObjectGuid == this.server.Guid); MailboxDatabase mailboxDatabase = database as MailboxDatabase; if (mailboxDatabase != null) { mailboxStatistics.DatabaseIssueWarningQuota = mailboxDatabase.IssueWarningQuota; mailboxStatistics.DatabaseProhibitSendQuota = mailboxDatabase.ProhibitSendQuota; mailboxStatistics.DatabaseProhibitSendReceiveQuota = mailboxDatabase.ProhibitSendReceiveQuota; } if (mailboxId != null && this.GetMoveHistoryOption() != MoveHistoryOption.None) { UserMailboxFlags userMailboxFlags = UserMailboxFlags.None; if (database.Recovery) { userMailboxFlags |= UserMailboxFlags.RecoveryMDB; } if (mailboxStatistics.IsMoveDestination ?? false) { userMailboxFlags |= UserMailboxFlags.MoveDestination; } else if (mailboxStatistics.DisconnectReason != null) { if (mailboxStatistics.DisconnectReason.Value == MailboxState.SoftDeleted) { userMailboxFlags |= UserMailboxFlags.SoftDeleted; } else { userMailboxFlags |= UserMailboxFlags.Disconnected; } } try { mailboxStatistics.MoveHistory = MoveHistoryEntry.LoadMoveHistory(mailboxId.MailboxGuid, database.Id.ObjectGuid, this.GetMoveHistoryOption() == MoveHistoryOption.IncludeMoveHistoryAndReport, userMailboxFlags); } catch (LocalizedException exception) { base.WriteError(exception, ErrorCategory.ResourceUnavailable, mailboxId); } } } bool flag = true; if (this.isRunningMailboxStatisticsTask) { Exception ex = null; try { QueryFilter internalFilter = this.InternalFilter; if (internalFilter != null && !OpathFilterEvaluator.FilterMatches(internalFilter, (Microsoft.Exchange.Data.Mapi.MailboxStatistics)((object)tpresentationObject))) { flag = false; } } catch (InvalidCastException ex2) { ex = ex2; } catch (ParsingException ex3) { ex = ex3; } catch (ArgumentOutOfRangeException ex4) { ex = ex4; } if (ex != null) { base.WriteError(new MdbAdminTaskException(Strings.ErrorInvalidMailboxStatisticsFilter(this.InternalFilter.ToString())), ErrorCategory.InvalidArgument, this.InternalFilter); } } if (flag) { this.WriteResult(tpresentationObject); } if (this.Identity != null && this.isRunningMailboxStatisticsTask) { TaskLogger.LogExit(); return; } } } finally { if (tpresentationObject != null) { tpresentationObject.Dispose(); } } } } catch (DatabaseUnavailableException ex5) { if (this.Identity == null && this.Database == null) { base.WriteWarning(ex5.Message); } else { base.WriteError(ex5, ErrorCategory.ResourceUnavailable, database); } } catch (MapiObjectNotFoundException exception2) { if (this.Identity == null || !this.isRunningMailboxStatisticsTask) { base.WriteError(exception2, ErrorCategory.ObjectNotFound, this.Identity); } } } if (this.Identity != null && this.isRunningMailboxStatisticsTask) { TIdentity tidentity = this.Identity; this.WriteWarning(Strings.WarningMailboxNeverBeenLoggedOn(tidentity.ToString(), this.identity.ToString())); } TaskLogger.LogExit(); }