Пример #1
0
        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));
        }
Пример #2
0
        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));
        }