public async Task <IActionResult> Edit(int id, ResultingTournamentViewModel tournamentToEdit, string button) { if (button == "Cancel") { return(RedirectToAction(nameof(TournamentController.Index), nameof(TournamentController).Replace("Controller", ""))); } if (id != tournamentToEdit.Id) { return(NotFound()); } if (ModelState.IsValid) { var tournament = _mapper.Map <Core.Models.TournamentModel>(tournamentToEdit); var tournamentEdit = await _tournamentService.GetAsync(tournamentToEdit.Id); var result = tournament.Markets.ToDictionary(x => x.Id, x => x.WinningSelectionId); foreach (var market in tournamentEdit.Markets) { market.WinningSelectionId = result[market.Id]; } await _tournamentService.Update(tournamentEdit); await _statsService.Compute(tournamentToEdit.Id); return(RedirectToAction(nameof(Index))); } return(View(tournamentToEdit)); }