public IActionResult Index(Guid?id)
        {
            var vm = new GameStateSpecificationViewModel
            {
                Id            = id,
                AllShips      = CreateShipOptions().ToList(),
                SelectedShips = new List <ShipSelection>()
            };

            GameState existingGameState;

            if (id != null)
            {
                existingGameState = _gsRepo.GetById(id.Value).Result;
                foreach (var p in existingGameState.Pawns)
                {
                    vm.SelectedShips.Add(new ShipSelection(p));
                }

                vm.GameName = existingGameState.Name;
            }

            RemoveEmptyEntriesAndEnsureLastOptionEmpty(vm);

            return(View(vm));
        }
        public IActionResult Index(Guid id)
        {
            var gs            = gsRepo.GetById(id).Result;
            var strategicView = new StrategicViewModel();

            strategicView.GameState = gs;

            foreach (var f in gs.Fleets)
            {
                var fleetVm = new FleetViewModel();
                fleetVm.Id       = f.Id.Value;
                fleetVm.Name     = f.Name;
                fleetVm.Assigned = gs.Pawns.Where(x => f.Id == x.FleetId).ToList();
                strategicView.AllFleets.Add(fleetVm);
            }

            foreach (var p in gs.Pawns)
            {
                var parentFleet = gs.Fleets.FirstOrDefault(x => x.Id == p.FleetId);
                if (parentFleet == null)
                {
                    strategicView.Unassigned.Add(p);
                }
            }

            return(View(strategicView));
        }
        //[HttpGet]
        //public IActionResult Index()
        //{
        //    GameViewModel vm;
        //    vm = new GameViewModel();
        //    vm.IsGameResuming = true;

        //    return View(vm);
        //}


        public IActionResult Battle(Guid id, [FromQuery] Guid[] fleets)
        {
            var gs = _gsRepo.GetById(id).Result;

            var participatingFleets = gs.Fleets
                                      .Where(x => fleets.Contains(x.Id.Value));

            var vm = new BattleViewModel
            {
                ParticipatingFleets = participatingFleets,
                GameState           = gs,
                IsGameResuming      = false
            };

            return(View("Index", vm));
        }