/// <summary> /// Delete a beatmap from the manager. /// Is a no-op for already deleted beatmaps. /// </summary> /// <param name="beatmapSet">The beatmap set to delete.</param> public void Delete(BeatmapSetInfo beatmapSet) { if (!beatmaps.Delete(beatmapSet)) { return; } if (!beatmapSet.Protected) { files.Dereference(beatmapSet.Files.Select(f => f.FileInfo).ToArray()); } }
/// <summary> /// Delete a beatmap from the manager. /// Is a no-op for already deleted beatmaps. /// </summary> /// <param name="beatmapSet">The beatmap set to delete.</param> public void Delete(BeatmapSetInfo beatmapSet) { using (var usage = contextFactory.GetForWrite()) { var context = usage.Context; context.ChangeTracker.AutoDetectChangesEnabled = false; // re-fetch the beatmap set on the import context. beatmapSet = context.BeatmapSetInfo.Include(s => s.Files).ThenInclude(f => f.FileInfo).First(s => s.ID == beatmapSet.ID); if (beatmaps.Delete(beatmapSet)) { if (!beatmapSet.Protected) { files.Dereference(beatmapSet.Files.Select(f => f.FileInfo).ToArray()); } } context.ChangeTracker.AutoDetectChangesEnabled = true; } }