protected override void WriteResult(IConfigurable dataObject) { TaskLogger.LogEnter(new object[] { dataObject.Identity, dataObject }); try { Database database = (Database)dataObject; if (database.IsExchange2009OrLater || (this.AllowLegacy && (ServerIdParameter.HasRole(((Database)dataObject).Server, ServerRole.Mailbox, base.DataSession) || !ServerIdParameter.HasRole(((Database)dataObject).Server, ServerRole.All, base.DataSession)))) { string text; if (this.serverLegacyDNToFqdnCache.TryGetValue(database.RpcClientAccessServerLegacyDN, out text)) { database.RpcClientAccessServer = text; } database.CompleteAllCalculatedProperties(); if (text == null) { this.serverLegacyDNToFqdnCache.Add(database.RpcClientAccessServerLegacyDN, database.RpcClientAccessServer); } base.WriteResult(dataObject); } } catch (InvalidOperationException) { base.WriteError(new InvalidADObjectOperationException(Strings.ErrorFoundInvalidADObject(((ADObjectId)dataObject.Identity).ToDNString())), ErrorCategory.InvalidOperation, this.Identity); } TaskLogger.LogExit(); }
protected override void WriteResult(IConfigurable dataObject) { TaskLogger.LogEnter(new object[] { dataObject.Identity, dataObject }); try { if (ServerIdParameter.HasRole((ADObjectId)dataObject.Identity, ServerRole.Cafe | ServerRole.Mailbox | ServerRole.ClientAccess | ServerRole.UnifiedMessaging | ServerRole.HubTransport | ServerRole.FrontendTransport | ServerRole.FfoWebService | ServerRole.OSP, base.DataSession)) { ADVirtualDirectory advirtualDirectory = dataObject as ADVirtualDirectory; if (advirtualDirectory != null) { advirtualDirectory.AdminDisplayVersion = Microsoft.Exchange.Data.Directory.SystemConfiguration.Server.GetServerVersion(advirtualDirectory.Server.Name); } base.WriteResult(dataObject); } } catch (InvalidOperationException) { base.WriteError(new InvalidADObjectOperationException(Strings.ErrorFoundInvalidADObject(((ADObjectId)dataObject.Identity).ToDNString())), ErrorCategory.InvalidOperation, this.Identity); } TaskLogger.LogExit(); }