private async void ButtonGenerate_OnClick(object sender, RoutedEventArgs e)
        {
            if (ConnectionStringObject == null)
            {
                return;
            }

            Database database = Database.Get(SelectedDatabaseSystem.ToString(), ConnectionStringObject.ToString(true));

            if (!database.Exists)
            {
                MessageBox.Show("Cannot connect to the database");
                return;
            }

            // Update Recent configurations
            Settings.Current.AddRecentConnectionString(SelectedDatabaseSystem, database);
            Settings.Current.SerializeToConfiguration();

            // Generate
            try
            {
                CircularProgressBar.Visibility = Visibility.Visible;
                Exception exception = null;
                var       count     = ConvertUtilities.ChangeType(TextBoxRows.Text, 100);
                var       nullCount = ConvertUtilities.ChangeType(TextBoxNullRows.Text, 5);

                await Task.Run(() =>
                {
                    Project project             = new Project(database);
                    project.BatchStatementCount = 1;
                    project.InitializeDefaultGenerator();
                    SqlScriptExecutor sqlScriptExecutor = new SqlScriptExecutor();

                    if (Debugger.IsAttached)
                    {
                        project.Generate(sqlScriptExecutor, count, nullCount);
                    }
                    else
                    {
                        try
                        {
                            project.Generate(sqlScriptExecutor, count, nullCount);
                        }
                        catch (Exception ex)
                        {
                            exception = ex;
                        }
                    }
                });

                if (exception == null)
                {
                    MessageBox.Show("Done");
                }
                else
                {
                    MessageBox.Show(exception.ToString(), "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Error", MessageBoxButton.OK, MessageBoxImage.Error);
            }
            finally
            {
                CircularProgressBar.Visibility = Visibility.Collapsed;
            }
        }