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 }));
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
 protected virtual Task <List <KeyValuePair <string, string> > > ValidateCreateTeamContestRegistrationAsync(
     CreateTeamContestRegistrationViewModel viewModel)
 {
     return(_contestRegistrationService.ValidateCreateTeamContestRegistrationAsync(viewModel));
 }