/// <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!");
        }
Exemple #2
0
        /// <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;
            }
        }