public static void CloseCursorIfExists(this WorkspaceConnection ws, NpgsqlCommand cmd) { if (ws.Cursor != null && cmd.Any($"select 1 from pg_cursors where name = '{ws.Cursor}'")) { cmd.Execute($"close \"{ws.Cursor}\""); } }
public static void CleanupWs(this WorkspaceConnection ws, SQLiteConnection localConnection, bool cleanUpCursor = true) { if (ws.CursorTaskCancellationTokenSource != null) { ws.CursorTaskCancellationTokenSource.Cancel(); if (ws.CursorTask.Status == TaskStatus.Running || ws.CursorTask.Status == TaskStatus.WaitingForActivation) { while (!ws.CursorTask.IsCanceled) { } ; } ws.CursorTask.Dispose(); ws.CursorTask = null; ws.CursorTaskCancellationTokenSource.Dispose(); ws.CursorTaskCancellationTokenSource = null; } if (cleanUpCursor && (ws.IsNewTran || ws.Cursor != null)) { using var cmd = ws.Connection.CreateCommand(); CleanUpCursor(ws, cmd); } if (ws.LocalTable != null) { using var cmd = localConnection.CreateCommand(); cmd.Execute($"drop table {ws.LocalTable}"); ws.LocalTable = null; } ws.ErrorOffset = null; }
public SettingsWindow(WorkspaceConnection pConnection) { Connection = pConnection; DataContext = _objViewModel; InitializeComponent(); SetLoading("Getting settings..."); _objViewModel.LocalProjectDirectory = Settings.ProjectPath; _objViewModel.ShotcutExecutable = Settings.ShotcutExecutable; _objViewModel.HostName = Settings.HostName; _objViewModel.Port = Settings.Port; _objViewModel.StorageLocation = Settings.StorageLocation; _objViewModel.BackupLocation = Settings.BackupLocation; Connection.Workspace.GetSettings((r) => { if (r.Status.State == Mitto.IMessaging.ResponseState.Success) { _objViewModel.ServerFinalDirectory = r.FinalDirectory; _objViewModel.ServerLogDirectory = r.LogDirectory; _objViewModel.ServerMeltPath = r.MeltPath; _objViewModel.ServerNewDirectory = r.NewDirectory; _objViewModel.ServerProjectDirectory = r.ProjectDirectory; _objViewModel.Threads = r.Threads; } else { _ = MessageBox.Show($"Failed to get the settings, please try again or contact Nico the almighty"); } EndLoading(); }); }
public ExecuteHandler( WorkspaceConnection ws, SQLiteConnection localConnection, ExecutionMode?mode = null) { _ws = ws; _localConnection = localConnection; _mode = mode ?? Program.Settings.ExecutionMode; }
public static void SendPgError(this WorkspaceConnection ws, PostgresException e) { var message = new Message(e); if (ws.ErrorOffset.HasValue && message.Position != 0) { message.Position -= ws.ErrorOffset.Value; } ws.Proxy.SendAsync($"error-{ws.Id}", message).GetAwaiter().GetResult(); }
public static void CleanUpCursor(this WorkspaceConnection ws, NpgsqlCommand cmd) { if (ws.IsNewTran) { cmd.Execute("end"); } else if (ws.Cursor != null) { CloseCursorIfExists(ws, cmd); } ws.Cursor = null; ws.IsNewTran = false; }
public MainWindow(WorkspaceConnection pConnection) : base() { Connection = pConnection; DataContext = _objViewModel; InitializeComponent(); Connection.ConnectionStatusChanged += Connection_ConnectionStatusChanged; Connection.WorkspaceUpdated += Connection_WorkspaceUpdated; Connection.RefreshRequired += Connection_RefreshRequired; Connection.Start(); StatusChanged += delegate(WindowStatus pStatus, string pMessage) { _objViewModel.SetStatus(pStatus, pMessage); }; Load(); }
public static void SendPgNotice(this WorkspaceConnection ws, PostgresNotice notice) { ws.Proxy.SendAsync($"notice-{ws.Id}", new Message(notice)).GetAwaiter().GetResult(); }