public override void Execute(object parameter) { var vm = parameter as ExtensionRowViewModel; var window = new BackgroundWorkerWaitWindow("Update Extension", $"Updating the '{vm.PackageMetadata.Title}' extension..."); window.DoWork += delegate { PackageManager.UpdatePackage(vm.Package.Id, false, true); vm.UpdateAvailable = false; }; window.RunWorkerCompleted += delegate(object sender, RunWorkerCompletedEventArgs args) { if (args.Error == null) { ViewModel.RestartApplicationWithConfirm(); } else { Debug.WriteLine(args.Error.ToString()); MessageBox.Show(args.Error.ToString()); throw args.Error; } }; window.ShowDialog(); }
private void UpdateRules(object obj) { var sendToAmazon = false; var viewModel = new AwsSettingsViewModel(RuleApplicationService.RuleApplicationDef); var window = WindowFactory.CreateWindow("Service Settings", new AwsSettingsView(viewModel), false, Strings.OK, Strings.Cancel); window.ButtonClicked += delegate(object sender, WindowButtonClickedEventArgs <AwsSettingsView> args) { if (args.ClickedButtonText == Strings.OK) { _awsServiceInfo.TopEntityName = viewModel.EntityName; _awsServiceInfo.AwsFunctionName = viewModel.AwsFunctionName; _awsServiceInfo.ReturnDefinition = viewModel.ReturnDefinition; sendToAmazon = true; } window.Close(); }; window.Show(); if (sendToAmazon) { var waitWindow = new BackgroundWorkerWaitWindow("Beaming rules...", "Creating temporary rule application file...", true, false, true); waitWindow.DoWork += delegate { InRuleJavaScriptDistributionService.GenerateIndexFile(_awsServiceInfo); var javaScript = InRuleJavaScriptDistributionService.GetJavaScriptRules(RuleApplicationService.RuleApplicationDef); AwsConnection.UpdateLambdaFunction(_awsServiceInfo.AwsFunctionName, javaScript); }; waitWindow.RunWorkerCompleted += delegate(object sender, RunWorkerCompletedEventArgs e) { var error = e.Error; if (error != null) { var text = $"The following error occurred:\n\n{error.Message}"; MessageBoxFactory.Show(text, "Error getting JavaScript", MessageBoxFactoryImage.Warning); } else if (e.Result != null) { var lines = ((string)e.Result).Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries); WindowFactory.ShowLabeledListWindow("Output", "The following information was returned:", lines); } }; waitWindow.ShowDialog(); } }
public void RefreshPackageList(bool showInstalledOnly = false) { var window = new BackgroundWorkerWaitWindow("Loading Extensions", $"Loading extensions from the InRule Extension Exchange service..."); window.DoWork += delegate(object sender, DoWorkEventArgs args) { Debug.WriteLine("In refresh packages Task"); var packages = repository.Repositories.First(x => x.Source == Settings.FeedUrl).GetPackages() .Where(x => x.Tags.Contains("extension")) .ToList() .GroupBy(x => x.Id, (id, packs) => { SemanticVersion latestVersion; latestVersion = packs.Max(v => v.Version); IPackage currentPackage = PackageManager.LocalRepository.FindPackage(id); return(new ExtensionRowViewModel { UpdateAvailable = currentPackage != null && !currentPackage.IsLatestVersion, IsInstalled = currentPackage != null, LatestVersion = latestVersion.ToNormalizedString(), InstalledVersion = currentPackage == null ? "--" : currentPackage.Version.ToNormalizedString(), Package = packs.First(p => p.Id == id) }); }) .ToList() .Where(x => !showInstalledOnly || x.IsInstalled); args.Result = packages; }; window.RunWorkerCompleted += delegate(object sender, RunWorkerCompletedEventArgs args) { Debug.WriteLine("Got packages."); if (args.Error == null) { Extensions.Clear(); Extensions.AddRange((IEnumerable <ExtensionRowViewModel>)args.Result); } else { Debug.WriteLine(args.Error.ToString()); MessageBox.Show(args.Error.ToString()); throw args.Error; } }; window.ShowDialog(); }
public override void Execute(object parameter) { var vm = parameter as ExtensionRowViewModel; if (vm == null) { return; } var window = new BackgroundWorkerWaitWindow("Install Extension", $"Installing the '{vm.PackageMetadata.Title}' extension..."); window.DoWork += delegate { PackageManager.InstallPackage(vm.Package, false, true); }; window.RunWorkerCompleted += delegate(object sender, RunWorkerCompletedEventArgs args) { if (args.Error == null) { vm.IsInstalled = true; if (!ViewModel.Settings.EnabledExtensions.Contains(vm.ExtensionId.ToString())) { ViewModel.Settings.EnabledExtensions.Add(vm.ExtensionId.ToString()); } ViewModel.InvokeSettingsChanged(); ViewModel.RestartApplicationWithConfirm(); } else { Debug.WriteLine(args.Error.ToString()); MessageBox.Show(args.Error.ToString()); throw args.Error; } }; window.ShowDialog(); }
public void Execute() { try { _ruleAppDef = RuleApplicationService.RuleApplicationDef; _excelFilePath = Utility.BrowseForPath(); _sheetName = Utility.GetSheetName(); if (_excelFilePath.Length == 0) { return; } var spreadsheet = new Spreadsheet(); var rows = spreadsheet.ExtractExcelValues(_excelFilePath, _sheetName); var decisionTableDef = new DecisionTableDef(); decisionTableDef.Name = GetDTName(_excelFilePath); RuleApplicationService.Controller.AddDef(decisionTableDef, SelectedItem); // create a wait window that will run on background thread var window = new BackgroundWorkerWaitWindow("Decision Table Import", "Importing..."); // use delegate to load decision table with data window.DoWork += delegate(object sender, DoWorkEventArgs e) { ExecuteImport(decisionTableDef, rows, spreadsheet); }; // use delegate to report errors and close window window.RunWorkerCompleted += delegate(object sender, RunWorkerCompletedEventArgs e) { if (e.Error != null) { MessageBoxFactory.Show("The following error occurred while attempting to import the spreadsheet:\n\n" + e.Error.ToString(), "Import", MessageBoxFactoryImage.Error); } window.Close(); var validations = _ruleAppDef.Validate(); var s = new StringBuilder(); foreach (var validation in validations) { s.AppendLine(validation.ToString()); } if (s.Length > 0) { MessageBoxFactory.Show(s.ToString(), ""); } }; // show the window window.ShowDialog(); } catch (Exception e) { MessageBoxFactory.Show("The following error occurred while attempting to import the spreadsheet:\n\n" + e, "Regimen Import", MessageBoxFactoryImage.Error); } }