コード例 #1
0
        private void load()
        {
            PlaySongSelect songSelect;

            if (manager == null)
            {
                var storage = new TestStorage(@"TestCasePlaySongSelect");

                // this is by no means clean. should be replacing inside of OsuGameBase somehow.
                var context = new OsuDbContext();

                Func <OsuDbContext> contextFactory = () => context;

                dependencies.Cache(rulesets = new RulesetStore(contextFactory));
                dependencies.Cache(manager  = new BeatmapManager(storage, contextFactory, rulesets, null));

                for (int i = 0; i < 100; i += 10)
                {
                    manager.Import(createTestBeatmapSet(i));
                }
            }

            Add(songSelect = new PlaySongSelect());

            AddStep(@"Sort by Artist", delegate { songSelect.FilterControl.Sort = SortMode.Artist; });
            AddStep(@"Sort by Title", delegate { songSelect.FilterControl.Sort = SortMode.Title; });
            AddStep(@"Sort by Author", delegate { songSelect.FilterControl.Sort = SortMode.Author; });
            AddStep(@"Sort by Difficulty", delegate { songSelect.FilterControl.Sort = SortMode.Difficulty; });
        }
コード例 #2
0
        private void load(BeatmapManager baseManager)
        {
            TestSongSelect songSelect = null;

            var storage = new TestStorage(@"TestCasePlaySongSelect");

            // this is by no means clean. should be replacing inside of OsuGameBase somehow.
            var context = new OsuDbContext();

            Func <OsuDbContext> contextFactory = () => context;

            dependencies.Cache(rulesets = new RulesetStore(contextFactory));
            dependencies.Cache(manager  = new BeatmapManager(storage, contextFactory, rulesets, null)
            {
                DefaultBeatmap = defaultBeatmap = baseManager.GetWorkingBeatmap(null)
            });

            void loadNewSongSelect(bool deleteMaps = false) => AddStep("reload song select", () =>
            {
                if (deleteMaps)
                {
                    manager.DeleteAll();
                }

                if (songSelect != null)
                {
                    Remove(songSelect);
                    songSelect.Dispose();
                }

                Add(songSelect = new TestSongSelect());
            });

            loadNewSongSelect(true);

            AddWaitStep(3);

            AddAssert("dummy selected", () => songSelect.CurrentBeatmap == defaultBeatmap);

            AddStep("import test maps", () =>
            {
                for (int i = 0; i < 100; i += 10)
                {
                    manager.Import(createTestBeatmapSet(i));
                }
            });

            AddWaitStep(3);
            AddAssert("random map selected", () => songSelect.CurrentBeatmap != defaultBeatmap);

            loadNewSongSelect();
            AddWaitStep(3);
            AddAssert("random map selected", () => songSelect.CurrentBeatmap != defaultBeatmap);

            AddStep(@"Sort by Artist", delegate { songSelect.FilterControl.Sort = SortMode.Artist; });
            AddStep(@"Sort by Title", delegate { songSelect.FilterControl.Sort = SortMode.Title; });
            AddStep(@"Sort by Author", delegate { songSelect.FilterControl.Sort = SortMode.Author; });
            AddStep(@"Sort by Difficulty", delegate { songSelect.FilterControl.Sort = SortMode.Difficulty; });
        }
コード例 #3
0
ファイル: FileStore.cs プロジェクト: GDhero58/Undertale-
        private void dereference(OsuDbContext context, FileInfo[] files)
        {
            foreach (var f in files.GroupBy(f => f.ID))
            {
                var refetch = context.FileInfo.Find(f.Key);
                refetch.ReferenceCount -= f.Count();
                context.FileInfo.Update(refetch);
            }

            context.SaveChanges();
        }
コード例 #4
0
        protected override void Purge(List <BeatmapSetInfo> items, OsuDbContext context)
        {
            // metadata is M-N so we can't rely on cascades
            context.BeatmapMetadata.RemoveRange(items.Select(s => s.Metadata));
            context.BeatmapMetadata.RemoveRange(items.SelectMany(s => s.Beatmaps.Select(b => b.Metadata).Where(m => m != null)));

            // todo: we can probably make cascades work here with a FK in BeatmapDifficulty. just make to make it work correctly.
            context.BeatmapDifficulty.RemoveRange(items.SelectMany(s => s.Beatmaps.Select(b => b.BaseDifficulty)));

            base.Purge(items, context);
        }
コード例 #5
0
ファイル: KeyBindingStore.cs プロジェクト: DerpyCrabs/osu
 private IEnumerable <KeyBinding> query(OsuDbContext context, int?rulesetId = null, int?variant = null) =>
 context.DatabasedKeyBinding.Where(b => b.RulesetID == rulesetId && b.Variant == variant);
コード例 #6
0
 public SingletonContextFactory(OsuDbContext context)
 {
     this.context = context;
 }