public async Task <IActionResult> OverviewSetFilter([Bind] CalendarOverviewViewModel model) { var roleFilter = model.RoleFilter; var departmentFilter = model.DepartmentFilter; var teamFilter = model.TeamFilter; roleFilter = (roleFilter == null || roleFilter.Count == 0) ? AddNoneRolesFilterItem(await GetRolesToCheckBoxItemList()) : roleFilter; departmentFilter = (departmentFilter == null || departmentFilter.Count == 0) ? AddNoneDepartmentFilterItem(await GetDepartmentsToCheckBoxItemList()) : departmentFilter; teamFilter = (teamFilter == null || teamFilter.Count == 0) ? AddNoneTeamsFilterItem(await GetTeamsToCheckBoxItemList()) : teamFilter; var calendarVM = new CalendarOverviewViewModel { Year = model.Year, WeekNumber = model.WeekNumber, SortOrder = model.SortOrder, }; HttpContext.Session.Set(SessionKeyRoleFilter, roleFilter); HttpContext.Session.Set(SessionKeyDepartmentFilter, departmentFilter); HttpContext.Session.Set(SessionKeyTeamsFilter, teamFilter); return(RedirectToAction(model.PostBackActionName, calendarVM)); }
public async Task <IActionResult> UserOverview(int year, int weeknumber, string sortOrder) { PagingLogicAndValidationForYearAndWeekNumber(ref year, ref weeknumber, _cultureInfo); ViewData["CurrentSort"] = sortOrder; ViewData["NameSortParm"] = string.IsNullOrEmpty(sortOrder) ? "name_desc" : ""; ViewData["RoleSortParam"] = sortOrder == "role_desc" ? "role_desc" : "role"; ViewData["DepartmentSortParam"] = sortOrder == "department_desc" ? "department_desc" : "department"; ViewData["TeamSortParam"] = sortOrder == "team_desc" ? "team_desc" : "team"; var roleFilter = await GetRoleFilterItems(); var departmentFilter = await GetDepartmentFilterItems(); var teamFilter = await GetTeamFilterItems(); var roleFilterString = HttpContext.Session.GetString(SessionKeyRoleFilter); var departmentFilterString = HttpContext.Session.GetString(SessionKeyDepartmentFilter); var teamFilterString = HttpContext.Session.GetString(SessionKeyTeamsFilter); var userList = await GetAllUsersWithRoles(); userList = FilterUserList(roleFilter, departmentFilter, teamFilter, userList); var sortedUsersList = GetSortedUserList(sortOrder, userList); var absenceTypesList = await _context.AbsenceTypes.Select(x => x.Name).ToListAsync(); var workFreeDaysList = await _context.WorkFreeDays.ToListAsync(); DateTime currentFirstDayInWeek = CalendarHelper.FirstDateOfWeekISO8601(year, weeknumber, _cultureInfo); var userCalendarDayDic = await GetUserCalendarDayDictionary(sortedUsersList, workFreeDaysList, currentFirstDayInWeek, true); List <CalendarDay> caldaysList = GetAllCalendarDays(currentFirstDayInWeek); var calendarVM = new CalendarOverviewViewModel { Year = year, WeekNumber = weeknumber, Date = currentFirstDayInWeek, AbsenceTypes = absenceTypesList, AllUsersCalendarData = userCalendarDayDic, CalendarDaysList = caldaysList, SortOrder = sortOrder, RoleFilter = roleFilter, RoleFilterString = roleFilterString, DepartmentFilter = departmentFilter, DepartmentFilterString = departmentFilterString, TeamFilter = teamFilter, TeamFilterString = teamFilterString, PostBackActionName = nameof(UserOverview) }; return(View(calendarVM)); }