public override ISettingProvider Save()
        {
            if (!File.Exists(applicationManager.SettingFile))
            {
                File.Create(applicationManager.SettingFile).Close();
                File.WriteAllText(applicationManager.SettingFile, JsonConvert.SerializeObject(new { }));
            }
            var connBuilder = new ConnectionStringBuilder(Options);
            var connstr     = connBuilder.Build();
            var jSetting    = JsonConvert.DeserializeObject(File.ReadAllText(applicationManager.SettingFile)) as JObject;

            if (jSetting["ConnectionStrings"] == null)
            {
                jSetting["ConnectionStrings"] = new JObject
                {
                    { "__MigrationDatabase", connBuilder.Build() }
                };
            }
            else
            {
                jSetting["ConnectionStrings"]["__MigrationDatabase"] = connBuilder.Build();
            }
            var result = jSetting.ToString();

            File.WriteAllText(applicationManager.SettingFile, result);
            eventAggregator.GetEvent <ApplicationRestartEvent>().Publish(new ApplicationRestartEventArgument());
            return(this);
        }
Exemplo n.º 2
0
        /// <summary>
        ///     Creates Database for specified dbEngine and init it with scripts in order from index 0 to Count - 1 with
        ///     typical options to build connection string (host, database, user & password)
        /// </summary>
        /// <param name="dbManager"> An instance of IDbManager (see DbManagerFactory, or ServiceCollectionExtensions) </param>
        /// <param name="dbEngine"> Db engine type </param>
        /// <param name="host"> Database engine hostname i.e. localhost </param>
        /// <param name="database"> Creating database name </param>
        /// <param name="integratedSecurity"> Use built-in system authentication (typically Win authentication for SQL Server) </param>
        /// <param name="user"> Username if integrated security is not used </param>
        /// <param name="password"> User password </param>
        /// <param name="scripts"> List of scripts to init after create </param>
        /// <returns>
        ///     Connection string of created database
        /// </returns>
        public static string Create(this IDbManager dbManager, DbEngine dbEngine,
                                    string host, string database, bool integratedSecurity, string user, string password,
                                    IList <string> scripts)
        {
            if (dbManager == null || scripts.Any(s => !File.Exists(Path.GetFullPath(s))))
            {
                return(null);
            }
            IDictionary <string, string> options = new Dictionary <string, string>()
            {
                { DbParametersKeys.HostKey, host },
                { DbParametersKeys.DatabaseKey, database },
                { DbParametersKeys.UseIntegratedSecurityKey, integratedSecurity.ToString() },
                { DbParametersKeys.LoginKey, user },
                { DbParametersKeys.PasswordKey, password }
            };
            string connectionString = ConnectionStringBuilder.Build(dbEngine, options);
            bool   result           = dbManager.CreateDatabase(connectionString, true);

            if (!result)
            {
                return(null);
            }
            return(dbManager.Init(connectionString, scripts) ? connectionString : null);
        }
Exemplo n.º 3
0
        private string BuildConnectionString(DbEngine dbEngine, bool useIntegratedSecurity, string userName, string password,
                                             int?connectionLifeTime = null, int?connectionTimeout = null, int?commandTimeOut = null)
        {
            Tuple <string, string>       hostAndDatabase = _hostAndDatabaseOptions[dbEngine];
            IDictionary <string, string> options         = new Dictionary <string, string>();

            options.Add(DbParametersKeys.HostKey, hostAndDatabase.Item1);
            options.Add(DbParametersKeys.DatabaseKey, hostAndDatabase.Item2);
            options.Add(DbParametersKeys.UseIntegratedSecurityKey, useIntegratedSecurity.ToString());
            options.Add(DbParametersKeys.LoginKey, userName);
            options.Add(DbParametersKeys.PasswordKey, password);
            if (connectionLifeTime.HasValue)
            {
                options.Add(DbParametersKeys.ConnectionLifeTimeKey, connectionLifeTime.Value.ToString());
            }
            if (connectionTimeout.HasValue)
            {
                options.Add(DbParametersKeys.ConnectionTimeOutKey, connectionTimeout.Value.ToString());
            }
            if (commandTimeOut.HasValue)
            {
                options.Add(DbParametersKeys.CommandTimeOutKey, commandTimeOut.Value.ToString());
            }
            return(ConnectionStringBuilder.Build(dbEngine, options));
        }
