コード例 #1
0
        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);
        }
コード例 #2
0
ファイル: MemberService.cs プロジェクト: Ejendomsdrift/edrift
        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);
        }
コード例 #3
0
        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
                }
            };
        }
コード例 #4
0
ファイル: MemberService.cs プロジェクト: Ejendomsdrift/edrift
        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);
        }
コード例 #5
0
ファイル: MemberService.cs プロジェクト: Ejendomsdrift/edrift
        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);
        }
コード例 #6
0
ファイル: MemberService.cs プロジェクト: Ejendomsdrift/edrift
        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);
        }