private async void DeleteServer(object param) { var server = param as Server; if (server == null) { return; } var result = Dialog.ShowMessage(new MessageBoxSettings { Title = "Delete Server", Text = $"Are you sure you want to delete {server.Name}?", MessageType = MessageType.Question, MessageBoxButtons = MessageBoxButtons.OkCancel }); if (result.Equals(MessageBoxResult.Cancel)) { return; } var serverViewModel = SelectedServerViewModels.FirstOrDefault(s => s.Server.Name.Equals(server.Name)); if (serverViewModel != null) { Close(serverViewModel); } try { IsLoading = true; await serverService.DeleteServer(server); Servers.Remove(server); } catch (Exception ex) { ShowMessage(new Message { MessageType = MessageType.Error, Text = ex.Message }); } finally { IsLoading = false; } }
public void Close(object param) { var server = param as ServerViewModel; if (server != null) { server.Dispose(); IDisposable subscription; if (serverObservableSubscriptions.TryGetValue(server.Server.Name, out subscription)) { subscription.Dispose(); } serverObservableSubscriptions.Remove(server.Server.Name); SelectedServerViewModels.Remove(server); } }