public async Task <IActionResult> ImportFromContest(int id, ImportContestParticipantsViewModel viewModel) { if (!ModelState.IsValid) { var contests = await HandlerDispatcher.ExecuteQueryAsync(new ImportFromContestQuery { ContestId = id }); ViewData["FromContestId"] = new SelectList(contests, "Id", "Name", viewModel.FromContestId); return(View(viewModel)); } try { await HandlerDispatcher.ExecuteCommandAsync(new ImportFromContestCommand { ContestId = id, ViewModel = viewModel }); } catch (InvalidOperationException ex) { ModelState.AddModelError(string.Empty, ex.Message); var contests = await HandlerDispatcher.ExecuteQueryAsync(new ImportFromContestQuery { ContestId = id }); ViewData["FromContestId"] = new SelectList(contests, "Id", "Name", viewModel.FromContestId); return(View(viewModel)); } //TODO Сказать о том, что участники успешно импортированы return(RedirectToAction(nameof(Details), new { id })); }
public async Task <IActionResult> ImportFromContest(int id) { try { var contests = await HandlerDispatcher.ExecuteQueryAsync(new ImportFromContestQuery { ContestId = id }); ViewData["FromContestId"] = new SelectList(contests, "Id", "Name"); } catch (InvalidOperationException) { ModelState.AddModelError(string.Empty, "Нет аккаунтов участников в текущем контекте, чтобы туда кого-то добавлять"); } var viewModel = new ImportContestParticipantsViewModel(); return(View(viewModel)); }