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); }
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); }
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); }