Exemplo n.º 4
0
        public SimpleDbExtractor(ILoggerFactory loggerFactory, DbEngine dbEngine, string host, string database,
                                 bool trustedConnection = true, string username = null, string password = null)
        {
            _logger    = loggerFactory.CreateLogger <SimpleDbExtractor>();
            _dbEngine  = dbEngine;
            _dbManager = DbManagerFactory.Create(dbEngine, loggerFactory);
            IDictionary <string, string> parameters = new Dictionary <string, string>();

            if (!string.IsNullOrEmpty(host))
            {
                parameters[DbParametersKeys.HostKey] = host;
            }
            if (!string.IsNullOrEmpty(database))
            {
                parameters[DbParametersKeys.DatabaseKey] = database;
            }
            parameters[DbParametersKeys.UseTrustedConnectionKey] = trustedConnection.ToString();

            if (username == null && password == null)
            {
                parameters[DbParametersKeys.UseIntegratedSecurityKey] = true.ToString();
            }
            else
            {
                parameters[DbParametersKeys.LoginKey]    = username;
                parameters[DbParametersKeys.PasswordKey] = password;
                parameters[DbParametersKeys.UseIntegratedSecurityKey] = false.ToString();
            }

            _connectionString = ConnectionStringBuilder.Build(dbEngine, parameters);
        }
Exemplo n.º 5
0
        /// <summary>
        ///     Init previously created database (execution of scripts in order from 0 index to Count - 1)
        /// </summary>
        /// <param name="dbManager"> An instance of IDbManager (see DbManagerFactory, or ServiceCollectionExtensions) </param>
        /// <param name="dbEngine"> Db engine type </param>
        /// <param name="options"></param>
        /// <param name="scripts"> List of scripts to init database </param>
        /// <returns> connection string if script execution was successful </returns>
        public static string Init(this IDbManager dbManager, DbEngine dbEngine, IDictionary <string, string> options,
                                  IList <string> scripts)
        {
            string connectionString = ConnectionStringBuilder.Build(dbEngine, options);
            bool   result           = InitImpl(dbManager, connectionString, scripts);

            return(result ? connectionString : null);
        }
Exemplo n.º 6
0
        public static IConnectionString GetMongoConnnectionString(string database)
        {
            var builder = new ConnectionStringBuilder()
                          .SetTemplates(new MongoConnectionStringTemplate())
                          .AddVariables(new ConnectionStringVariables(
                                            EnviromentConnectionStringVariable.Host(EnviromentVariables.MongoHost),
                                            EnviromentConnectionStringVariable.Port(EnviromentVariables.MongoPort),
                                            InlineConnectionStringVariable.DbName(database)));

            return(builder.Build());
        }
        public void ShouldBuildConnectionString()
        {
            //Arrange
            var builder     = new ConnectionStringBuilder(CsPattern);
            var tagProvider = new TestCsTagProvider("foo", "bar");

            //Act
            var cs = builder.Build(tagProvider);

            //Assert
            Assert.Equal("Host=host.com;UserId=foo;Pass=bar", cs);
        }
        private void SetupLogo()
        {
            var connectionString = ConnectionStringBuilder.Build(
                Settings.Default.server,
                Settings.Default.database,
                Settings.Default.user,
                Settings.Default.password);

            var repository = new SettingsRepository(connectionString);

            LogoImage.Source = repository.GetLogo();
        }
        public void Refresh()
        {
            Settings.Default.Reload();

            repository.ConnectionString = ConnectionStringBuilder.Build(
                Settings.Default.server,
                Settings.Default.database,
                Settings.Default.user,
                Settings.Default.password);

            viewModel.Refresh();
        }
