private async void Init(string pageLink) { var storage = new SqLiteBackend(DefaultStorageBackends.GetSqliteStorage(), SystemClock.Instance); var pages = new ObservableCollection <GenericPageHistory>(await storage.GetPageHistoryAsync(pageLink)); Pages = pages; Bindings.Update(); }
public static void Bootstrap(Container container) { container.Register <IClock>(() => SystemClock.Instance, Lifestyle.Singleton); container.Register <IPageBackendService, PageBackendService>(Lifestyle.Singleton); container.Register <IPageStorageBackendServiceImpl>(() => new SqLiteBackend(DefaultStorageBackends.GetSqliteStorage(), SystemClock.Instance), Lifestyle.Singleton); container.Register <IApplicationLauncherService, ApplicationLauncherService>(Lifestyle.Singleton); container.Register <IDefaultPagesService, DefaultPagesService>(Lifestyle.Transient); container.Register <IAssetsService, AssetsService>(Lifestyle.Singleton); container.Register <IMostRecentlyVisitedPagesService, MostRecentlyViewedPagesManager>(Lifestyle.Singleton); container.Register <IInMemoryKeyValueCache, InMemoryCache>(Lifestyle.Singleton); container.Register <IPersistentKeyValueCache>(() => new SqliteKeyValueCache(new SqliteDatabase(new SqliteStorageOptions { Path = "settings.db" })), Lifestyle.Singleton); container.Register <IFileExplorerService, FilesUWPService>(); container.Register <ILFSBackupService, LFSBackupService>(Lifestyle.Transient); container.RegisterSingleton <IPageBackend>(() => new PageSqliteBackend(new SqliteDatabase(new SqliteStorageOptions { Path = "test.db" }))); container.RegisterSingleton <ILabelBackend, LabelSqliteBackend>(); // container.RegisterSingleton<ILabelBackend, TestBackend>(); container.RegisterSingleton <IPageLabelsBackend, PageLabelsSqliteBackend>(); // container.RegisterSingleton<IPageLabelsBackend, TestBackend>(); // TODO Lifestyle container.RegisterSingleton <MarkdigPipelineBuilder>(); container.RegisterSingleton <Rendering.Markdown.Markdig.Markdig>(); // Converter container.RegisterSingleton <IConverter <DbDataReader, Label>, DbReaderToLabelConverter>(); container.RegisterSingleton <IConverter <DbDataReader, IList <Label> >, DbReaderToLabelsConverter>(); container.RegisterSingleton <IConverter <DbDataReader, IEnumerable <Guid> >, DbReaderToLabelIdsConverter>(); // Settings container.Register <IAppSettingsService, AppSettings>(Lifestyle.Singleton); container.Register <IFeatureFlagsService, FeatureFlagsService>(Lifestyle.Singleton); container.Register <IRenderingMarkdownSettingsService, RenderingMarkdownSettingsService>(Lifestyle.Singleton); container.Register <IBackupSyncSettingsService, BackupSyncSettingsService>(); container.RegisterSingleton <IBackendSettingsService, BackendSettingsService>(); // Serialization container.Register <IBackupSyncTargetsJsonSerializer, BackupSyncTargetsJsonSerializer>(Lifestyle.Singleton); // Startup Tasks container.RegisterSingleton <IStartupTask, CompositeStartupTask>(); container.Collection.Register <IStartupTask>(new[] { typeof(InsertDefaultPagesStartupTask), typeof(RegisterRxExceptionHandler) }, Lifestyle.Singleton); container.RegisterSingleton <TranslationManager, InCodeTranslationManager>(); // Queries container.RegisterSingleton <IQueryHandler <ListDiffQuery <LabelId>, ListDiffResult <LabelId> >, ListDiff <LabelId> >(); container.RegisterSingleton <IQueryHandler <GetSupportedCultures, SupportedCultures>, SupportedCulturesQueryHandler>(); container.RegisterSingleton <IQueryHandler <GetCurrentAppUICulture, CurrentAppUICulture>, CurrentAppUICultureQueryHandler>(); container.RegisterSingleton <IQueryHandler <GetDebugMode, DebugMode>, DebugModeQueryHandler>(); container.RegisterSingleton <IQueryHandler <GetCurrentAppTheme, AppTheme>, CurrentAppThemeQueryHandler>(); container.RegisterSingleton <IQueryHandler <GetAppThemes, AppThemes>, AppThemesQueryHandler>(); // Commands container.RegisterSingleton <ICommandHandler <LogEntry>, LogCmdHandler>(); // Bug see https://github.com/reactiveui/splat/issues/597 /* * Container.UseSimpleInjectorDependencyResolver(); * Locator.CurrentMutable.InitializeSplat(); * Locator.CurrentMutable.InitializeReactiveUI(); */ // ViewModels container.Register <AddLabelsToPageControlViewModel>(); container.Register <PageViewerCommandBarViewModel>(); container.Register <PersonalizationCtrlVM>(); container.Register <PageViewerViewModel>(); container.Register <GlobalSearchControlViewModel>(); container.Register <NewPageViewModel>(); // Events container.RegisterSingleton <IObservable <CultureChangedEventArgs>, CultureChangedEvent>(); container.RegisterSingleton <ICommandHandler <CultureChangedEventArgs>, CultureChangedEvent>(); container.RegisterSingleton <IObservable <ThemeChangedEventArgs>, ThemeChangedEvent>(); container.RegisterSingleton <ICommandHandler <ThemeChangedEventArgs>, ThemeChangedEvent>(); }