Пример #1
0
        public async Task <IActionResult> Day(int id, int year, int month, int day)
        {
            if (!await _authHelpers.CheckDormitoryMembership(User, id))
            {
                return(ControllerHelpers.ShowAccessDeniedErrorPage(this));
            }

            if (!DateTime.TryParse(year + "/" + month + "/" + day, out var value))
            {
                return(ControllerHelpers.Show404ErrorPage(this, _localizer));
            }

            var model = CreateDayViewModel(id, new DateTime(year, month, day));

            return(View(model));
        }
Пример #2
0
        public async Task <IActionResult> ManageDormitoryUsers(
            int id,
            string currentFilter,
            string searchString,
            int?page)
        {
            if (!await _authHelpers.CheckDormitoryMembership(User, id))
            {
                return(ControllerHelpers.ShowAccessDeniedErrorPage(this));
            }

            if (searchString != null)
            {
                page = 1;
            }
            else
            {
                searchString = currentFilter;
            }

            ViewData["CurrentFilter"] = searchString;

            var users = !string.IsNullOrEmpty(searchString)
                ? _userRepo.GetUsersWithEmailLike(searchString)
                : _userRepo.Users.ToList();

            var dormitory = _dormitoryRepo.GetSingleById(id);

            var usersWithoutDormitory = users
                                        .Where(x => x.DormitoryManagerId == null &&
                                               x.DormitoryPorterId == null &&
                                               x.RoomId == null &&
                                               x.Email != "*****@*****.**")
                                        .ToList();
            var thisDormitoryUsers = users
                                     .Where(x => x.DormitoryPorterId == dormitory.DormitoryId ||
                                            x.DormitoryManagerId == dormitory.DormitoryId ||
                                            dormitory.Rooms.Any(z => z.Id == x.RoomId))
                                     .ToList();

            users = usersWithoutDormitory.Concat(thisDormitoryUsers).ToList();

            if (dormitory == null)
            {
                return(ControllerHelpers.Show404ErrorPage(this, _localizer));
            }

            int pageSize = 10;

            return(View(new ManageDormitoryUsersViewModel(
                            new PaginatedList <ApplicationUser>(users, users.Count, page ?? 1, pageSize), dormitory)));
        }