/// <summary>
        /// Removes multiple kinds of members from a group in one step.
        /// Non-existing groups or member groups will be skipped.
        /// If all the parameters are null or empty, nothing will happen.
        /// </summary>
        /// <param name="groupId">Identifier of the container group. Cannot be 0.</param>
        /// <param name="userMembers">Collection of the user member identifiers. Can be null or empty.</param>
        /// <param name="groupMembers">Collection of the group member identifiers. Can be null or empty.</param>
        /// <param name="parentGroups">Collection of the parent group identifiers. Can be null or empty.</param>
        protected void RemoveMembersFromSecurityGroup(int groupId, IEnumerable <int> userMembers, IEnumerable <int> groupMembers, IEnumerable <int> parentGroups = null)
        {
            if (groupId == default(int))
            {
                throw new ArgumentException("The groupId cannot be " + default(int));
            }
            if (AllNullOrEmpty(groupMembers, userMembers, parentGroups))
            {
                return;
            }
            var activity = new RemoveMembersFromGroupActivity(groupId, userMembers, groupMembers, parentGroups);

            activity.Execute(this);
        }
        /// <summary>
        /// Removes one or more users from a group in one step.
        /// Non-existing group or member will be skipped.
        /// This method is a shortcut for RemoveMembersFromSecurityGroup(...).
        /// </summary>
        /// <param name="groupId">Identifier of the container group. Cannot be 0.</param>
        /// <param name="userMembers">Collection of the user member identifiers. Can be null or empty.</param>
        public virtual void RemoveUsersFromSecurityGroup(int groupId, IEnumerable <int> userMembers)
        {
            if (groupId == default)
            {
                throw new ArgumentException("The groupId cannot be " + default(int));
            }
            if (AllNullOrEmpty(userMembers))
            {
                return;
            }
            var activity = new RemoveMembersFromGroupActivity(groupId, userMembers, null, null);

            activity.Execute(this);
        }