protected override void InternalProcessRecord() { TaskLogger.LogEnter(); if (!this.Force && SharedConfiguration.IsSharedConfiguration(this.DataObject.OrganizationId) && !base.ShouldContinue(Strings.ConfirmSharedConfiguration(this.DataObject.OrganizationId.OrganizationalUnit.Name))) { TaskLogger.LogExit(); return; } IConfigurationSession configurationSession = null; base.InternalProcessRecord(); if (this.WellKnownObjectGuid != Guid.Empty || this.roleAssignments != null) { configurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(null, false, ConsistencyMode.PartiallyConsistent, base.SessionSettings, 676, "InternalProcessRecord", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\RBAC\\RoleGroup\\NewRoleGroup.cs"); configurationSession.LinkResolutionServer = this.DataObject.OriginatingServer; } if (this.WellKnownObjectGuid != Guid.Empty) { try { RoleGroupCommon.StampWellKnownObjectGuid(configurationSession, this.DataObject.OrganizationId, this.DataObject.DistinguishedName, this.WellKnownObjectGuid); } catch (Exception) { this.DataObject.ExternalDirectoryObjectId = null; base.DataSession.Save(this.DataObject); base.DataSession.Delete(this.DataObject); throw; } } if (this.roleAssignments != null) { List <ExchangeRoleAssignment> list = new List <ExchangeRoleAssignment>(); string id = string.Empty; try { foreach (ExchangeRoleAssignment exchangeRoleAssignment in this.roleAssignments) { exchangeRoleAssignment.User = this.DataObject.Id; id = exchangeRoleAssignment.Id.Name; configurationSession.Save(exchangeRoleAssignment); list.Add(exchangeRoleAssignment); } } catch (Exception) { this.WriteWarning(Strings.WarningCouldNotCreateRoleAssignment(id, this.Name)); foreach (ExchangeRoleAssignment exchangeRoleAssignment2 in list) { base.WriteVerbose(Strings.VerboseRemovingRoleAssignment(exchangeRoleAssignment2.Id.ToString())); configurationSession.Delete(exchangeRoleAssignment2); base.WriteVerbose(Strings.VerboseRemovedRoleAssignment(exchangeRoleAssignment2.Id.ToString())); } base.WriteVerbose(Strings.VerboseRemovingRoleGroup(this.DataObject.Id.ToString())); base.DataSession.Delete(this.DataObject); throw; } } TaskLogger.LogExit(); }
protected override void InternalProcessRecord() { TaskLogger.LogEnter(); if (!this.Force && SharedConfiguration.IsSharedConfiguration(this.DataObject.OrganizationId) && !base.ShouldContinue(Strings.ConfirmSharedConfiguration(this.DataObject.OrganizationId.OrganizationalUnit.Name))) { TaskLogger.LogExit(); return; } base.InternalProcessRecord(); if (this.WellKnownObjectGuid != Guid.Empty) { IConfigurationSession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(null, false, ConsistencyMode.PartiallyConsistent, base.SessionSettings, 424, "InternalProcessRecord", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\RBAC\\RoleGroup\\SetRoleGroup.cs"); RoleGroupCommon.StampWellKnownObjectGuid(tenantOrTopologyConfigurationSession, this.DataObject.OrganizationId, this.DataObject.DistinguishedName, this.WellKnownObjectGuid); } TaskLogger.LogExit(); }