Ejemplo n.º 1
0
        public async Task <ActionResult> AddNewContest(ContestEditorViewModel viewmodel)
        {
            ViewData["ContestPriorityId"] = Session["ContestPriorityId"];
            Session["ContestPriorityId"]  = null;
            if (!ModelState.IsValid)
            {
                return(View(viewmodel));
            }

            TimeSpan?duration = TimeSpan.Zero;

            var tasks = new List <ContestTask>();

            foreach (TaskEditorViewModel editor in viewmodel.TaskEditors)
            {
                var task = new ContestTask
                {
                    TaskComplexity = editor.TaskComplexity,
                    TaskDuration   = editor.TaskDuration,
                    TaskAward      = editor.TaskAward,
                    TaskTitle      = editor.TaskTitle,
                    TaskComment    = editor.TaskComment,
                    TaskContent    = editor.TaskContent
                };

                duration = duration.Value.Add(editor.TaskDuration.Value);

                // adding only via id should be checked
                task.Languages =
                    editor.Languages.Select(
                        x => new ProgrammingLanguage {
                    LanguageId = x.LanguageId, LanguageName = x.LanguageName
                })
                    .ToList();
                tasks.Add(task);
            }

            DateTime contestEnd = viewmodel.ContestBeginning.Value.Add(duration.Value);

            var contest = new Contest
            {
                Tasks             = tasks,
                ContestBeginning  = viewmodel.ContestBeginning,
                ContestTitle      = viewmodel.ContestTitle,
                ContestComment    = viewmodel.ContestComment,
                TasksCount        = viewmodel.TaskEditors.Count,
                ContestEnd        = contestEnd,
                IdContestPriority = viewmodel.ContestPriorityId
            };

            IdentityResult result = await _contestsProvider.CreateContestAsync(contest);

            if (result.Succeeded)
            {
                return(Json(new { Succeeded = result.Succeeded }, JsonRequestBehavior.DenyGet));
            }
            return(View("_AddNewContest", viewmodel));
        }
Ejemplo n.º 2
0
        public async Task <ActionResult> AddNewContest()
        {
            var contest = new ContestEditorViewModel();
            IList <ContestPriority> list;

            // gonna use ninject later
            using (var context = new PortalContext())
                list = context.Set <ContestPriority>().OrderBy(x => x.ContestPriorityId).ToList();
            ViewBag.ContestPriorities    = new SelectList(list, "ContestPriorityId", "ContestPriorityName");
            Session["ContestPriorityId"] = ViewBag.ContestPriorities;
            return(View("_AddNewContest", contest));
        }
Ejemplo n.º 3
0
        public async Task <ActionResult> ContestsDetails(int contestId)
        {
            Contest contest = await _contestsProvider.GetContest(contestId);

            ContestEditorViewModel viewModel = new ContestEditorViewModel(contest);

            viewModel.TaskEditors = contest.Tasks.Select(x => new TaskEditorViewModel(x)).ToList();
            viewModel.Competitors = contest.Competitors.Select(x => new UserViewModel(x.UserProfile)).ToList();

            Debug.WriteLine("HomeController.ContestsDetails. id: " + contestId + ", " + contest.Tasks.Count + ", " + contest.TasksCount);
            Debug.WriteLine("Tasks: " + contest.Tasks.Count);

            return(View("ContestsDetails", viewModel));
        }