Fix scores importing with deleted beatmap sets

This commit is contained in:
smoogipoo 2019-09-20 19:39:21 +09:00
parent 33e39795c3
commit dfc0928ebe
3 changed files with 4 additions and 2 deletions

View File

@ -590,7 +590,7 @@ protected virtual void PreImport(TModel model)
/// </summary>
/// <param name="existing">The existing model.</param>
/// <param name="import">The newly imported model.</param>
/// <returns>Whether the existing model should be restored and used. Returning false will delete the existing a force a re-import.</returns>
/// <returns>Whether the existing model should be restored and used. Returning false will delete the existing and force a re-import.</returns>
protected virtual bool CanUndelete(TModel existing, TModel import) => true;
private DbSet<TModel> queryModel() => ContextFactory.Get().Set<TModel>();

View File

@ -22,6 +22,6 @@ public DatabasedLegacyScoreParser(RulesetStore rulesets, BeatmapManager beatmaps
}
protected override Ruleset GetRuleset(int rulesetId) => rulesets.GetRuleset(rulesetId).CreateInstance();
protected override WorkingBeatmap GetBeatmap(string md5Hash) => beatmaps.GetWorkingBeatmap(beatmaps.QueryBeatmap(b => b.MD5Hash == md5Hash));
protected override WorkingBeatmap GetBeatmap(string md5Hash) => beatmaps.GetWorkingBeatmap(beatmaps.QueryBeatmap(b => !b.BeatmapSet.DeletePending && b.MD5Hash == md5Hash));
}
}

View File

@ -56,6 +56,8 @@ protected override ScoreInfo CreateModel(ArchiveReader archive)
}
}
protected override bool CanUndelete(ScoreInfo existing, ScoreInfo import) => false;
protected override IEnumerable<string> GetStableImportPaths(Storage stableStorage)
=> stableStorage.GetFiles(ImportFromStablePath).Where(p => HandledExtensions.Any(ext => Path.GetExtension(p)?.Equals(ext, StringComparison.InvariantCultureIgnoreCase) ?? false));