Merge branch 'master' into add-missing-indices

This commit is contained in:
Dan Balasescu 2017-10-25 22:58:26 +09:00 committed by GitHub
commit ffec5dd717
4 changed files with 17 additions and 14 deletions

View File

@ -17,6 +17,7 @@ public class BeatmapMetadata
private int? onlineBeatmapSetID; private int? onlineBeatmapSetID;
[NotMapped] [NotMapped]
[JsonProperty(@"id")]
public int? OnlineBeatmapSetID public int? OnlineBeatmapSetID
{ {
get { return onlineBeatmapSetID; } get { return onlineBeatmapSetID; }

View File

@ -9,7 +9,7 @@
namespace osu.Game.Online.API.Requests namespace osu.Game.Online.API.Requests
{ {
public class GetBeatmapSetsResponse : BeatmapMetadata public class GetBeatmapSetsResponse : BeatmapMetadata // todo: this is a bit wrong...
{ {
[JsonProperty(@"covers")] [JsonProperty(@"covers")]
private BeatmapSetOnlineCovers covers { get; set; } private BeatmapSetOnlineCovers covers { get; set; }
@ -23,9 +23,6 @@ public class GetBeatmapSetsResponse : BeatmapMetadata
[JsonProperty(@"favourite_count")] [JsonProperty(@"favourite_count")]
private int favouriteCount { get; set; } private int favouriteCount { get; set; }
[JsonProperty(@"id")]
private int onlineId { get; set; }
[JsonProperty(@"user_id")] [JsonProperty(@"user_id")]
private long creatorId { private long creatorId {
set { Author.Id = value; } set { Author.Id = value; }
@ -38,7 +35,7 @@ public BeatmapSetInfo ToBeatmapSet(RulesetStore rulesets)
{ {
return new BeatmapSetInfo return new BeatmapSetInfo
{ {
OnlineBeatmapSetID = onlineId, OnlineBeatmapSetID = OnlineBeatmapSetID,
Metadata = this, Metadata = this,
OnlineInfo = new BeatmapSetOnlineInfo OnlineInfo = new BeatmapSetOnlineInfo
{ {

View File

@ -3,6 +3,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Tasks;
using OpenTK; using OpenTK;
using osu.Framework.Allocation; using osu.Framework.Allocation;
using osu.Framework.Configuration; using osu.Framework.Configuration;
@ -65,9 +66,7 @@ public IEnumerable<BeatmapSetInfo> BeatmapSets
ResultAmounts = new ResultCounts(distinctCount(artists), distinctCount(songs), distinctCount(tags)); ResultAmounts = new ResultCounts(distinctCount(artists), distinctCount(songs), distinctCount(tags));
if (beatmapSets.Any() && panels == null) recreatePanels(Filter.DisplayStyleControl.DisplayStyle.Value);
// real use case? currently only seems to be for test case
recreatePanels(Filter.DisplayStyleControl.DisplayStyle.Value);
} }
} }
@ -274,13 +273,17 @@ private void updateSearch()
Filter.DisplayStyleControl.Dropdown.Current.Value, Filter.DisplayStyleControl.Dropdown.Current.Value,
Filter.Tabs.Current.Value); //todo: sort direction (?) Filter.Tabs.Current.Value); //todo: sort direction (?)
getSetsRequest.Success += r => getSetsRequest.Success += response =>
{ {
BeatmapSets = r?. Task.Run(() =>
Select(response => response.ToBeatmapSet(rulesets)). {
Where(b => beatmaps.QueryBeatmapSet(q => q.OnlineBeatmapSetID == b.OnlineBeatmapSetID) == null); var onlineIds = response.Select(r => r.OnlineBeatmapSetID).ToList();
var presentOnlineIds = beatmaps.QueryBeatmapSets(s => onlineIds.Contains(s.OnlineBeatmapSetID)).Select(r => r.OnlineBeatmapSetID).ToList();
var sets = response.Select(r => r.ToBeatmapSet(rulesets)).Where(b => !presentOnlineIds.Contains(b.OnlineBeatmapSetID)).ToList();
recreatePanels(Filter.DisplayStyleControl.DisplayStyle.Value); // may not need scheduling; loads async internally.
Schedule(() => BeatmapSets = sets);
});
}; };
api.Queue(getSetsRequest); api.Queue(getSetsRequest);

View File

@ -41,7 +41,7 @@ public RulesetStore(Func<OsuDbContext> factory)
/// <summary> /// <summary>
/// All available rulesets. /// All available rulesets.
/// </summary> /// </summary>
public IEnumerable<RulesetInfo> AvailableRulesets => GetContext().RulesetInfo.Where(r => r.Available); public IEnumerable<RulesetInfo> AvailableRulesets;
private static Assembly currentDomain_AssemblyResolve(object sender, ResolveEventArgs args) => loaded_assemblies.Keys.FirstOrDefault(a => a.FullName == args.Name); private static Assembly currentDomain_AssemblyResolve(object sender, ResolveEventArgs args) => loaded_assemblies.Keys.FirstOrDefault(a => a.FullName == args.Name);
@ -93,6 +93,8 @@ protected void AddMissingRulesets()
} }
context.SaveChanges(); context.SaveChanges();
AvailableRulesets = context.RulesetInfo.Where(r => r.Available).ToList();
} }
private static void loadRulesetFromFile(string file) private static void loadRulesetFromFile(string file)