public async Task DeleteGamePlayer(string gameId, string playerId, bool synchronize = false) { var gamePlayer = await GetGamePlayer(gameId, playerId).ConfigureAwait(false); if (gamePlayer != null) { await GamePlayersTable.DeleteAsync(gamePlayer).ConfigureAwait(false); await SyncAsync(); } }
private async Task CleanupGames() { var now = DateTimeOffset.Now.AddDays(-2); var games = await GamesTable.Where(x => x.CreatedAt < now).ToListAsync().ConfigureAwait(false); foreach (var game in games) { if ((int)game.GameStatus < (int)GameStatus.Started) { var gamePlayers = await GamePlayersTable.Where(x => x.GameId == game.Id).ToListAsync().ConfigureAwait(false); foreach (var gamePlayer in gamePlayers) { await GamePlayersTable.DeleteAsync(gamePlayer).ConfigureAwait(false); } await GamesTable.DeleteAsync(game).ConfigureAwait(false); } } }