/// <summary> /// Deploys the application asynchronously. /// </summary> /// <param name="state">The state.</param> private void DeployAsynchronous(object state) { var package = state as Package; var context = new RoutedProcessingContext(message => BusyMessage = message, message => BusyMessage = message, message => BusyMessage = message, message => BusyMessage = message); if (package != null) { var tenantId = package.SelectedTenant.EntityId; using (new TenantAdministratorContext(0)) { AppManager.UpgradeApp(tenantId, package.AppVerId, context); } using (new TenantAdministratorContext(tenantId)) { TenantHelper.Invalidate(new EntityRef(tenantId)); } } IsBusy = false; System.Windows.Application.Current.Dispatcher.Invoke(LoadPackages); }
/// <summary> /// Runs the export asynchronously. /// </summary> /// <param name="state">The state.</param> private void ExportAsynchronous(object state) { var context = new RoutedProcessingContext(message => BusyMessage = message, message => BusyMessage = message, message => BusyMessage = message, message => BusyMessage = message); FileInfo info = new FileInfo(( string )state); Format format = Format.Undefined; if (info.Extension.Equals(".db", StringComparison.OrdinalIgnoreCase)) { format = Format.Sqlite; } AppManager.ExportAppPackage(SelectedPackage.AppVerId, ( string )state, format, context); IsBusy = false; }
/// <summary> /// Deploys the application asynchronously. /// </summary> /// <param name="state">The state.</param> private void RepairAsynchronous(object state) { var package = state as Package; var context = new RoutedProcessingContext(message => BusyMessage = message, message => BusyMessage = message, message => BusyMessage = message, message => BusyMessage = message); using (new TenantAdministratorContext(0)) { if (package != null) { AppManager.RepairApp(package.SelectedTenant.EntityId, package.AppVerId, context); } } IsBusy = false; System.Windows.Application.Current.Dispatcher.Invoke(LoadPackages); }
/// <summary> /// Runs the import method asynchronously. /// </summary> /// <param name="state">The state.</param> private void ImportAsynchronous(object state) { var context = new RoutedProcessingContext(message => BusyMessage = message, message => BusyMessage = message, message => BusyMessage = message, message => BusyMessage = message); var packagePaths = ( string[] )state; foreach (string packagePath in packagePaths) { Guid appVerId; using (new TenantAdministratorContext(0)) { appVerId = AppManager.ImportAppPackage(packagePath, context); } Package package = Package.GetPackage(appVerId); if (package != null) { Application.Current.Dispatcher.Invoke(new Action <Package>(AddPackage), package); } } IsBusy = false; }