IEnumerable <BeatmapLittle> GetAllBeatmaps() { List <BeatmapLittle> beatmaps = new List <BeatmapLittle>(); var list = osu_db.Beatmaps.AsParallel().GroupBy(x => x.Title).Select(x => x.First()).ToList(); while (list.Count() >= MAX_BEATMAPS) { list = list.GetRange(0, list.Count() - 1); } Parallel.ForEach(list, beatmap => { BeatmapLittle aux = new BeatmapLittle(beatmap); lock (beatmaps) { beatmaps.Add(aux); } } ); return(beatmaps); }
public FullTrack FindTrackByBeatmap(BeatmapLittle beatmap) { FullTrack aux = null; SearchItem item = _spotify.SearchItems(beatmap.searchString(), SearchType.Track); while (item.HasError()) { Console.WriteLine("Error Status: " + item.Error.Status); Console.WriteLine("Error Msg: FindTrackByBeatmap " + item.Error.Message); Thread.Sleep(apiSleepTime); item = _spotify.SearchItems(beatmap.searchString(), SearchType.Track); } if (item.Tracks.Total > 0) { aux = item.Tracks.Items.First(); } return(aux); }
public IEnumerable <BeatmapLittle> GetCollectionBeatmaps(string collectionName) { if (collectionName.ToLower().Equals("all")) { return(GetAllBeatmaps()); } List <BeatmapLittle> beatmaps = new List <BeatmapLittle>(); var hashList = collections_db.Collections.Find(x => x.Name.ToLower() == collectionName.ToLower()).Md5Hashes; Parallel.ForEach(hashList, hash => { var beatmap = osu_db.Beatmaps.Find(bm => bm.BeatmapChecksum == hash); BeatmapLittle aux = new BeatmapLittle(beatmap); lock (beatmaps) { beatmaps.Add(aux); } } ); return(beatmaps); }