private List <AddressStatisticInfo> GetAddressStatisticInfoList( List <Tuple <Guid, JobAddress> > addressToDayAssignRelationList, Dictionary <Guid, IJobStatusLogModel> jobStatusLog) { var result = new List <AddressStatisticInfo>(); IEnumerable <Guid> housingDepartmentIds = addressToDayAssignRelationList.Select(x => x.Item2.HousingDepartmentId); List <IManagementDepartmentModel> managementDepartments = managementDepartmentService.GetByHousingDepartmentIds(housingDepartmentIds); IDictionary <Guid, string> housingDepartmentsName = managementDepartments.SelectMany(m => m.HousingDepartmentList).Where(h => !h.IsDeleted).ToDictionary(h => h.Id, v => v.DisplayName); foreach (var address in addressToDayAssignRelationList) { IJobStatusLogModel log; IManagementDepartmentModel managementDepartment = managementDepartments.First(x => x.HousingDepartmentList.Any(y => y.Id == address.Item2.HousingDepartmentId)); result.Add(new AddressStatisticInfo { Address = address.Item2.Address, HousingDepartmentId = address.Item2.HousingDepartmentId, HousingDepartmentName = housingDepartmentsName[address.Item2.HousingDepartmentId], SpentTime = jobStatusLog.TryGetValue(address.Item1, out log) ? log.TotalSpentTime : default(decimal), ManagementDepartmentId = managementDepartment.Id }); } return(result); }
public void UpdateMember(int daysAhead, Guid?departmentId) { IMemberModel currentUser = GetCurrentUser(); if (currentUser == null) { return; } Member member = memberRepository.Query.First(m => m.Id == currentUser.MemberId); UnsetOldActiveRole(member, currentUser.CurrentRole); if (departmentId.HasValue) { IManagementDepartmentModel managementDepartmentModel = managementDepartmentService.GetManagementDepartmentById(departmentId.Value); Role role = member.RoleList.First(x => x.RoleId == (int)currentUser.CurrentRole && x.ManagementDepartmentId == managementDepartmentModel.SyncDepartmentId); role.IsActive = true; } else { Role role = member.RoleList.First(x => x.RoleId == (int)member.CurrentRole); role.IsActive = true; } member.DaysAhead = daysAhead; memberRepository.Save(member); }
public void SetUp() { ManagementDepartment = new ManagementDepartmentModel() { }; Members = new List <IMemberModel>() { new MemberModel() { MemberId = Guid.NewGuid(), Roles = new List <RoleType>() { RoleType.Coordinator } }, new MemberModel() { MemberId = Guid.NewGuid(), Roles = new List <RoleType>() { RoleType.Coordinator } } }; var groupId = Guid.NewGuid(); Groups = new List <IGroupModel>() { new GroupModel() { Id = groupId, MemberIds = Members.Select(m => m.MemberId) } }; DayAssigns = new List <IDayAssign>() { new DayAssign() { Id = Guid.NewGuid(), Date = new DateTime(2017, 1, 1), WeekNumber = 1, WeekDay = 1, EstimatedMinutes = 30, GroupId = groupId }, new DayAssign() { Id = Guid.NewGuid(), Date = new DateTime(2017, 1, 1), WeekNumber = 1, WeekDay = 2, EstimatedMinutes = 30, GroupId = groupId } }; }
public bool IsMemberHasJanitorRoleInManagementDepartment(Guid memberId, Guid managementDepartmentId) { Member member = memberRepository.Query.First(x => x.Id == memberId); IManagementDepartmentModel managementDepartment = managementDepartmentService.GetManagementDepartmentById(managementDepartmentId); IEnumerable <Role> roleList = member.RoleList.Where(x => x.ManagementDepartmentId == managementDepartment.SyncDepartmentId); bool isMemberHasJanitorRole = roleList.Any(x => x.RoleId == (int)RoleType.Janitor); return(isMemberHasJanitorRole); }
public void SaveManagementDepartment(Guid managementDepartmentId) { IMemberModel currentUser = GetCurrentUser(); IManagementDepartmentModel managementDepartment = managementDepartmentService.GetManagementDepartmentById(managementDepartmentId); Member member = memberRepository.Query.First(m => m.Id == currentUser.MemberId); UnsetOldActiveRole(member, currentUser.CurrentRole); Role newActiveRole = member.RoleList.First(x => x.ManagementDepartmentId == managementDepartment.SyncDepartmentId && x.RoleId == (int)currentUser.CurrentRole); newActiveRole.IsActive = true; memberRepository.UpdateSingleProperty(member.Id, m => m.RoleList, member.RoleList); }
public IEnumerable <IMemberModel> GetAllowedMembersForJobByDepartmentId(Guid managementDepartmentId) { string allowedRolesForAssigningOnJob = appSettingHelper.GetAppSetting <string>(Constants.AppSetting.AllowedRolesForAssigningOnJob); IManagementDepartmentModel management = managementDepartmentService.GetManagementDepartmentById(managementDepartmentId); IEnumerable <int> allowedRoleIds = securityService.GetRoles(allowedRolesForAssigningOnJob).Select(i => (int)i); Expression <Func <Member, bool> > filter = f => !f.IsDeleted && f.RoleList.Any( r => !r.IsDeleted && r.ManagementDepartmentId == management.SyncDepartmentId && allowedRoleIds.Contains(r.RoleId)); List <Member> memberList = memberRepository.Query.Where(filter).ToList(); IEnumerable <IMemberModel> result = memberList.Select(x => MapMember(x, mapCoordinatorProperties: true)); return(result); }