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); }
/// <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); }
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)); }
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); }
/// <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); }
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(); }
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)); }
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; }
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; }
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; }
/// <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; }
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; }
/// <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); }
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); }
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(); }
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(); }