Fix links from profile top scores to beatmaps not working correctly

This commit is contained in:
Dean Herbert 2018-07-05 21:00:23 +09:00
parent 6ae342d1a0
commit 625b9ead4c
3 changed files with 13 additions and 3 deletions

View File

@ -14,7 +14,6 @@ namespace osu.Game.Beatmaps
public class BeatmapMetadata : IEquatable<BeatmapMetadata> public class BeatmapMetadata : IEquatable<BeatmapMetadata>
{ {
[DatabaseGenerated(DatabaseGeneratedOption.Identity)] [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[JsonIgnore]
public int ID { get; set; } public int ID { get; set; }
public string Title { get; set; } public string Title { get; set; }

View File

@ -63,7 +63,14 @@ namespace osu.Game.Online.API.Requests.Responses
[JsonProperty(@"beatmapset")] [JsonProperty(@"beatmapset")]
private BeatmapMetadata metadata private BeatmapMetadata metadata
{ {
set => Beatmap.Metadata = value; set
{
// extract the set ID to its correct place.
Beatmap.BeatmapSet = new BeatmapSetInfo { OnlineBeatmapSetID = value.ID };
value.ID = 0;
Beatmap.Metadata = value;
}
} }
[JsonProperty(@"statistics")] [JsonProperty(@"statistics")]

View File

@ -9,6 +9,7 @@ using osu.Framework.Localisation;
using osu.Game.Beatmaps; using osu.Game.Beatmaps;
using osu.Game.Graphics.Containers; using osu.Game.Graphics.Containers;
using osu.Game.Graphics.Sprites; using osu.Game.Graphics.Sprites;
namespace osu.Game.Overlays.Profile.Sections namespace osu.Game.Overlays.Profile.Sections
{ {
/// <summary> /// <summary>
@ -32,7 +33,10 @@ namespace osu.Game.Overlays.Profile.Sections
{ {
Action = () => Action = () =>
{ {
if (beatmap.BeatmapSet?.OnlineBeatmapSetID != null) beatmapSetOverlay?.FetchAndShowBeatmapSet(beatmap.BeatmapSet.OnlineBeatmapSetID.Value); if (beatmap.OnlineBeatmapID != null)
beatmapSetOverlay?.FetchAndShowBeatmapSet(beatmap.OnlineBeatmapID.Value);
else if (beatmap.BeatmapSet?.OnlineBeatmapSetID != null)
beatmapSetOverlay?.FetchAndShowBeatmapSet(beatmap.BeatmapSet.OnlineBeatmapSetID.Value);
}; };
Child = new FillFlowContainer Child = new FillFlowContainer