コード例 #1
0
        [UsedImplicitly]         // by ninject
        public GuiLoader(
            Loader loader,
            CardRepository repo,
            NewsService newsService,
            DownloaderSubsystem downloaderSubsystem,
            DeckListModel deckListModel,
            DeckSearcher deckSearcher,
            DeckIndexUpdateSubsystem deckIndexUpdateSubsystem)
        {
            _loader = loader;
            _repo   = repo;

            _loader.AddAction(newsService.FetchNews);
            _loader.AddAction(downloaderSubsystem.CalculateProgress);
            _loader.AddTask(async() =>
            {
                deckListModel.Load();

                if (deckSearcher.IsIndexSaved)
                {
                    deckSearcher.LoadIndexes();
                }
                else
                {
                    while (!_repo.IsPriceLoadingComplete)
                    {
                        await TaskEx.Delay(100);
                    }

                    deckSearcher.LoadIndexes();
                }
            });
        }
コード例 #2
0
        [UsedImplicitly]         // by ninject
        public GuiLoader(
            Loader loader,
            CardRepository repo,
            PriceRepository priceRepo,
            NewsService newsService,
            DownloaderSubsystem downloaderSubsystem,
            DeckListModel deckListModel,
            DeckSearcher deckSearcher,
            DeckIndexUpdateSubsystem deckIndexUpdateSubsystem)
        {
            _loader    = loader;
            _repo      = repo;
            _priceRepo = priceRepo;

            _loader.AddTask(newsService.FetchNews);
            _loader.AddTask(token => downloaderSubsystem.CalculateProgress());
            _loader.AddTask(async token =>
            {
                deckListModel.Load();
                if (deckSearcher.IsIndexSaved)
                {
                    deckSearcher.LoadIndexes();
                    await _priceRepo.IsLoadingPriceComplete.Wait(token);
                }
                else
                {
                    await _priceRepo.IsLoadingPriceComplete.Wait(token);
                    deckSearcher.LoadIndexes();
                }

                deckIndexUpdateSubsystem.SubscribeToEvents();
                deckListModel.FillCardNames();
                deckListModel.SubscribeToEvents();
            });
        }