private SqlEditorViewModel(IMySqlExecutor mySqlExecutor, IStatusBar statusBar, IDatabaseProvider databaseProvider, ITaskRunner taskRunner, INativeTextDocument sql) { Code = sql; ExecuteSql = new DelegateCommand(() => { taskRunner.ScheduleTask("Executing query", async() => { statusBar.PublishNotification(new PlainNotification(NotificationType.Info, "Executing query")); try { await mySqlExecutor.ExecuteSql(Code.ToString()); statusBar.PublishNotification(new PlainNotification(NotificationType.Success, "Query executed")); } catch (Exception e) { statusBar.PublishNotification(new PlainNotification(NotificationType.Error, "Failure during query execution")); Console.WriteLine(e); } }); }, () => databaseProvider.IsConnected); IsLoading = false; Save = new DelegateCommand(() => { ExecuteSql.Execute(null); }); }
public TextDocumentViewModel(IWindowManager windowManager, INativeTextDocument nativeTextDocument) { Extension = "txt"; Title = "New file"; document = nativeTextDocument; SaveCommand = new AsyncAutoCommand(async() => { var path = await windowManager.ShowSaveFileDialog($"{Extension} file|{Extension}|All files|*"); if (path != null) { await File.WriteAllTextAsync(path, document.ToString()); } }); }
public SqlEditorViewModel(IMySqlExecutor mySqlExecutor, IStatusBar statusBar, ITaskRunner taskRunner, INativeTextDocument sql) { Code = sql; ExecuteSql = new DelegateCommand(() => { taskRunner.ScheduleTask("Executing query", async() => { statusBar.PublishNotification(new PlainNotification(NotificationType.Info, "Executing query")); await mySqlExecutor.ExecuteSql(Code.ToString()); statusBar.PublishNotification(new PlainNotification(NotificationType.Success, "Query executed")); }); }); Save = new DelegateCommand(() => { ExecuteSql.Execute(null); }); }
public TextDocumentViewModel(IWindowManager windowManager, ITaskRunner taskRunner, IStatusBar statusBar, IMySqlExecutor mySqlExecutor, IDatabaseProvider databaseProvider, INativeTextDocument nativeTextDocument, IQueryParserService queryParserService, ISessionService sessionService, IMessageBoxService messageBoxService) { Extension = "txt"; Title = "New file"; this.statusBar = statusBar; document = nativeTextDocument; SaveCommand = new AsyncAutoCommand(async() => { var path = await windowManager.ShowSaveFileDialog($"{Extension} file|{Extension}|All files|*"); if (path != null) { await File.WriteAllTextAsync(path, document.ToString()); } }); ExecuteSqlSaveSession = new DelegateCommand(() => { taskRunner.ScheduleTask("Executing query", () => WrapStatusbar(async() => { var query = Document.ToString(); IList <ISolutionItem>?solutionItems = null; IList <string>?errors = null; if (inspectQuery && sessionService.IsOpened && !sessionService.IsPaused) { (solutionItems, errors) = await queryParserService.GenerateItemsForQuery(query); } await mySqlExecutor.ExecuteSql(query); if (solutionItems != null) { foreach (var item in solutionItems) { await sessionService.UpdateQuery(item); } if (errors !.Count > 0) { await messageBoxService.ShowDialog(new MessageBoxFactory <bool>() .SetTitle("Apply query") .SetMainInstruction("Some queries couldn't be transformed into session items") .SetContent("Details:\n\n" + string.Join("\n", errors.Select(s => " - " + s))) .WithOkButton(true) .Build()); } } })); }, () => databaseProvider.IsConnected); ExecuteSql = new DelegateCommand(() => { taskRunner.ScheduleTask("Executing query", () => WrapStatusbar(() => mySqlExecutor.ExecuteSql(Document.ToString()))); }, () => databaseProvider.IsConnected); }