public async Task <IActionResult> Register(int id, CreateIndividualContestRegistrationViewModel viewModel)
        {
            try
            {
                ICommand command;
                if (User.IsInRole(Roles.Admin))
                {
                    command = new CreateAdminIndividualContestRegistrationCommand {
                        ViewModel = viewModel
                    }
                }
                ;
                else
                {
                    command = new CreateUserIndividualContestRegistrationCommand {
                        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> > > ValidateCreateIndividualContestRegistrationAsync(CreateIndividualContestRegistrationViewModel viewModel)
        {
            var baseRes = await base.ValidateCreateIndividualContestRegistrationAsync(viewModel);

            var memberRes = _contestRegistrationService.ValidateIndividualContestMember(viewModel);

            baseRes.AddRange(memberRes);
            return(baseRes);
        }
示例#3
0
 protected virtual Task <List <KeyValuePair <string, string> > > ValidateCreateIndividualContestRegistrationAsync(
     CreateIndividualContestRegistrationViewModel viewModel)
 {
     return(_contestRegistrationService.ValidateCreateIndividualContestRegistrationAsync(viewModel));
 }