public async Task <IActionResult> Register(int id, CreateTeamContestRegistrationViewModel viewModel) { try { ICommand command; if (User.IsInRole(Roles.Admin)) { command = new CreateAdminTeamContestRegistrationCommand { ViewModel = viewModel } } ; else { command = new CreateUserTeamContestRegistrationCommand { ViewModel = viewModel } }; await HandlerDispatcher.ExecuteCommandAsync(command); } catch (ValidationException e) { e.ValidationResult.ForEach(res => ModelState.AddModelError(res.Key, res.Value)); await FillViewDataForContestRegistrationAsync(viewModel); return(View(viewModel)); } if (viewModel.ShowRegistrationInfo) { //TODO стоит ли показывать эту страницу для тренера? return(RedirectToAction(nameof(Registration) /*, new { id = result.RegistrationId }*/)); } return(RedirectToAction(nameof(Details), new { id = viewModel.ContestId })); }
protected override async Task <List <KeyValuePair <string, string> > > ValidateCreateTeamContestRegistrationAsync(CreateTeamContestRegistrationViewModel viewModel) { var res = await base.ValidateCreateTeamContestRegistrationAsync(viewModel); var memberRes = _contestRegistrationService.ValidateTeamContestRegistrationMember(viewModel); res.AddRange(memberRes); return(res); }
protected virtual Task <List <KeyValuePair <string, string> > > ValidateCreateTeamContestRegistrationAsync( CreateTeamContestRegistrationViewModel viewModel) { return(_contestRegistrationService.ValidateCreateTeamContestRegistrationAsync(viewModel)); }