public async Task <ActionResult> UpgradeDatabase() { LegacyBackgroundMigrator.BeginMigration(new LegacyMigrator()); await Task.FromResult(true); return(RedirectToAction("CheckUpgradeProgress")); }
public ActionResult CheckUpgradeProgress() { if (LegacyBackgroundMigrator.MigrationTask != null) { ViewBag.Refresh = "True"; ViewBag.Messages = LegacyBackgroundMigrator.MessageStack.ToString() .Replace(System.Environment.NewLine, "<br />"); var upgradeSuccess = false; switch (LegacyBackgroundMigrator.MigrationTask.Status) { case TaskStatus.Running: case TaskStatus.WaitingForChildrenToComplete: case TaskStatus.WaitingToRun: case TaskStatus.WaitingForActivation: ViewBag.Status = "Running"; ViewBag.Alert = "alert-info"; break; case TaskStatus.Canceled: ViewBag.Status = "Canceled"; ViewBag.Alert = "alert-error"; ViewBag.Refresh = "False"; LegacyBackgroundMigrator.Reset(); break; case TaskStatus.Faulted: ViewBag.Status = "Failed"; ViewBag.Alert = "alert-error"; ViewBag.Refresh = "False"; LegacyBackgroundMigrator.Reset(); break; case TaskStatus.RanToCompletion: ViewBag.Status = "Completed"; ViewBag.Alert = "alert-success"; ViewBag.Refresh = "False"; upgradeSuccess = true; LegacyBackgroundMigrator.Reset(); break; default: ViewBag.Status = LegacyBackgroundMigrator.MigrationTask.Status.ToString(); ViewBag.Alert = "alert-warning"; break; } if (upgradeSuccess) { var filter = GlobalFilters.Filters.FirstOrDefault(f => f.Instance is DbSetupFilter); if (filter != null) { GlobalFilters.Filters.Remove(filter.Instance); } Database.SetInitializer(new TdIdentityDbInitializer()); Database.SetInitializer(new TdPushNotificationDbInitializer()); Startup.ConfigurePushNotifications(); UpdateSearchIndex(); } } return(View()); }