예제 #1
0
        private SqlConnectionStringBuilder CreateServerPointerInCatalogue(IServerDefaults defaults, string prefix, string databaseName, PermissableDefaults defaultToSet, IPatcher patcher)
        {
            var opts = new PlatformDatabaseCreationOptions()
            {
                ServerName          = TestDatabaseSettings.ServerName,
                Prefix              = prefix,
                Username            = TestDatabaseSettings.Username,
                Password            = TestDatabaseSettings.Password,
                ValidateCertificate = false
            };

            var builder = opts.GetBuilder(databaseName);

            if (string.IsNullOrWhiteSpace(databaseName))
            {
                builder.InitialCatalog = "";
            }

            //create a new pointer
            var externalServerPointer = new ExternalDatabaseServer(CatalogueRepository, databaseName ?? "RAW", patcher)
            {
                Server   = builder.DataSource,
                Database = builder.InitialCatalog,
                Password = builder.Password,
                Username = builder.UserID
            };

            externalServerPointer.SaveToDatabase();

            //now make it the default DQE
            defaults.SetDefault(defaultToSet, externalServerPointer);

            return(builder);
        }
예제 #2
0
        private void btnCreateSuite_Click(object sender, EventArgs e)
        {
            var sb = new StringBuilder();

            try
            {
                Cursor = Cursors.WaitCursor;

                Console.SetOut(new StringWriter(sb));

                var opts = new PlatformDatabaseCreationOptions();
                opts.ServerName             = tbSuiteServer.Text;
                opts.Prefix                 = tbDatabasePrefix.Text;
                opts.Username               = tbUsername.Text;
                opts.Password               = tbPassword.Text;
                opts.ExampleDatasets        = cbCreateExampleDatasets.Checked;
                opts.Seed                   = _seed;
                opts.NumberOfPeople         = _peopleCount;
                opts.NumberOfRowsPerDataset = _rowCount;

                bool failed = false;

                var task = new Task(() =>
                {
                    try
                    {
                        var creator = new PlatformDatabaseCreation();
                        creator.CreatePlatformDatabases(opts);
                        if (!opts.SkipPipelines)
                        {
                            PostFixPipelines(opts);
                        }
                    }
                    catch (Exception ex)
                    {
                        checksUI1.OnCheckPerformed(
                            new CheckEventArgs("Database creation failed, check exception for details", CheckResult.Fail,
                                               ex));
                        failed = true;
                    }
                });
                task.Start();

                while (!task.IsCompleted)
                {
                    task.Wait(100);
                    Application.DoEvents();

                    var result = sb.ToString();

                    if (string.IsNullOrEmpty(result))
                    {
                        continue;
                    }

                    sb.Clear();

                    if (result.Contains("Exception"))
                    {
                        throw new Exception(result);
                    }

                    checksUI1.OnCheckPerformed(new CheckEventArgs(result, CheckResult.Success));
                }

                checksUI1.OnCheckPerformed(new CheckEventArgs("Finished Creating Platform Databases", CheckResult.Success));

                var cata   = opts.GetBuilder(PlatformDatabaseCreation.DefaultCatalogueDatabaseName);
                var export = opts.GetBuilder(PlatformDatabaseCreation.DefaultDataExportDatabaseName);

                UserSettings.CatalogueConnectionString  = cata.ConnectionString;
                UserSettings.DataExportConnectionString = export.ConnectionString;

                if (!failed)
                {
                    RestartApplication();
                }
            }
            catch (Exception exception)
            {
                checksUI1.OnCheckPerformed(new CheckEventArgs("Database creation failed, check exception for details", CheckResult.Fail, exception));
            }
            finally
            {
                Cursor = Cursors.Default;
            }
        }