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));
        }