internal SetADPrincipalGroupMembership(SetADPrincipalGroupMembershipOperationType operationType) { this._validExtendedPrincipalList = new List <ADPrincipal>(); this._operationType = operationType; this.Init(); base.BeginProcessPipeline.Clear(); base.ProcessRecordPipeline.Clear(); base.ProcessRecordPipeline.InsertAtEnd(new CmdletSubroutine(this.SetADPrincipalGroupMembershipProcessCSRoutine)); base.EndProcessPipeline.InsertAtStart(new CmdletSubroutine(this.SetADPrincipalGroupMembershipEndCSRoutine)); }
private bool SetADPrincipalGroupMembershipEndCSRoutine() { string defaultPartitionPath; string str = null; string str1 = null; string str2 = null; SetADPrincipalGroupMembershipOperationType setADPrincipalGroupMembershipOperationType = this._operationType; switch (setADPrincipalGroupMembershipOperationType) { case SetADPrincipalGroupMembershipOperationType.AddGroupMembership: { str = string.Format(CultureInfo.CurrentCulture, StringResources.AddADPrincipalGroupMembershipShouldProcessDescription, new object[0]); str2 = string.Format(CultureInfo.CurrentCulture, StringResources.AddADPrincipalGroupMembershipShouldProcessCaption, new object[0]); str1 = string.Format(CultureInfo.CurrentCulture, StringResources.AddADPrincipalGroupMembershipShouldProcessWarning, new object[0]); break; } case SetADPrincipalGroupMembershipOperationType.RemoveGroupMembership: { str = string.Format(CultureInfo.CurrentCulture, StringResources.RemoveADPrincipalGroupMembershipShouldProcessDescription, new object[0]); str2 = string.Format(CultureInfo.CurrentCulture, StringResources.RemoveADPrincipalGroupMembershipShouldProcessCaption, new object[0]); str1 = string.Format(CultureInfo.CurrentCulture, StringResources.RemoveADPrincipalGroupMembershipShouldProcessWarning, new object[0]); break; } } if (base.ShouldProcessOverride(str, str1, str2)) { ADPrincipal[] array = this._validExtendedPrincipalList.ToArray(); List <ADGroup> aDGroups = new List <ADGroup>(); foreach (SetADPrincipalGroupMembership <P> .ADGroupPartitionDNPair aDGroupPartitionDNPair in this._validExtendedGroupPartitionPairList) { if (aDGroupPartitionDNPair.PartitionDN == null) { defaultPartitionPath = this.GetDefaultPartitionPath(); } else { defaultPartitionPath = aDGroupPartitionDNPair.PartitionDN; } string str3 = defaultPartitionPath; try { object[] group = new object[4]; group[0] = aDGroupPartitionDNPair.Group; group[1] = array; group[2] = str3; group[3] = false; base.InvokeCommand.InvokeScript(this._command.ToString(), false, PipelineResultTypes.None, null, group); } catch (RuntimeException runtimeException1) { RuntimeException runtimeException = runtimeException1; object[] distinguishedName = new object[2]; distinguishedName[0] = aDGroupPartitionDNPair.Group.DistinguishedName; distinguishedName[1] = runtimeException.Message; string str4 = string.Format(CultureInfo.CurrentCulture, this._perGroupOperationFailedMessage, distinguishedName); base.WriteWarning(str4); DebugLogger.LogError("SetADPrincipalGroupMembership", str4); aDGroups.Add(aDGroupPartitionDNPair.Group); } } if (aDGroups.Count <= 0) { if (this._cmdletParameters.GetSwitchParameterBooleanValue("PassThru")) { foreach (ADPrincipal aDPrincipal in this._validExtendedPrincipalList) { base.WriteObject(aDPrincipal); } } } else { ADException aDException = new ADException(this._overallOperationFailedMessage); base.ThrowTerminatingError(new ErrorRecord(aDException, "1", ErrorCategory.OperationStopped, aDGroups.ToArray())); } return(true); } else { DebugLogger.LogInfo("SetADPrincipalGroupMembership", "User selected NO when asked to confirm..exiting without doing anything."); return(false); } }