Keep provided IDs where possible if not online

This commit is contained in:
Dean Herbert
2020-03-30 15:05:40 +09:00
parent 09d860d5f5
commit 7ecce713bb
4 changed files with 13 additions and 9 deletions

View File

@ -451,6 +451,8 @@ namespace osu.Game.Beatmaps
var res = req.Result; var res = req.Result;
if (res != null)
{
beatmap.Status = res.Status; beatmap.Status = res.Status;
beatmap.BeatmapSet.Status = res.BeatmapSet.Status; beatmap.BeatmapSet.Status = res.BeatmapSet.Status;
beatmap.BeatmapSet.OnlineBeatmapSetID = res.OnlineBeatmapSetID; beatmap.BeatmapSet.OnlineBeatmapSetID = res.OnlineBeatmapSetID;
@ -458,6 +460,7 @@ namespace osu.Game.Beatmaps
LogForModel(set, $"Online retrieval mapped {beatmap} to {res.OnlineBeatmapSetID} / {res.OnlineBeatmapID}."); LogForModel(set, $"Online retrieval mapped {beatmap} to {res.OnlineBeatmapSetID} / {res.OnlineBeatmapID}.");
} }
}
catch (Exception e) catch (Exception e)
{ {
fail(e); fail(e);

View File

@ -12,11 +12,11 @@ namespace osu.Game.Online.API
/// An API request with a well-defined response type. /// An API request with a well-defined response type.
/// </summary> /// </summary>
/// <typeparam name="T">Type of the response (used for deserialisation).</typeparam> /// <typeparam name="T">Type of the response (used for deserialisation).</typeparam>
public abstract class APIRequest<T> : APIRequest public abstract class APIRequest<T> : APIRequest where T : class
{ {
protected override WebRequest CreateWebRequest() => new OsuJsonWebRequest<T>(Uri); protected override WebRequest CreateWebRequest() => new OsuJsonWebRequest<T>(Uri);
public T Result => ((OsuJsonWebRequest<T>)WebRequest).ResponseObject; public T Result => ((OsuJsonWebRequest<T>)WebRequest)?.ResponseObject;
protected APIRequest() protected APIRequest()
{ {

View File

@ -6,7 +6,8 @@ using osu.Game.Rulesets;
namespace osu.Game.Online.API.Requests namespace osu.Game.Online.API.Requests
{ {
public abstract class GetRankingsRequest<TModel> : APIRequest<TModel> public abstract class GetRankingsRequest<TModel> : APIRequest<TModel> where TModel : class
{ {
private readonly RulesetInfo ruleset; private readonly RulesetInfo ruleset;
private readonly int page; private readonly int page;

View File

@ -6,7 +6,7 @@ using osu.Framework.IO.Network;
namespace osu.Game.Online.API.Requests namespace osu.Game.Online.API.Requests
{ {
public abstract class PaginatedAPIRequest<T> : APIRequest<T> public abstract class PaginatedAPIRequest<T> : APIRequest<T> where T : class
{ {
private readonly int page; private readonly int page;
private readonly int itemsPerPage; private readonly int itemsPerPage;