/// <summary> /// Handle Toggling Edit or Triggering Save, Status Update Button click /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void UpdateSaveStatusButton_Click(object sender, EventArgs e) { BugTrackerDAL.Bug selectedBug = (BugTrackerDAL.Bug)BugListListBox.SelectedItem; if (UpdateSaveStatusButton.Text == "Update Status") //Edit Triggered { if (selectedBug.StatusCodeID == 4) //ie closed{ { DialogResult dialogResult = MessageBox.Show("This bug is already closed, are you sure you want to update it?", "Update Closed Bug?", MessageBoxButtons.YesNo); if (dialogResult == DialogResult.No) { return; } } UpdateCommentsTextBox.Enabled = true; BugNewStatusComboBox.Enabled = true; CancelStatusButton.Enabled = true; UpdateSaveStatusButton.Text = "Save"; BugAppComboBox.Enabled = false; StatusFilterComboBox.Enabled = false; BugListListBox.Enabled = false; } else //Save of Edits Triggered { if (!ValidateBugLogItems()) { MessageBox.Show("Please Select a new Status and create a comment"); return; } //save edit // int StatusCodeID, int UserID, String BugLogDesc, int BugID BugTrackerDAL.Application selectedApp = (BugTrackerDAL.Application)BugAppComboBox.SelectedItem; ListItem NewStatusCode = (ListItem)BugNewStatusComboBox.SelectedItem; ListItem StatusCodeFilter = (ListItem)StatusFilterComboBox.SelectedItem; BugTrackerDAL.Bug SelectedBug = (BugTrackerDAL.Bug)BugListListBox.SelectedItem; DisplayErrorMessage(StatusMsg, BugTrackerDAL.BugLogs.AddNewBugLog(NewStatusCode.Value, LoggedInUser.UserID, UpdateCommentsTextBox.Text, SelectedBug.BugID, out StatusMsg) ); UpdateCommentsTextBox.Enabled = false; UpdateCommentsTextBox.Text = ""; BugNewStatusComboBox.Enabled = false; BugNewStatusComboBox.SelectedIndex = -1; //??? CancelStatusButton.Enabled = false; UpdateSaveStatusButton.Text = "Update Status"; MessageBox.Show("Status of Bug Updated!"); RefilterBugCodeList(selectedApp, StatusCodeFilter.Value, true); BugListListBox_SelectedIndexChanged(this, null); BugAppComboBox.Enabled = true; StatusFilterComboBox.Enabled = true; BugListListBox.Enabled = true; } }
/// <summary> /// Save edits/new bug description and related elements /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void SaveEditBugsButton_Click(object sender, EventArgs e) { if (SaveEditBugsButton.Text == "Save") { if (!ValidateBugFormItems()) { MessageBox.Show("Please fill out all items"); return; } if (BugIDTextBox.Text == "") //New Record! { BugTrackerDAL.Application app = (BugTrackerDAL.Application)BugAppComboBox.SelectedItem; BugTrackerDAL.Bug bug = (BugTrackerDAL.Bug)BugListListBox.SelectedItem; DisplayErrorMessage(StatusMsg, BugTrackerDAL.Bugs.AddNewBug(app.AppID, LoggedInUser.UserID, BugDescriptionTextBox.Text, BugDetailsTextBox.Text, BugRepStepsTextBox.Text, out StatusMsg) ); } else //Existing Record update! { BugTrackerDAL.Bug bug = new BugTrackerDAL.Bug(); BugTrackerDAL.Bug curBug = (BugTrackerDAL.Bug)BugListListBox.SelectedItem; if (curBug.StatusCodeID == 4) { DialogResult dialogResult = MessageBox.Show("This bug is already closed, are you sure you want to update it?", "Update Closed Bug?", MessageBoxButtons.YesNo); if (dialogResult == DialogResult.No) { return; } } DisplayErrorMessage(StatusMsg, bug.UpdateBug(curBug.BugID, curBug.BugSignOff, curBug.BugDate, BugDescriptionTextBox.Text, BugDetailsTextBox.Text, BugRepStepsTextBox.Text, curBug.FixDate, out StatusMsg) ); } ListItem statuscode = (ListItem)StatusFilterComboBox.SelectedItem; RefilterBugCodeList((BugTrackerDAL.Application)BugAppComboBox.SelectedItem, statuscode.Value, true); DisableBugEditFormItems(); } else if (AppSaveEditButton.Text == "Edit") { EnableBugEditFormItems(); } }
/// <summary> /// Called by BugAppComboBox on SelectedIndex Changed /// </summary> /// <param name="app">Application Class Object</param> /// <param name="status">statuscodeID int val</param> /// <param name="Refresh">bool whether to refresh full list of bugs</param> private void RefilterBugCodeList(BugTrackerDAL.Application app, int status, bool Refresh) { //just populating the status code combobox will change selected item. //if so, don't bother to try to update bug list if (app != null) { List <BugTrackerDAL.Bug> filteredbugs = BugTrackerDAL.Bugs.GetFilteredList(app, status, Refresh); BugListListBox.DataSource = filteredbugs; BugListListBox.DisplayMember = "BugDesc"; BugListListBox.SelectedIndex = -1; } }
/// <summary> /// updates the form elements with the fields from /// the selected record /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ApplicationListBox_SelectedIndexChanged(object sender, EventArgs e) { if (ApplicationListBox.SelectedIndex == -1) { return; } BugTrackerDAL.Application selectedApp = (BugTrackerDAL.Application)ApplicationListBox.SelectedItem; AppIDTextBox.Text = selectedApp.AppID.ToString(); ApplicationNameTextBox.Text = selectedApp.AppName; AppVersionTextBox.Text = selectedApp.AppVersion; AppDescTextBox.Text = selectedApp.AppDesc; }
/// <summary> /// Handles Delete Button click on form and removes record /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void DeleteButton_Click(object sender, EventArgs e) { BugTrackerDAL.Application selectedApp = (BugTrackerDAL.Application)ApplicationListBox.SelectedItem; if (BugTrackerDAL.Bugs.GetFilteredList(selectedApp, 0, true).Count > 0) { MessageBox.Show("Cannot delete app, there are bugs already created for it."); return; } DialogResult dialogResult = MessageBox.Show("Delete Record?", "Are you sure you want to delete this record?", MessageBoxButtons.YesNo); if (dialogResult == DialogResult.Yes) { DisplayErrorMessage(StatusMsg, BugTrackerDAL.Applications.DeleteApp(selectedApp.AppID, out StatusMsg) ); LoadApplicationsList(ApplicationListBox); LoadApplicationsList(BugAppComboBox); } }