private async void _HandleGenerateCodeCommandExecuted() { if (!CandidateDefinitions.Any(def => string.IsNullOrEmpty(def.TableName))) { EntityGeneratorViewModel.ShowBusy("Generating entities..."); var request = new EntityGenerationRequest { OutputPath = OutputPath, Server = mPayload.Server, Database = mPayload.Database, Username = mPayload.Username, Password = mPayload.Password, EntityDefinitions = CandidateDefinitions.ToArray(), Namespace = Namespace, }; await EntityGenerationManager.GenerateEntities(request); Properties.Settings.Default.LastEntityNames = string.Join("@", request.EntityDefinitions.Select(entity => string.Format("{0}#{1}", entity.TableName, entity.EntityName))); Properties.Settings.Default.LastNamespace = Namespace; Properties.Settings.Default.LastOutputPath = OutputPath; Properties.Settings.Default.Save(); EntityGeneratorViewModel.HideBusy(); MessageBox.Show( @"Generation complete! ", "Entity Generation Complete", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } else { MessageBox.Show("An entity name is required for all tables. Please define an entity name for the following tables: " + string.Join(",", CandidateDefinitions.Where(def => string.IsNullOrEmpty(def.EntityName)).Select(def => def.TableName))); } }
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."); } }
private void _HandleExitCommandExecute() { EntityGeneratorViewModel.Exit(); }
private void _HandleBackCommandExecute() { EntityGeneratorViewModel.PopViewModel(); }