Exemplo n.º 10
0
        private string BuildConnectionString(DbEngine dbEngine, bool useIntegratedSecurity, string userName, string password)
        {
            Tuple <string, string>       hostAndDatabase = _hostAndDatabaseOptions[dbEngine];
            IDictionary <string, string> options         = new Dictionary <string, string>();

            options.Add(DbParametersKeys.HostKey, hostAndDatabase.Item1);
            options.Add(DbParametersKeys.DatabaseKey, hostAndDatabase.Item2);
            options.Add(DbParametersKeys.UseIntegratedSecurityKey, useIntegratedSecurity.ToString());
            options.Add(DbParametersKeys.LoginKey, userName);
            options.Add(DbParametersKeys.PasswordKey, password);
            return(ConnectionStringBuilder.Build(dbEngine, options));
        }
Exemplo n.º 11
0
        public static IConnectionString GetSqlConnectionString(string database)
        {
            var builder = new ConnectionStringBuilder()
                          .SetTemplates(new SqlServerConnectionStringTemplate())
                          .AddVariables(new ConnectionStringVariables(
                                            EnviromentConnectionStringVariable.Host(EnviromentVariables.DbHost),
                                            EnviromentConnectionStringVariable.Port(EnviromentVariables.DbPort),
                                            EnviromentConnectionStringVariable.Password(EnviromentVariables.DbPassword),
                                            InlineConnectionStringVariable.User("sa"),
                                            InlineConnectionStringVariable.DbName(database)));

            return(builder.Build());
        }
        public AuditoriumMapPage(Showtime showtime)
        {
            InitializeComponent();

            var connectionString = ConnectionStringBuilder.Build(
                Settings.Default.server,
                Settings.Default.database,
                Settings.Default.user,
                Settings.Default.password);

            var repository = new TicketRepository(connectionString);

            viewModel   = new AuditoriumMapPageViewModel(this, repository, showtime);
            DataContext = viewModel;
        }
        public UserEditorWindow(User user)
        {
            InitializeComponent();

            var connectionString = ConnectionStringBuilder.Build(
                Settings.Default.server,
                Settings.Default.database,
                Settings.Default.user,
                Settings.Default.password);

            var repository = new UserRepository(connectionString);

            viewModel   = new UserEditorWindowViewModel(this, user, repository);
            DataContext = viewModel;
        }
Exemplo n.º 14
0
        public MovieShowtimesPage(Movie movie)
        {
            InitializeComponent();

            var connectionString = ConnectionStringBuilder.Build(
                Settings.Default.server,
                Settings.Default.database,
                Settings.Default.user,
                Settings.Default.password);

            var repository = new ShowtimeRepository(connectionString);

            viewModel   = new MovieShowtimesPageViewModel(this, repository, movie);
            DataContext = viewModel;
        }
Exemplo n.º 15
0
        public AuditoriumEditorWindow(Auditorium auditorium)
        {
            InitializeComponent();

            var connectionString = ConnectionStringBuilder.Build(
                Settings.Default.server,
                Settings.Default.database,
                Settings.Default.user,
                Settings.Default.password);

            var repository = new ShowtimeRepository(connectionString);

            viewModel   = new AuditoriumEditorWindowViewModel(auditorium, repository);
            DataContext = viewModel;
        }
        public LogoSetupPage(Window window)
        {
            this.window = window;
            InitializeComponent();

            var connectionString = ConnectionStringBuilder.Build(
                Settings.Default.server,
                Settings.Default.database,
                Settings.Default.user,
                Settings.Default.password);

            repository = new SettingsRepository(connectionString);

            DataContext = repository.GetLogo();
        }
        public GenreEditorWindow(Genre genre)
        {
            InitializeComponent();

            var connectionString = ConnectionStringBuilder.Build(
                Settings.Default.server,
                Settings.Default.database,
                Settings.Default.user,
                Settings.Default.password);

            var repository = new MovieRepository(connectionString);

            viewModel   = new GenreEditorWindowViewModel(genre, repository);
            DataContext = viewModel;
        }
