Beispiel #1
0
        /// <summary>
        /// Assign system role.
        /// </summary>
        /// <param name="systemRole">
        /// The system role.
        /// </param>
        /// <param name="systemRoleType">
        /// The system role type.
        /// </param>
        private void AssignSystemRole(SystemRole systemRole, SystemRoleType systemRoleType)
        {
            CheckRoleAssignment(systemRole, systemRoleType);

            var staffSystemRole = new StaffSystemRole(systemRole)
            {
                Staff = this
            };

            _systemRoles.Add(staffSystemRole);

            NotifyItemAdded(() => SystemRoles, staffSystemRole);
        }
Beispiel #2
0
        /// <summary>
        /// Checks the role assignment.
        /// </summary>
        /// <param name="systemRole">The system role.</param>
        /// <param name="systemRoleType">Type of the system role.</param>
        private void CheckRoleAssignment(SystemRole systemRole, SystemRoleType systemRoleType)
        {
            Check.IsNotNull(systemRole, "System role is required.");

            if (systemRole.SystemRoleType != systemRoleType)
            {
                throw new ArgumentException(string.Format(( string )"The type of the role is not a {0} role. ", ( object )systemRoleType));
            }

            StaffSystemRole existingStaffSystemRole =
                (from sr in _systemRoles where sr.SystemRole.Key == systemRole.Key select sr).FirstOrDefault();

            if (existingStaffSystemRole != null)
            {
                throw new InvalidOperationException("The same has already been Assigned.");
            }
        }
Beispiel #3
0
        /// <summary>
        /// Removes the system role.
        /// </summary>
        /// <param name="systemRole">The system role.</param>
        /// <param name="systemRoleType">Type of the system role.</param>
        private void RemoveSystemRole(SystemRole systemRole, SystemRoleType systemRoleType)
        {
            Check.IsNotNull(systemRole, "System role is required.");

            if (systemRole.SystemRoleType != systemRoleType)
            {
                throw new ArgumentException(string.Format(( string )"The type of the role is not a {0} role. ", ( object )systemRoleType));
            }

            StaffSystemRole existingSystemRole = (from sa in _systemRoles where sa.SystemRole.Key == systemRole.Key select sa).FirstOrDefault();

            if (existingSystemRole != null)
            {
                _systemRoles.Remove(existingSystemRole);
            }

            NotifyItemRemoved(() => SystemRoles, existingSystemRole);
        }
Beispiel #4
0
        /// <summary>
        /// Revise job function role.
        /// </summary>
        /// <param name="jobFunctionRole">
        /// The job function role.
        /// </param>
        public virtual void ReviseJobFunctionRole(SystemRole jobFunctionRole)
        {
            CheckRoleAssignment(jobFunctionRole, SystemRoleType.JobFunction);

            var existingJobFunctionRoles =
                (from sr in _systemRoles where sr.SystemRole.SystemRoleType == SystemRoleType.JobFunction select sr).ToList();

            foreach (var existingJobFunctionRole in existingJobFunctionRoles)
            {
                _systemRoles.Remove(existingJobFunctionRole);
            }

            var staffSystemRole = new StaffSystemRole(jobFunctionRole)
            {
                Staff = this
            };

            _systemRoles.Add(staffSystemRole);

            NotifyItemAdded(() => SystemRoles, staffSystemRole);
        }
Beispiel #5
0
        /// <summary>
        /// Assign system role.
        /// </summary>
        /// <param name="systemRole">
        /// The system role.
        /// </param>
        /// <param name="systemRoleType">
        /// The system role type.
        /// </param>
        private void AssignSystemRole( SystemRole systemRole, SystemRoleType systemRoleType )
        {
            CheckRoleAssignment ( systemRole, systemRoleType );

            var staffSystemRole = new StaffSystemRole ( systemRole ) { Staff = this };
            _systemRoles.Add ( staffSystemRole );

            NotifyItemAdded ( () => SystemRoles, staffSystemRole );
        }
Beispiel #6
0
        /// <summary>
        /// Revise job function role.
        /// </summary>
        /// <param name="jobFunctionRole">
        /// The job function role.
        /// </param>
        public virtual void ReviseJobFunctionRole( SystemRole jobFunctionRole )
        {
            CheckRoleAssignment ( jobFunctionRole, SystemRoleType.JobFunction );

            var existingJobFunctionRoles =
                ( from sr in _systemRoles where sr.SystemRole.SystemRoleType == SystemRoleType.JobFunction select sr ).ToList ();

            foreach ( var existingJobFunctionRole in existingJobFunctionRoles )
            {
                _systemRoles.Remove ( existingJobFunctionRole );
            }

            var staffSystemRole = new StaffSystemRole ( jobFunctionRole ) { Staff = this };
            _systemRoles.Add ( staffSystemRole );

            NotifyItemAdded ( () => SystemRoles, staffSystemRole );
        }