Пример #1
0
        /// <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());
            }
        }
Пример #2
0
        /// <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;
            }
        }