Esempio n. 1
0
        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();
        }
Esempio n. 2
0
 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();
 }