public Task CancelFleet(Guid userId, FleetCancelationData fleetCancelation) { if (fleetCancelation == null) { throw new ArgumentNullException(nameof(fleetCancelation)); } EnsureGameIsInProgress(); EnsureUserIsOnline(userId); EnsureTurnIsInProgress(userId); var waitingFleets = _state.PlayerStates[userId].WaitingFleets; var validator = new CancelFleetValidator(waitingFleets.Count); fleetCancelation.EnsureIsValid(validator); var fleet = waitingFleets[fleetCancelation.Index]; waitingFleets.RemoveAt(fleetCancelation.Index); var planet = _map[fleet.From]; planet.Ships += fleet.Ships; return(Task.CompletedTask); }