示例#1
0
 public MainWindowModel()
 {
     DatabaseNavigationViewModel = new DatabaseNavigationViewModel();
     DatabaseNavigationViewModel.DocumentRequested      += OnQueryRequested;
     DatabaseNavigationViewModel.ItemsCollectionChanged += OnItemsCollectionChanged;
     DatabaseVisualizationViewModel = new DatabaseVisualizationViewModel();
 }
示例#2
0
        public async Task Initialize()
        {
            CancellationTokenSource cts = new CancellationTokenSource();

            MethodInfo testMethod = GetType().GetRuntimeMethod(
                TestContext.TestName, new Type[0]
                );

            var specAttr = testMethod.GetCustomAttribute <DetailsForAttribute>();
            var dataAttr = testMethod.GetCustomAttribute <TestDataAttribute>();

            Assert.IsTrue(specAttr != null || dataAttr != null);

            try
            {
                Utils.DatabaseInfo databaseInfo = await Utils.GetDatabaseInfoForTest(TestContext);

                KdbxReader reader = new KdbxReader();

                using (IRandomAccessStream stream = await databaseInfo.Database.AsIStorageFile.OpenReadAsync())
                {
                    Assert.IsFalse((await reader.ReadHeaderAsync(stream, cts.Token)).IsError);
                    KdbxDecryptionResult decryption = await reader.DecryptFileAsync(stream, databaseInfo.Password, databaseInfo.Keyfile, cts.Token);

                    Assert.IsFalse(decryption.Result.IsError);
                    this.document = decryption.GetDocument();

                    if (specAttr != null && (dataAttr == null || !dataAttr.SkipInitialization))
                    {
                        IDatabaseNavigationViewModel navVm = new DatabaseNavigationViewModel();
                        navVm.SetGroup(this.document.Root.DatabaseGroup);

                        IDatabasePersistenceService persistenceService = new DummyPersistenceService();

                        this.instantiationTime = DateTime.Now;
                        if (specAttr.IsNew)
                        {
                            this.expectedParent = this.document.Root.DatabaseGroup;
                            this.viewModel      = GetNewViewModel(navVm, persistenceService, this.document, this.expectedParent);
                        }
                        else
                        {
                            this.expectedParent = this.document.Root.DatabaseGroup;
                            this.viewModel      = GetExistingViewModel(
                                navVm,
                                persistenceService,
                                this.document,
                                specAttr.IsOpenedReadOnly
                                );
                        }
                    }
                    else
                    {
                        this.expectedParent = null;
                        Assert.IsTrue(dataAttr.SkipInitialization);
                    }
                }
            }
            catch (InvalidOperationException) { }
        }
        public MainWindowModel()
        {
            string      databasePath = @"D:\Dev\Database";
            ISqlService sqlService   = new SqliteService();

            DatabaseNavigation = new DatabaseNavigationViewModel();
            ObservableTreeItem item = new ObservableTreeItem
            {
                Name = "Database",
                Path = databasePath,
                Type = ItemTypeModel.Folder
            };
            CreateTableDialog dialog = new CreateTableDialog(databasePath, sqlService);

            //dialog.ShowDialog();
            item.Items = new ObservableCollection <ObservableTreeItem>(sqlService.GetItems(item.Translate()).Select(i => i.Translate()));
            DatabaseNavigation.Items.Add(item);
            DatabaseNavigation.RefreshDatabases();
            DatabaseVisualizationViewModel = new DatabaseVisualizationViewModel();
            DatabaseVisualizationViewModel.Documents.Add(new Document
            {
                FilePath = @"Users\Andy\file.sqe"
            });
            DatabaseVisualizationViewModel.AvailableDatabases = new ObservableCollection <string> {
                databasePath + @"\home.db"
            };
            DatabaseVisualizationViewModel.ActiveDatabase = DatabaseVisualizationViewModel.AvailableDatabases[0];
        }
示例#4
0
        public DesignDatabaseViewModel()
        {
            NavigationViewModel = new DatabaseNavigationViewModel();
            SortMode            = new DatabaseSortMode(DatabaseSortMode.Mode.DatabaseOrder, "Database order");
            AvailableSortModes  = new List <DatabaseSortMode>
            {
                SortMode
            };

            IKeePassGroup dbGroup  = GetGroup("Database");
            IKeePassGroup subGroup = GetGroup("Subdirectory", dbGroup);

            dbGroup.Children.Add(subGroup);
            IKeePassGroup rootGroup = GetGroup("Current Root", subGroup);

            subGroup.Children.Add(rootGroup);

            rootGroup.Children.Add(GetGroup("Foo Directory", rootGroup));
            rootGroup.Children.Add(GetGroup("Bar Directory", rootGroup));
            rootGroup.Children.Add(GetGroup("Baz Directory", rootGroup));
            rootGroup.Children.Add(GetGroup("Some Directory", rootGroup));
            rootGroup.Children.Add(GetGroup("Some other node", rootGroup));
            rootGroup.Children.Add(GetGroup("Foo Directory", rootGroup));
            rootGroup.Children.Add(GetGroup("Bar Directory", rootGroup));
            rootGroup.Children.Add(GetGroup("Baz Directory", rootGroup));
            rootGroup.Children.Add(GetGroup("Some Directory", rootGroup));
            rootGroup.Children.Add(GetGroup("Some other node", rootGroup));
            rootGroup.Children.Add(GetGroup("Foo Directory", rootGroup));
            rootGroup.Children.Add(GetGroup("Bar Directory", rootGroup));
            rootGroup.Children.Add(GetGroup("Baz Directory", rootGroup));
            rootGroup.Children.Add(GetGroup("Some Directory", rootGroup));
            rootGroup.Children.Add(GetGroup("Some other node", rootGroup));
            rootGroup.Children.Add(GetEntry("Bank", "welcome", parent: rootGroup));
            rootGroup.Children.Add(GetEntry("Airline", "flymeout", "123456", "myairline.org", parent: rootGroup));
            rootGroup.Children.Add(GetEntry("Facebook", "aloha", parent: rootGroup));

            IKeePassEntry active = GetEntry("FooHub", "secure89", "Jimbo", "http://test.com/", parent: rootGroup);

            rootGroup.Children.Add(active);

            NavigationViewModel.SetEntry(active);
            SortedChildren = new ReadOnlyObservableCollection <IDatabaseNodeViewModel>(
                new ObservableCollection <IDatabaseNodeViewModel>(
                    NavigationViewModel.ActiveGroup.Children
                    .Select(node => new DatabaseNodeViewModel(node, false)))
                );
        }