public static void RebuildAll(string connectionString, int timeoutInSeconds, Action <string> message) { if (string.IsNullOrEmpty(connectionString)) { throw new ArgumentException("Connection string cannot be null or empty string."); } var contextOptions = new DbContextOptionsBuilder <SearchLegalPartyContext>(); contextOptions.UseSqlServer(connectionString); using (var db = new SearchLegalPartyContext(contextOptions.Options)) { //workaround to make sure migrations use the connection string specified in appsettings.json, if specified Environment.SetEnvironmentVariable(SearchLegalPartyContext.SearchLegalPartyContextConnectionStringEnvironmentVariable, connectionString); var rebuildSearchLegalPartyIndexRepository = new RebuildSearchLegalPartyIndexRepository(db, null, new AppCommandTimeoutConfiguration { CommandTimeout = timeoutInSeconds }); message("Disabling change tracking."); rebuildSearchLegalPartyIndexRepository.DisableChangeTracking(); message("Change tracking disabled successfully. Starting rebuild all."); rebuildSearchLegalPartyIndexRepository.RebuildAll(); message("Completed rebuild all. Enabling change tracking."); rebuildSearchLegalPartyIndexRepository.EnableChangeTracking(); message("Change tracking enabled successfully."); } }
public static void Apply(string connectionString, int timeoutInSeconds) { var contextOptions = new DbContextOptionsBuilder <SearchLegalPartyContext>(); contextOptions.UseSqlServer(connectionString); using (var db = new SearchLegalPartyContext(contextOptions.Options)) { if (timeoutInSeconds > 0) { db.Database.SetCommandTimeout(timeoutInSeconds); } db.Database.Migrate(); } }
public static IList <string> GetPendingMigrations(string connectionString) { var contextOptions = new DbContextOptionsBuilder <SearchLegalPartyContext>(); contextOptions.UseSqlServer(connectionString); using (var db = new SearchLegalPartyContext(contextOptions.Options)) { //workaround to make sure migrations use the connection string specified in appsettings.json, if specified Environment.SetEnvironmentVariable(SearchLegalPartyContext.SearchLegalPartyContextConnectionStringEnvironmentVariable, connectionString); var pendingMigrations = db.Database.GetPendingMigrations(); var migrations = pendingMigrations as IList <string> ?? pendingMigrations.ToList(); return(migrations); } }
public static CrawlProgress GetCrawlProgress(string connectionString, int timeoutInSeconds) { if (string.IsNullOrEmpty(connectionString)) { throw new ArgumentException("Connection string cannot be null or empty string."); } var contextOptions = new DbContextOptionsBuilder <SearchLegalPartyContext>(); contextOptions.UseSqlServer(connectionString); using (var db = new SearchLegalPartyContext(contextOptions.Options)) { //workaround to make sure migrations use the connection string specified in appsettings.json, if specified Environment.SetEnvironmentVariable(SearchLegalPartyContext.SearchLegalPartyContextConnectionStringEnvironmentVariable, connectionString); var rebuildSearchLegalPartyIndexRepository = new RebuildSearchLegalPartyIndexRepository(db, null, new AppCommandTimeoutConfiguration { CommandTimeout = timeoutInSeconds }); return(rebuildSearchLegalPartyIndexRepository.CrawlProgress()); } }