public async Task <IActionResult> Index(DatabaseDetails database) { if (!string.IsNullOrWhiteSpace(database.Server)) { // Connect to Azure SQL with AAD password auth SqlConnectionStringBuilder csb = GetConnectionStringBuilder(database); try { database.SuccessfulConnection = await IsAzureSqlAsync(csb.ConnectionString); } catch (Exception e) { database.ErrorMessage = e.Message; Exception inner = e.InnerException; while (!(inner is null)) { database.ErrorMessage = inner.Message; inner = inner.InnerException; } ; } } return(View(database)); }
private void ShowDatabaseDetails() { var window = new DatabaseDetails(); window.Show(); CloseAction(); }
private static SqlConnectionStringBuilder GetConnectionStringBuilder(DatabaseDetails database) => new SqlConnectionStringBuilder { DataSource = database.Port == 0 ? database.Server : $"{database.Server},{database.Port}", InitialCatalog = database.DatabaseName, UserID = database.UserName, Password = database.Password, Authentication = SqlAuthenticationMethod.ActiveDirectoryPassword, IntegratedSecurity = false, Encrypt = true, TrustServerCertificate = false, ConnectRetryCount = 5, ConnectTimeout = 30 };
private static void Import <T>(IXmlRepository xmlRepository, DatabaseDetails databaseConnectionDetails, Logger logger) where T : IStackOverflowEntity, new() { IDatabaseRepository <T> repository = new DatabaseRepositoryStrategy <T>(databaseConnectionDetails).GetDatabaseRepository(); T entity = new T(); IDataImportService <T> dataImportService = new DataImportServiceLogger <T>(logger, new DataImportService <T>(repository, xmlRepository, entity)); dataImportService.ImportData(); }
public SqlServerRepository(DatabaseDetails dbConnectionDetails) { this.dbConnectionDetails = dbConnectionDetails; this.connectionString = String.Format("Server={0};Database={1};User Id={2};Password={3};", dbConnectionDetails.Server, dbConnectionDetails.DatabaseName, dbConnectionDetails.Username, dbConnectionDetails.Password); this.masterConnectionString = String.Format("Server={0};Database={1};User Id={2};Password={3};", dbConnectionDetails.Server, "master", dbConnectionDetails.Username, dbConnectionDetails.Password); }
static void Main(string[] args) { string xmlSourceFolderPathIncludingLastSlash = ConfigurationManager.AppSettings["XmlSourceFolderPathIncludingLastSlash"]; IXmlRepository xmlRepository = new XmlRepository(xmlSourceFolderPathIncludingLastSlash); DatabaseDetails databaseDetails = GetDatabaseDetailsFromAppConfig(); Logger logger = new Logger(); ImportStackOverflowEntities(xmlRepository, databaseDetails, logger); logger.Log("All Done"); }
private static DatabaseDetails GetDatabaseDetailsFromAppConfig() { DatabaseDetails databaseConnectionDetails = new DatabaseDetails(); databaseConnectionDetails.Type = (DatabaseType)Enum.Parse(typeof(DatabaseType), ConfigurationManager.AppSettings["DatabaseType"]); databaseConnectionDetails.Server = ConfigurationManager.AppSettings["DatabaseServerName"]; databaseConnectionDetails.DatabaseName = ConfigurationManager.AppSettings["DatabaseName"]; databaseConnectionDetails.Username = ConfigurationManager.AppSettings["DatabaseUsername"]; databaseConnectionDetails.Password = ConfigurationManager.AppSettings["DatabasePassword"]; return(databaseConnectionDetails); }
private static int RunPostScriptIfNotInDebugMode(DatabaseDetails dbDetails) { #if DEBUG Logger.LogMessage("In DEBUG mode, not executing POST creation script"); #else Logger.LogMessage("Not in DEBUG mode, about to execute POST creation script"); var postCreator = DeployChanges.To .SqlDatabase(dbDetails.ConnectionString) .WithScriptsFromFileSystem(dbDetails.PostScriptsDirectory) .JournalTo(new NullJournal()) .LogToConsole() .Build(); var postResult = postCreator.PerformUpgrade(); if (!postResult.Successful) { Logger.LogMessage(postResult.Error.Message, true); return(-1); } #endif return(0); }
public void Update(DatabaseDetails databaseDetails) => _dbContext.Update(databaseDetails);
public void Add(DatabaseDetails databaseDetails) => _dbContext.Add(databaseDetails);
private static void ImportStackOverflowEntities(IXmlRepository xmlRepository, DatabaseDetails databaseDetails, Logger logger) { Import <TagEntity>(xmlRepository, databaseDetails, logger); Import <UserEntity>(xmlRepository, databaseDetails, logger); Import <BadgeEntity>(xmlRepository, databaseDetails, logger); Import <VoteEntity>(xmlRepository, databaseDetails, logger); Import <CommentEntity>(xmlRepository, databaseDetails, logger); Import <PostEntity>(xmlRepository, databaseDetails, logger); }
public DatabaseRepositoryStrategy(DatabaseDetails databaseDetails) { this.databaseDetails = databaseDetails; GetSupportedDatabaseTypeRepositories(); }