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