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)); }
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)); }
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)); }