public IActionResult Index() { ProblemsListViewModel model = new ProblemsListViewModel(); if (this.IsLoggedIn()) { var problems = this.problemsService.GetAll(); model.Problems = new List <ProblemsViewModel>(); if (problems != null) { var problemsList = problems.Select(x => new ProblemsViewModel() { Id = x.Id, Name = x.Name, Count = x.Submissions.Count }).ToList(); model.Problems = problemsList; } return(this.View(model, "IndexLoggedIn")); } return(this.View()); }
/// <summary> /// Partial view for navigation bar. /// </summary> /// <param name="TournamentID">ID of tournament</param> /// <returns>ProblemsListViewModel</returns> public PartialViewResult ProblemsList(int tournamentID) { Tournament tournament = repository.Tournaments.FirstOrDefault(t => t.TournamentID == tournamentID); ProblemsListViewModel viewModel = new ProblemsListViewModel() { TournamentID = -1 }; if (tournament == null) { logger.Warn("Tournament with id = " + tournamentID + " not found"); throw new HttpException(404, "Tournament with id = " + tournamentID + " not found"); } viewModel.Problems = tournament .Problems .OrderBy(p => p.ProblemID); viewModel.TournamentID = tournamentID; // Add numbering prefix to problem name. int i = 1; foreach (var problem in viewModel.Problems) { problem.Name = i.ToAlpha() + ". " + problem.Name; i++; } return(PartialView(viewModel)); }