Exemplo n.º 18
0
        /// <summary>
        ///     Creates Database for specified dbEngine and init it with scripts in order from index 0 to Count - 1
        /// </summary>
        /// <param name="dbManager"> An instance of IDbManager (see DbManagerFactory, or ServiceCollectionExtensions) </param>
        /// <param name="dbEngine"> Db engine type </param>
        /// <param name="options"> dictionary of options to build connection string (see DbParametersKey for Key values) </param>
        /// <param name="scripts"> a lists of file with sql scripts to init created database </param>
        /// <returns>
        ///     Connection string of created database
        /// </returns>
        public static string Create(this IDbManager dbManager, DbEngine dbEngine, IDictionary <string, string> options,
                                    IList <string> scripts)
        {
            if (dbManager == null || scripts.Any(s => !File.Exists(Path.GetFullPath(s))))
            {
                return(null);
            }
            string connectionString = ConnectionStringBuilder.Build(dbEngine, options);
            bool   result           = dbManager.CreateDatabase(connectionString, true);

            if (!result)
            {
                return(null);
            }
            return(dbManager.Init(dbEngine, options, scripts));
        }
        public ShowtimeEditorWindow(Showtime showtime)
        {
            InitializeComponent();

            var connectionString = ConnectionStringBuilder.Build(
                Settings.Default.server,
                Settings.Default.database,
                Settings.Default.user,
                Settings.Default.password);

            var movieRepository    = new MovieRepository(connectionString);
            var showtimeRepository = new ShowtimeRepository(connectionString);

            viewModel   = new ShowtimeEditorWindowViewModel(this, showtime, movieRepository, showtimeRepository);
            DataContext = viewModel;
        }
        public ShowtimeListPage(MainWindow window)
        {
            this.window = window;
            InitializeComponent();

            var connectionString = ConnectionStringBuilder.Build(
                Settings.Default.server,
                Settings.Default.database,
                Settings.Default.user,
                Settings.Default.password);

            var repository = new ShowtimeRepository(connectionString);

            viewModel   = new ShowtimeListPageViewModel(this, repository);
            DataContext = viewModel;
        }
Exemplo n.º 21
0
        public CatalogPage()
        {
            InitializeComponent();
            SetDefaults();

            var connectionString = ConnectionStringBuilder.Build(
                Settings.Default.server,
                Settings.Default.database,
                Settings.Default.user,
                Settings.Default.password);

            repository = new MovieRepository(connectionString);
            viewModel  = new CatalogPageViewModel(this, repository);

            DataContext = viewModel;
        }
Exemplo n.º 22
0
        /// <summary>
        ///     Init previously created database (execution of scripts in order from 0 index to Count - 1)
        /// </summary>
        /// <param name="dbManager"> An instance of IDbManager (see DbManagerFactory, or ServiceCollectionExtensions) </param>
        /// <param name="dbEngine"> Db engine type </param>
        /// <param name="host"> Database engine hostname i.e. localhost </param>
        /// <param name="database"> Creating database name </param>
        /// <param name="integratedSecurity"> Use built-in system authentication (typically Win authentication for SQL Server) </param>
        /// <param name="user"> Username if integrated security is not used </param>
        /// <param name="password"> User password </param>
        /// <param name="scripts"> List of scripts to init database </param>
        /// <returns></returns>
        public static string Init(this IDbManager dbManager, DbEngine dbEngine,
                                  string host, string database, bool integratedSecurity, string user, string password,
                                  IList <string> scripts)
        {
            IDictionary <string, string> options = new Dictionary <string, string>()
            {
                { DbParametersKeys.HostKey, host },
                { DbParametersKeys.DatabaseKey, database },
                { DbParametersKeys.UseIntegratedSecurityKey, integratedSecurity.ToString() },
                { DbParametersKeys.LoginKey, user },
                { DbParametersKeys.PasswordKey, password }
            };
            string connectionString = ConnectionStringBuilder.Build(dbEngine, options);
            bool   result           = InitImpl(dbManager, connectionString, scripts);

            return(result ? connectionString : null);
        }
