예제 #1
0
        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();
            }
        }
예제 #2
0
        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);
                }
            }
        }