private async void Model_StateChanged(object sender, StateChangedEventArgs e) { if (_playerSide != e.GameState.GameInformation.NextToMove) { // if we just moved, we're responsible for persisting the move to the data store. await _dataService.StoreTurnRecordAsync( e.GameState.GameInformation.GameDataStore.GameID, SerializationHelper.SerializeTurnRecord(e.TurnRecord)); if (IsCheckMate()) { // TODO: stalemate _board.IsEnabled = false; _board.RevealAllPositions(); await _dataService.CompleteGameAsync(_model.GameInformation.GameDataStore.GameID); } } }