/// <summary> /// Method to update an existing session in the database /// </summary> private void UpdateAvailability() { // Add new user to the database and save changes try { using (var context = new db_sft_2172Entities()) { // Run query and pull matching session from database var availabilityQuery = from availability in context.CoachAvailabilities where availability.CoachAvailabilityID.Equals(this.CoachAvailabilityId) select availability; if (availabilityQuery.Any()) { CoachAvailability foundAvailability = availabilityQuery.FirstOrDefault(); // Update database records if (foundAvailability != null) { foundAvailability.CoachID = this.CurrentAvailability.CoachID; foundAvailability.DayID = this.CurrentAvailability.DayID; foundAvailability.StartTime = this.CurrentAvailability.StartTime; foundAvailability.EndTime = this.CurrentAvailability.EndTime; } // Save changes to database context.SaveChanges(); } else { MessageBox.Show( @"Sorry, a matching session was not found in the database.\nPlease try again or contact an administrator for assistance."); } } } catch (DbUpdateException dbUEx) { MessageBox.Show(dbUEx.InnerException != null ? dbUEx.InnerException.Message : dbUEx.Message); return; } catch (SqlException sqlEx) { MessageBox.Show(sqlEx.InnerException != null ? sqlEx.InnerException.Message : sqlEx.Message); return; } catch (Exception ex) { MessageBox.Show(ex.Message); return; } MessageBox.Show(@"Save completed...Session updated successfully!"); }
/// <summary> /// Event handler to delete the selected Availability record when the Remove button is clicked /// </summary> /// <param name="sender">The parameter is not used.</param> /// <param name="e">The parameter is not used.</param> private void BtnRemove_Click(object sender, EventArgs e) { // Determine which row is selected int selectedAvailabilityId = Convert.ToInt32(this.dataGridViewAvailability.SelectedRows[0].Cells["CoachAvailabilityID"].Value.ToString()); // Confirm whether user truly wants to remove this availability record DialogResult confirmRemove = MessageBox.Show( @"Are you sure you want to remove this record?", @"Confirm delete", MessageBoxButtons.YesNo, MessageBoxIcon.Question); // If yes, remove the record if (confirmRemove.Equals(DialogResult.Yes)) { var availability = new CoachAvailability { CoachAvailabilityID = selectedAvailabilityId }; try { using (var context = new db_sft_2172Entities()) { context.CoachAvailabilities.Attach(availability); context.CoachAvailabilities.Remove(availability); context.SaveChanges(); MessageBox.Show(@"Delete successful!"); this.PopulateAvailabilityGrid(); } } catch (DbUpdateException dbUEx) { MessageBox.Show(dbUEx.InnerException != null ? dbUEx.InnerException.Message : dbUEx.Message); } catch (SqlException sqlEx) { MessageBox.Show(sqlEx.InnerException != null ? sqlEx.InnerException.Message : sqlEx.Message); } catch (Exception ex) { MessageBox.Show(ex.Message); } } }
/// <summary> /// Method to query the database and display data for the desired availability block /// </summary> private void LoadSessionData() { try { using (var context = new db_sft_2172Entities()) { var availabilityQuery = from availability in context.CoachAvailabilities where availability.CoachAvailabilityID.Equals(this.CoachAvailabilityId) select availability; if (availabilityQuery.Any()) { this.CurrentAvailability = availabilityQuery.FirstOrDefault(); } else { MessageBox.Show(@"Sorry, could not load availability data from the database. Please try again later."); return; } } } catch (SqlException sqlEx) { MessageBox.Show(sqlEx.InnerException != null ? sqlEx.InnerException.Message : sqlEx.Message); return; } catch (Exception ex) { MessageBox.Show(ex.Message); return; } // Populate combo boxes with current session data if (this.CurrentAvailability != null) { this.cbxDay.SelectedValue = this.CurrentAvailability.DayID; this.cbxStartTime.SelectedValue = this.CurrentAvailability.StartTime; this.cbxEndTime.SelectedValue = this.CurrentAvailability.EndTime; } }