/// <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); }
/// <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."); } }
/// <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); }
/// <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); }
/// <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 ); }
/// <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 ); }