Exemplo n.º 23
0
        public CheckoutPage(Showtime showtime, List <AuditoriumSeat> seats)
        {
            InitializeComponent();

            var connectionString = ConnectionStringBuilder.Build(
                Settings.Default.server,
                Settings.Default.database,
                Settings.Default.user,
                Settings.Default.password);

            var repository = new TicketRepository(connectionString);

            viewModel   = new CheckoutPageViewModel(this, repository, showtime, seats);
            DataContext = viewModel;

            SetUpAnimations();
        }
        private void CheckConnectionWorkerOnDoWork(object sender, DoWorkEventArgs doWorkEventArgs)
        {
            var connectionString = ConnectionStringBuilder.Build(Server, Database, User, Password);

            var executor = new CommandExecutor("dbo.CurrentRole", connectionString);
            var result   = executor.ExecuteCommand();

            view.Dispatcher.Invoke(() =>
            {
                view.IndicateConnectingFinished();

                var exception = result as Exception;
                if (exception != null)
                {
                    MessageBox.Show(exception.Message);
                    return;
                }

                try
                {
                    var userTypeId = (result as DataSet).Tables[0].Rows[0].ItemArray[0].ToInt();
                    Settings.Default.currentRole = (UserType)(userTypeId - 1);

                    if (Settings.Default.currentRole == UserType.User)
                    {
                        throw new Exception();
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(Resources.InvalidUserMessageText);
                    return;
                }

                Settings.Default.server   = Server;
                Settings.Default.database = Database;
                Settings.Default.user     = User;
                Settings.Default.password = Password;
                Settings.Default.Save();

                view.IndicateSuccess();
            });
        }
        public void ShouldThrowIfPatternsNotFound()
        {
            //Arrange
            var builder     = new ConnectionStringBuilder(CsPattern);
            var tagProvider = new NullCsTagProvider();

            //Act
            ConnectionStringTagsNotFoundException caught = null;

            try
            {
                builder.Build(tagProvider);
            }
            catch (ConnectionStringTagsNotFoundException exception)
            {
                caught = exception;
            }

            //Assert
            Assert.NotNull(caught);
            Assert.Equal(new [] { "User", "Password" }, caught.AbsentTags);
        }
Exemplo n.º 26
0
        public void TestInit(DbEngine dbEngine, bool integratedSecurity, string userName, string password)
        {
            IDbManager                   dbManager   = DbManagerFactory.Create(dbEngine, _loggerFactory);
            Tuple <string, string>       hostAndName = _hostAndDatabaseOptions[dbEngine];
            IDictionary <string, string> options     = new Dictionary <string, string>()
            {
                { DbParametersKeys.HostKey, hostAndName.Item1 },
                { DbParametersKeys.DatabaseKey, hostAndName.Item2 },
                { DbParametersKeys.UseIntegratedSecurityKey, integratedSecurity.ToString() },
                { DbParametersKeys.LoginKey, userName },
                { DbParametersKeys.PasswordKey, password }
            };

            string connectionString = ConnectionStringBuilder.Build(dbEngine, options);
            bool   result           = dbManager.CreateDatabase(connectionString, true);

            Assert.True(result);
            result = dbManager.Init(connectionString, _scripts);
            Assert.True(result);
            result = dbManager.DropDatabase(connectionString);
            Assert.True(result);
        }
        private void ReportViewer_Load(object sender, EventArgs e)
        {
            if (isReportViewerLoaded)
            {
                return;
            }

            var reportDataSource1 = new ReportDataSource();
            var dataset           = new SoldTickets();

            dataset.BeginInit();

            reportDataSource1.Name  = "SoldTicketsDataSet";
            reportDataSource1.Value = dataset.BrowseTickets;
            _reportViewer.LocalReport.DataSources.Add(reportDataSource1);
            _reportViewer.LocalReport.ReportEmbeddedResource = "Administration.Report.SoldTicketsReport.rdlc";

            dataset.EndInit();

            var connectionString = ConnectionStringBuilder.Build(
                Settings.Default.server,
                Settings.Default.database,
                Settings.Default.user,
                Settings.Default.password);
            var connection = new SqlConnection(connectionString);
            var adapter    = new BrowseTicketsTableAdapter {
                ClearBeforeFill = true, Connection = connection
            };

            adapter.Fill(dataset.BrowseTickets);

            _reportViewer.SetDisplayMode(DisplayMode.PrintLayout);
            _reportViewer.RefreshReport();


            isReportViewerLoaded = true;
        }
        public void TryConnect()
        {
            var connectWorker = new BackgroundWorker();

            connectWorker.DoWork += (sender, args) =>
            {
                view.Dispatcher.Invoke(() => { view.IndicateProgress(); });

                string connectionString;
                if (isTrustedConnection)
                {
                    connectionString = ConnectionStringBuilder.Build(Server, "master");
                }
                else
                {
                    connectionString = ConnectionStringBuilder.Build(Server, "master", User, Password);
                }

                var executor = new CommandExecutor("SELECT GETDATE()", connectionString, false);

                try
                {
                    executor.ExecuteCommand().ThrowIfException();
                    view.Dispatcher.Invoke(() => { view.IndicateSuccess(); });
                    IsConnected = true;
                    UpdateDatabasesList(connectionString);
                }
                catch (Exception e)
                {
                    view.Dispatcher.Invoke(() => { view.IndicateFail(); });
                    IsConnected = false;
                }
            };

            connectWorker.RunWorkerAsync();
        }
Exemplo n.º 29
0
        public void OneTimeSetup()
        {
            var config = new Configuration();

            config.WorkingDirectory = GetTestDirectory();
            Configuration.ApplicationConfiguration = config;

            Container = new UnityContainer();
            Container.RegisterType <IMainWindowViewModel, MainWindowViewModel>();
            Container.RegisterType <IHomeDocumentViewModel, HomeDocumentViewModel>();
            Container.RegisterType <IAuthorPaneViewModel, AuthorPaneViewModel>();
            Container.RegisterType <ITagPaneViewModel, TagPaneViewModel>();
            Container.RegisterType <IInformationPaneViewModel, InformationPaneViewModel>();
            Container.RegisterSingleton <ILibrary, Library>();
            Container.RegisterType <ITagManager, TagManager>();
            Container.RegisterType <IAuthorManager, AuthorManager>();
            Container.RegisterType <IProgressManager, ProgressManager>();
            Container.RegisterType <ITaskManager, TaskManager>();
            Container.RegisterType <IBookExporting, BookExporting>();
            Container.RegisterType <IBookImporting, BookImporting>();
            Container.RegisterType <IBookRemoving, BookRemoving>();
            Container.RegisterType <IByteSizeCalculating, ByteSizeCalculating>();
            Container.RegisterType <ILibraryInitializing, LibraryInitializing>();
            Container.RegisterType <IImageTagAdding, ImageTagAdding>();
            Container.RegisterType <IImageTagRemoving, ImageTagRemoving>();
            Container.RegisterType <ITagRemoving, TagRemoving>();
            Container.RegisterType <ILibraryImporting, LibraryImporting>();
            Container.RegisterType <IPageRemoving, PageRemoving>();
            Container.RegisterType <IPageScrapping, PageScrapping>();
            Container.RegisterType <IBookThumbnailRemaking, BookThumbnailRemaking>();
            Container.RegisterType <IPageThumbnailRemaking, PageThumbnailRemaking>();
            Container.RegisterType <ILibraryLoading, LibraryLoading>();
            Container.RegisterType <IPageOrderUpdating, PageOrderUpdating>();
            Container.RegisterType <IRecentOpenedLibraryUpdating, RecentOpenedLibraryUpdating>();
            Container.RegisterType <IDirectoryNameParserManager, DirectoryNameParserManager>();
            Container.RegisterType <ILibraryResetting, LibraryResetting>();
            Container.RegisterType <IBookLoading, BookLoading>();
            Container.RegisterType <IBookTagInitializing, BookTagInitializing>();
            Container.RegisterType <IEncryptionStarting, EncryptionStarting>();
            Container.RegisterType <IUnencryptionStarting, UnencryptionStarting>();
            Container.RegisterType <IBookHashing, BookHashing>();
            Container.RegisterType <IValueConverter, BookSortingToBool>("BookSortingToBool");
            Container.RegisterType <IValueConverter, DisplayTypeToBool>("DisplayTypeToBool");
            Container.RegisterType <IValueConverter, TagSortingToBool>("TagSortingToBool");
            Container.RegisterType <IValueConverter, AuthorSortingToBool>("AuthorSortingToBool");
            Container.RegisterType <IDataAccessManager, DataAccessManager>();
            Container.RegisterInstance <IDaoBuilder>("AppDao", new DaoBuilder(new Connection(ConnectionStringBuilder.Build(Specifications.APP_DB_FILENAME), typeof(SQLiteConnection))));
            Container.RegisterInstance <IDaoBuilder>("WorkingDao", new DaoBuilder(new Connection(Specifications.GenerateConnectionString(Configuration.ApplicationConfiguration.WorkingDirectory), typeof(SQLiteConnection))));
        }
        public void CreateDatabase()
        {
            var createDatabaseWorker = new BackgroundWorker();

            createDatabaseWorker.DoWork += (sender, args) =>
            {
                view.Dispatcher.Invoke(() => { view.ClearLog(); });
                view.Dispatcher.Invoke(() => { view.WriteLog("Соединение..."); });

                string connectionString;
                if (isTrustedConnection)
                {
                    connectionString = ConnectionStringBuilder.Build(Server, "master");
                }
                else
                {
                    connectionString = ConnectionStringBuilder.Build(Server, "master", User, Password);
                }

                try
                {
                    var sql      = string.Format("CREATE DATABASE {0}", Database);
                    var executor = new CommandExecutor(sql, connectionString, false);
                    executor.ExecuteCommand(true).ThrowIfException();
                    view.Dispatcher.Invoke(() => { view.WriteLog("База данных создана: " + Database); });
                }
                catch (Exception e)
                {
                    view.Dispatcher.Invoke(() => { view.ShowError(e.Message); });
                    return;
                }

                if (isTrustedConnection)
                {
                    connectionString = ConnectionStringBuilder.Build(Server, Database);
                }
                else
                {
                    connectionString = ConnectionStringBuilder.Build(Server, Database, User, Password);
                }

                var directory = new DirectoryInfo(currentDirectory + @"..\..\..\Database");
                var files     = directory.EnumerateFiles("?.*.sql");

                foreach (var fileInfo in files)
                {
                    using (var reader = new StreamReader(fileInfo.FullName))
                    {
                        try
                        {
                            var sql = reader.ReadToEnd();

                            var batches = sql.Split(new[] { "GO" }, StringSplitOptions.RemoveEmptyEntries);

                            foreach (var batch in batches)
                            {
                                var executor = new CommandExecutor(batch, connectionString, false);
                                executor.ExecuteCommand(true).ThrowIfException();
                            }

                            view.Dispatcher.Invoke(() => { view.WriteLog("Выполнен скрипт: " + fileInfo.Name); });
                        }
                        catch (Exception e)
                        {
                            view.Dispatcher.Invoke(() => { view.ShowError(e.Message); });
                            return;
                        }
                    }
                }

                view.Dispatcher.Invoke(() =>
                {
                    view.WriteLog("Создание завершено");
                    view.OnDatabaseCreatedMessage();
                });

                if (isTrustedConnection)
                {
                    connectionString = ConnectionStringBuilder.Build(Server, "master");
                }
                else
                {
                    connectionString = ConnectionStringBuilder.Build(Server, "master", User, Password);
                }

                UpdateDatabasesList(connectionString);
            };

            createDatabaseWorker.RunWorkerAsync();
        }