/// <summary> /// Will call SaveIfNeeded when closing the window. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private async void Window_Closing(object sender, CancelEventArgs e) { var ok = await SaveIfNeeded(); if (!ok) { e.Cancel = true; } else { var spreadsheetServiceClient = mySpreadsheetServiceClient; if (spreadsheetServiceClient != null) { spreadsheetServiceClient.CellUpdated -= SpreadsheetServiceClient_CellUpdated; mySpreadsheetServiceClient = null; await spreadsheetServiceClient.LeaveSession(mySpreadsheetName); spreadsheetServiceClient.Dispose(); } } return; }
private async void JoinButton_Click(object sender, RoutedEventArgs e) { var parameters = myParameters; parameters.Password = MainPasswordBox.Password; if (!IsValid(parameters)) { return; } EnableUI(false); SpreadsheetServiceClient spreadsheetServiceClient = null; JoinSessionResponse response = null; string errorMessage; try { spreadsheetServiceClient = new SpreadsheetServiceClient(); await spreadsheetServiceClient.Connect(parameters.Server); response = await spreadsheetServiceClient.JoinSession(parameters.SpreadsheetName, parameters.Password); errorMessage = response.ErrorMessage; } catch (Exception ex) { errorMessage = ex.Message; } if (errorMessage == null) { new MainWindow(spreadsheetServiceClient, response).Show(); Close(); } else { spreadsheetServiceClient.Dispose(); MessageBox.Show(this, "Unable to join the session:\r\n" + errorMessage, "ERROR", MessageBoxButton.OK, MessageBoxImage.Error); EnableUI(true); } return; }
private async void CreateButton_Click(object sender, RoutedEventArgs e) { var parameters = myParameters; parameters.Password = MainPasswordBox.Password; if (!IsValid(parameters)) { return; } EnableUI(false); CreateSessionResponse response; string errorMessage; try { using (var spreadsheetServiceClient = new SpreadsheetServiceClient()) { await spreadsheetServiceClient.Connect(parameters.Server); response = await spreadsheetServiceClient.CreateSession(parameters.SpreadsheetName, parameters.Password); } errorMessage = response.ErrorMessage; } catch (Exception ex) { errorMessage = ex.Message; } if (errorMessage == null) { MessageBox.Show(this, "Session created.", Title, MessageBoxButton.OK, MessageBoxImage.Information); } else { MessageBox.Show(this, "Unable to create a new session:\r\n" + errorMessage, "ERROR", MessageBoxButton.OK, MessageBoxImage.Error); } EnableUI(true); return; }
/// <summary> /// initializes the MainWindow /// </summary> internal MainWindow(SpreadsheetServiceClient spreadsheetServiceClient, JoinSessionResponse joinSessionResponse) { mySpreadsheetServiceClient = spreadsheetServiceClient; spreadsheetServiceClient.CellUpdated += SpreadsheetServiceClient_CellUpdated; InitializeComponent(); myUpdateRowTimer = new Timer(UpdateRow); var viewModel = new ViewModel(this); myViewModel = viewModel; New(); // Create a new spread sheet with the data grid cleared and the name set to 'Untitled'. DataContext = viewModel; myCurrentColumn = MainDataGrid.Columns[0]; myCurrentRow = viewModel.Rows[0]; SetFocusOnCurrentCell(); Dispatcher.BeginInvoke(new Action <JoinSessionResponse>(joinSessionResponse0 => Load(joinSessionResponse0)), joinSessionResponse); }