private void _HandleNextPageCommand() { if (CandidateTables != null && CandidateTables.Any(item => item.IsSelected)) { var selectedTables = CandidateTables.Where(item => item.IsSelected).ToArray(); var payload = new SelectedTablesPayload { SelectedTables = selectedTables.Select(item => item.Description).ToArray(), Server = Server, Database = Database, Username = Username, Password = Password, FilePath = FilePath }; Properties.Settings.Default.LastSelectedTables = string.Join("@", selectedTables.Select(item => item.Description).ToArray()); Properties.Settings.Default.LastDatabase = Database; Properties.Settings.Default.DefaultServer = Server; Properties.Settings.Default.DefaultUsername = Username; Properties.Settings.Default.DefaultPassword = Password; Properties.Settings.Default.Save(); EntityEntryView view = new EntityEntryView(payload); EntityGeneratorViewModel.NavigateTo(view); } else { MessageBox.Show("Please connect and select one or more tables to generate entities for."); } }
private async void _HandleConnectToDatabaseCommand() { if (!string.IsNullOrWhiteSpace(Server) && !string.IsNullOrEmpty(Database) && !string.IsNullOrWhiteSpace(Username) && !string.IsNullOrWhiteSpace(Password)) { EntityGeneratorViewModel.ShowBusy("Connecting..."); var results = await SchemaManager.RetrieveDatabaseTables(Server, Database, Username, Password); CandidateTables = results.Select(table => new SelectableItem { Description = table }).ToArray(); var lastSelected = Properties.Settings.Default.LastSelectedTables; if (!string.IsNullOrEmpty(lastSelected)) { var tables = lastSelected.Split('@'); foreach (var table in tables) { var selectableTableItem = CandidateTables.SingleOrDefault(item => item.Description == table); if (selectableTableItem != null) { selectableTableItem.IsSelected = true; } } } CandidateTablesViewSource = new CollectionViewSource() { Source = CandidateTables }; CandidateTablesViewSource.Filter += _HandleCandidateTablesFilter; EntityGeneratorViewModel.HideBusy(); } else { MessageBox.Show("Please enter a connection string."); } }