public void RemoveBeatmap(string hash) { if (_beatmapHashes.Contains(hash)) { foreach (var map in AllBeatmaps()) { if (map.Md5 == hash) { UnknownBeatmaps.Remove(map); KnownBeatmaps.Remove(map); DownloadableBeatmaps.Remove(map); _beatmapHashes.Remove(hash); break; } } } }
public virtual bool RemoveBeatmap(string hash) { if (_beatmapHashes.Contains(hash)) { foreach (var map in AllBeatmaps()) { if (map.Md5 == hash) { UnknownBeatmaps.Remove(map); KnownBeatmaps.Remove(map); DownloadableBeatmaps.Remove(map); _beatmapHashes.Remove(hash); return(true); } } } return(false); }
private void ReprocessBeatmaps() { if (_beatmapHashes.Count <= 0) { return; } var tempBeatmaps = new Beatmaps(); tempBeatmaps.AddRange(this.AllBeatmaps()); UnknownBeatmaps.Clear(); KnownBeatmaps.Clear(); DownloadableBeatmaps.Clear(); foreach (var beatmap in tempBeatmaps) { ProcessNewlyAddedMap((BeatmapExtension)beatmap); } }
protected virtual void ProcessNewlyAddedMap(BeatmapExtension map) { lock (LoadedMaps.LockingObject) { _beatmapHashes.Add(map.Md5); var knownMap = (BeatmapExtension)LoadedMaps.GetByHash(map.Md5); if (knownMap != null) { ProcessAdditionalProps(map, knownMap); KnownBeatmaps.Add(knownMap); return; } knownMap = (BeatmapExtension)LoadedMaps.GetByMapId(map.MapId); if (map.MapId > 10 && knownMap != null) { //Remove previously added map hash _beatmapHashes.Remove(map.Md5); //And add our local version of the map that instead. _beatmapHashes.Add(knownMap.Md5); ProcessAdditionalProps(map, knownMap); KnownBeatmaps.Add(knownMap); knownMap.LocalVersionDiffers = true; return; } if (map.MapSetId != 0) { DownloadableBeatmaps.Add(map); } else { UnknownBeatmaps.Add(map); } map.LocalBeatmapMissing = true; } }