public async Task <bool> SetActionForEntireDepartmentAsync(int departmentId, int actionType) { var members = await _departmentMembersRepository.GetAllByDepartmentIdAsync(departmentId); var logs = new List <ActionLog>(); foreach (var member in members) { var al = new ActionLog(); al.ActionTypeId = actionType; al.DepartmentId = departmentId; al.UserId = member.UserId; al.Timestamp = DateTime.UtcNow; logs.Add(al); } return(await SaveAllActionLogsAsync(logs)); }
private async Task <Department> FillAdminUsersAsync(Department department) { if (department != null) { if (!department.Use24HourTime.HasValue) { department.Use24HourTime = false; } if (department.AdminUsers.Count <= 0) { department.AdminUsers.AddRange((from dm in await _departmentMembersRepository.GetAllByDepartmentIdAsync(department.DepartmentId) where dm.IsAdmin.GetValueOrDefault() select dm.UserId)); } } return(department); }
public async Task <Dictionary <string, List <PersonnelRole> > > GetAllRolesForUsersInDepartmentAsync(int departmentId) { var users = await _departmentMemberRepository.GetAllByDepartmentIdAsync(departmentId); var allRoles = await _personnelRolesRepository.GetAllByDepartmentIdAsync(departmentId); var roles = (from r in await _personnelRoleUsersRepository.GetAllRoleUsersForDepartmentAsync(departmentId) group r by r.UserId into rolesGroup where users.Select(x => x.UserId).Contains(rolesGroup.Key) select rolesGroup); var userRoles = new Dictionary <string, List <PersonnelRole> >(); foreach (var role in roles) { var newRoles = role.ToList().Select(personnelRole => allRoles.FirstOrDefault(x => x.PersonnelRoleId == personnelRole.PersonnelRoleId)).ToList(); userRoles.Add(role.Key, newRoles); } return(userRoles); }