Esempio n. 1
0
        private async Task updateDatabaseSettings(MultiplayerRoom room)
        {
            using (var db = databaseFactory.GetInstance())
            {
                var item   = new multiplayer_playlist_item(room);
                var dbItem = await db.GetPlaylistItemFromRoomAsync(room.RoomID, item.id);

                if (dbItem == null)
                {
                    throw new InvalidStateException("Attempted to select a playlist item not contained by the room.");
                }

                if (dbItem.expired)
                {
                    throw new InvalidStateException("Attempted to select an expired playlist item.");
                }

                string?beatmapChecksum = await db.GetBeatmapChecksumAsync(item.beatmap_id);

                if (beatmapChecksum == null)
                {
                    throw new InvalidStateException("Attempted to select a beatmap which does not exist online.");
                }

                if (room.Settings.BeatmapChecksum != beatmapChecksum)
                {
                    throw new InvalidStateException("Attempted to select a beatmap which has been modified.");
                }

                await db.UpdateRoomSettingsAsync(room);
            }
        }
        public async Task <long> AddPlaylistItemAsync(multiplayer_playlist_item item)
        {
            await connection.ExecuteAsync(
                "INSERT INTO multiplayer_playlist_items (room_id, beatmap_id, ruleset_id, allowed_mods, required_mods, created_at, updated_at)"
                + " VALUES (@room_id, @beatmap_id, @ruleset_id, @allowed_mods, @required_mods, NOW(), NOW())",
                item);

            return(await connection.QuerySingleAsync <long>("SELECT max(id) FROM multiplayer_playlist_items WHERE room_id = @room_id", item));
        }
        public async Task UpdateRoomSettingsAsync(MultiplayerRoom room)
        {
            var dbPlaylistItem = new multiplayer_playlist_item(room);

            await connection.ExecuteAsync("UPDATE multiplayer_rooms SET name = @Name WHERE id = @RoomID", new
            {
                RoomID = room.RoomID,
                Name   = room.Settings.Name
            });

            await connection.ExecuteAsync("UPDATE multiplayer_playlist_items SET beatmap_id = @beatmap_id, ruleset_id = @ruleset_id, required_mods = @required_mods, updated_at = NOW() WHERE room_id = @room_id", dbPlaylistItem);
        }
Esempio n. 4
0
        protected virtual async Task UpdateDatabaseSettings(MultiplayerRoom room)
        {
            using (var conn = Database.GetConnection())
            {
                var dbPlaylistItem = new multiplayer_playlist_item(room);

                await conn.ExecuteAsync("UPDATE multiplayer_rooms SET name = @Name WHERE id = @RoomID", new
                {
                    RoomID = room.RoomID,
                    Name   = room.Settings.Name
                });

                await conn.ExecuteAsync("UPDATE multiplayer_playlist_items SET beatmap_id = @beatmap_id, ruleset_id = @ruleset_id, required_mods = @required_mods, updated_at = NOW() WHERE room_id = @room_id", dbPlaylistItem);
            }
        }
Esempio n. 5
0
        private async Task updateDatabaseSettings(MultiplayerRoom room)
        {
            using (var db = databaseFactory.GetInstance())
            {
                var dbPlaylistItem = new multiplayer_playlist_item(room);

                string beatmapChecksum = await db.GetBeatmapChecksumAsync(dbPlaylistItem.beatmap_id);

                if (beatmapChecksum == null)
                {
                    throw new InvalidStateException("Attempted to select a beatmap which does not exist online.");
                }

                if (room.Settings.BeatmapChecksum != beatmapChecksum)
                {
                    throw new InvalidStateException("Attempted to select a beatmap which has been modified.");
                }

                await db.UpdateRoomSettingsAsync(room);
            }
        }
        public async Task UpdateRoomSettingsAsync(MultiplayerRoom room)
        {
            await connection.ExecuteAsync("UPDATE multiplayer_rooms SET name = @Name WHERE id = @RoomID", new
            {
                RoomID = room.RoomID,
                Name   = room.Settings.Name
            });

            var currentItem = await GetCurrentPlaylistItemAsync(room.RoomID);

            var newItem = new multiplayer_playlist_item(room)
            {
                id = currentItem.id
            };

            await connection.ExecuteAsync("UPDATE multiplayer_playlist_items SET "
                                          + " beatmap_id = @beatmap_id,"
                                          + " ruleset_id = @ruleset_id,"
                                          + " required_mods = @required_mods,"
                                          + " allowed_mods = @allowed_mods,"
                                          + " updated_at = NOW()"
                                          + " WHERE id = @id", newItem);
        }