Beispiel #1
0
        public IDictionary <Guid, int> GetMembersEstimationsForDay(IEnumerable <Guid> memberIds, Guid managementDepartmentId, int year, int week, int day)
        {
            PeriodMembersEstimationModel periodEstimationModel = GetAssignForPeriod(memberIds, managementDepartmentId, year, week, day);

            IDictionary <Guid, int> userInGroupsCount = periodEstimationModel.UserInGroups.ToDictionary(k => k.Key, v => v.Value.Count());

            IDictionary <Guid, int> dayEstimations = periodEstimationModel.Assigns
                                                     .ToDictionary(pair => pair.Key, pair => FormDayEstimation(pair.Value, periodEstimationModel.UsersCount, userInGroupsCount));

            return(dayEstimations);
        }
Beispiel #2
0
        public IDictionary <Guid, IDictionary <int, int> > GetMemberEstimationsForWeek(IEnumerable <Guid> memberIds, Guid managementDepartmentId, int year, int week)
        {
            var results = new Dictionary <Guid, IDictionary <int, int> >();

            List <Guid> memberIdList = memberIds.AsList();
            PeriodMembersEstimationModel periodEstimationModel = GetAssignForPeriod(memberIdList, managementDepartmentId, year, week, day: null);

            IDictionary <Guid, int> userInGroupsCount = periodEstimationModel.UserInGroups.ToDictionary(k => k.Key, v => v.Value.Count());

            foreach (var member in memberIdList)
            {
                var memberAssignForWeek = periodEstimationModel.Assigns[member];
                IDictionary <int, int> formWeekEstimations = GetWeekEstimation(memberAssignForWeek, periodEstimationModel.UsersCount, userInGroupsCount);
                results.Add(member, formWeekEstimations);
            }

            return(results);
        }
Beispiel #3
0
        private PeriodMembersEstimationModel GetAssignForPeriod(IEnumerable <Guid> memberIds, Guid managementDepartmentId, int year, int week, int?day)
        {
            List <Guid> memberIdList = memberIds.AsList();

            IEnumerable <Guid> housingDepartmentIds       = GetHousingDepartmentIds(managementDepartmentId);
            List <IDayAssign>  allDayAssigns              = GetAssigns(year, week, day, housingDepartmentIds).ToList();
            string             managementDepartmentSyncId = managementService.GetManagementDepartmentSyncId(managementDepartmentId);

            var userInGroups = GetAssignedUserInGroup(allDayAssigns);

            var result = new PeriodMembersEstimationModel
            {
                Assigns      = GetMemberDayAssigns(allDayAssigns, memberIdList, userInGroups),
                UserInGroups = userInGroups,
                UsersCount   = memberService.GetAllJanitorsCount(managementDepartmentSyncId)
            };

            return(result);
        }