Extract update into PreUpdate(), add test

This commit is contained in:
smoogipoo
2020-06-02 17:22:09 +09:00
parent fac96f6ddd
commit dfb9687fb5
3 changed files with 26 additions and 4 deletions

View File

@ -201,10 +201,6 @@ namespace osu.Game.Beatmaps
using (var sw = new StreamWriter(stream, Encoding.UTF8, 1024, true))
new LegacyBeatmapEncoder(beatmapContent).Encode(sw);
var attachedInfo = setInfo.Beatmaps.Single(b => b.ID == info.ID);
var md5Hash = stream.ComputeMD5Hash();
attachedInfo.MD5Hash = md5Hash;
UpdateFile(setInfo, setInfo.Files.Single(f => string.Equals(f.Filename, info.Path, StringComparison.OrdinalIgnoreCase)), stream);
}
@ -213,6 +209,19 @@ namespace osu.Game.Beatmaps
workingCache.Remove(working);
}
protected override void PreUpdate(BeatmapSetInfo item)
{
base.PreUpdate(item);
foreach (var info in item.Beatmaps)
{
var file = item.Files.FirstOrDefault(f => string.Equals(f.Filename, info.Path, StringComparison.OrdinalIgnoreCase))?.FileInfo.StoragePath;
using (var stream = Files.Store.GetStream(file))
info.MD5Hash = stream.ComputeMD5Hash();
}
}
private readonly WeakList<WorkingBeatmap> workingCache = new WeakList<WorkingBeatmap>();
/// <summary>