/// <summary> /// This function is the callback used to execute the command when the menu item is clicked. /// See the constructor to see how the menu item is associated with this function using /// OleMenuCommandService service and MenuCommand class. /// </summary> /// <param name="sender">Event sender.</param> /// <param name="e">Event args.</param> private void MenuItemCallback(object senderObj, EventArgs args) { if (senderObj is OleMenuCommand && args is OleMenuCmdEventArgs) { var solutionProcessor = new SolutionProcessor(_ide); var projects = solutionProcessor.GetAllSolutionProjects(); var messageBoxService = new MessageBoxService(); var dbService = new MsSqlServerService(); var scaffoldingVM = new ScaffoldingWizardViewModel( messageBoxService, dbService, dbService, new ScaffoldingService(), projects); var scaffoldingWindow = new ScaffoldingWizard(scaffoldingVM); messageBoxService.ShowInfoMessageFunc = msg => showMessageBox(scaffoldingWindow, msg, MessageBoxImage.Information); messageBoxService.ShowErrorMessageFunc = msg => showMessageBox(scaffoldingWindow, msg, MessageBoxImage.Error); messageBoxService.ShowWarningMessageFunc = msg => showMessageBox(scaffoldingWindow, msg, MessageBoxImage.Warning); scaffoldingWindow.ShowModal(); } }
private async Task showMessageBox(ScaffoldingWizard owner, string text, MessageBoxImage icon) { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); MessageBox.Show(owner, text, Strings.DatabaseScaffoldingMenuItemTitle, MessageBoxButton.OK, icon); }