public IActionResult OnGet(TournamentSortState sortState = TournamentSortState.StatusAsc) { var userId = User.FindFirst(ClaimTypes.NameIdentifier).Value; var tournaments = tournamentRepository.GetActiveStudentTournament(userId, sortState); List <StudentTournamentModel> studentTournaments = new List <StudentTournamentModel>(); if (tournaments != null) { foreach (var item in tournaments) { studentTournaments.Add(new StudentTournamentModel { Id = item.TournamentId, Name = item.Name, DueDate = item.DueDate, LecturerFullName = item.Owner.FirstName + " " + item.Owner.SecondName, Status = item.Status }); } } ViewModel = new StudentTournamentIndexViewModel { Tournaments = studentTournaments, SortViewModel = new TournamentIndexSortViewModel(sortState) }; return(Page()); }
public IActionResult OnGet(int p = 1, TournamentSortState sortState = TournamentSortState.CreatedAtAsc) { int size = 15; IEnumerable <Tournament> tournaments; if (User.IsInRole("Admin")) { tournaments = repository.GetTournaments(p, size, sortState); } else { var userId = User.FindFirst(ClaimTypes.NameIdentifier).Value; tournaments = repository.GetTournaments(userId, p, size, sortState); } var count = tournaments.Count(); ViewModel = new TournamentIndexViewModel { SortViewModel = new TournamentIndexSortViewModel(sortState), PageViewModel = new PageViewModel(count, p, size), Tournaments = tournaments }; return(Page()); }
public TournamentIndexSortViewModel(TournamentSortState sortState) { DueDate = sortState == TournamentSortState.DueDateAsc ? TournamentSortState.DueDateDesc : TournamentSortState.DueDateAsc; Status = sortState == TournamentSortState.StatusAsc ? TournamentSortState.StatusDesc : TournamentSortState.StatusAsc; Current = sortState; }
public TournamentIndexSortViewModel(TournamentSortState sortState) { DueDate = sortState == TournamentSortState.DueDateAsc ? TournamentSortState.DueDateDesc : TournamentSortState.DueDateAsc; CreatedAt = sortState == TournamentSortState.CreatedAtAsc ? TournamentSortState.CreatedAtDesc : TournamentSortState.CreatedAtAsc; Status = sortState == TournamentSortState.StatusAsc ? TournamentSortState.StatusDesc : TournamentSortState.StatusAsc; Owner = sortState == TournamentSortState.OwnerAsc ? TournamentSortState.OwnerDesc : TournamentSortState.OwnerAsc; Current = sortState; }
public IEnumerable <Tournament> GetActiveStudentTournament(string userId, TournamentSortState sortState) { IQueryable <Tournament> tournaments = GetStudentQuery(userId); tournaments = tournaments.Where(x => x.Status == TournamentStatus.Active || x.Status == TournamentStatus.Completed); tournaments = ApplySort(tournaments, sortState); return(tournaments.ToList()); }
/// <summary> /// Returns all tournamnets. For Admin use /// </summary> /// <param name="p"></param> /// <param name="size"></param> /// <param name="sortState"></param> /// <returns></returns> public IEnumerable <Tournament> GetTournaments(int p, int size, TournamentSortState sortState) { IQueryable <Tournament> tournaments = GetLecturerQuery(); tournaments = ApplySort(tournaments, sortState); var items = Paginate(tournaments, p, size); return(items); }
private IQueryable <Tournament> ApplySort(IQueryable <Tournament> tournaments, TournamentSortState sortState) { switch (sortState) { case TournamentSortState.DueDateAsc: tournaments = tournaments.OrderBy(x => x.DueDate); break; case TournamentSortState.DueDateDesc: tournaments = tournaments.OrderByDescending(x => x.DueDate); break; case TournamentSortState.CreatedAtAsc: tournaments = tournaments.OrderBy(x => x.CreatedAt); break; case TournamentSortState.CreatedAtDesc: tournaments = tournaments.OrderByDescending(x => x.CreatedAt); break; case TournamentSortState.StatusAsc: tournaments = tournaments.OrderBy(x => x.Status); break; case TournamentSortState.StatusDesc: tournaments = tournaments.OrderByDescending(x => x.Status); break; case TournamentSortState.OwnerAsc: tournaments = tournaments.OrderBy(x => x.Owner.FirstName); break; case TournamentSortState.OwnerDesc: tournaments = tournaments.OrderByDescending(x => x.Owner.FirstName); break; } return(tournaments); }