public IActionResult SetUpGameConfirm(SetUpGameViewModel model, SetUpGameAction action, Int32 removeIndex)
        {
            switch (action)
            {
            case SetUpGameAction.Civilization:
                model.ChosenTab = "Civilization";
                break;

            case SetUpGameAction.Opponents:
                model.ChosenTab = "Opponents";
                break;

            case SetUpGameAction.BasicSettings:
                model.ChosenTab = "BasicSettings";
                break;

            case SetUpGameAction.AdvancedSettings:
                model.ChosenTab = "AdvancedSettings";
                break;

            case SetUpGameAction.Start:
                _database.PushData(new Data
                {
                    ChosenName                = model.ChosenName,
                    ChosenCivilization        = model.ChosenCivilization,
                    ChosenOpponents           = model.ChosenOpponents,
                    ChosenMapType             = model.ChosenMapType,
                    ChosenMapSize             = model.ChosenMapSize,
                    ChosenDifficulty          = model.ChosenDifficulty,
                    ChosenVictoryType         = model.ChosenVictoryType,
                    ChosenAdvancedGameOptions = model.ChosenAdvancedGameOptions,
                    AdvancedGameOptions       = model.AdvancedGameOptions
                });

                var data = _database.GetData()[_database.GetData().Count - 1];

                var newModel = new LoadGameViewModel
                {
                    Name                = data.ChosenName,
                    Civilization        = data.ChosenCivilization == null ? null : _civilizationDataProviderService.FindEntity((Int32)data.ChosenCivilization),
                    Opponents           = new List <Civilization>(),
                    MapType             = _mapTypeDataProviderService.FindEntity(data.ChosenMapType),
                    MapSize             = _mapSizeDataProviderService.FindEntity(data.ChosenMapSize),
                    Difficulty          = _difficultyDataProviderService.FindEntity(data.ChosenDifficulty),
                    VictoryTypes        = new List <VictoryType>(),
                    AdvancedGameOptions = new List <String>(),
                    NumberOfGames       = _database.GetData().Count
                };

                if (data.ChosenOpponents != null)
                {
                    foreach (var opponent in data.ChosenOpponents)
                    {
                        if (opponent == null)
                        {
                            newModel.Opponents.Add(null);
                        }
                        else
                        {
                            newModel.Opponents.Add(_civilizationDataProviderService.FindEntity((Int32)opponent));
                        }
                    }
                }

                for (var i = 0; i < data.ChosenVictoryType.Count; i++)
                {
                    if (data.ChosenVictoryType[i])
                    {
                        newModel.VictoryTypes.Add(_victoryTypeDataProviderService.FindEntity(i));
                    }
                }

                for (var i = 0; i < data.ChosenAdvancedGameOptions.Count; i++)
                {
                    if (data.ChosenAdvancedGameOptions[i])
                    {
                        newModel.AdvancedGameOptions.Add(data.AdvancedGameOptions[i]);
                    }
                }

                newModel.ChosenGame = _database.GetData().Count - 1;

                return(View("LoadGame", newModel));

            case SetUpGameAction.Add:
                if (model.ChosenOpponents == null)
                {
                    model.ChosenOpponents = new List <Int32?>();
                }
                model.ChosenOpponents.Add(null);
                break;

            case SetUpGameAction.Remove:
                model.ChosenOpponents.RemoveAt(removeIndex);
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(action), action, null);
            }

            return(View(model));
        }
 public IActionResult SetUpGame(SetUpGameViewModel model)
 {
     return(View(model));
 }