public static AssignableContractorList GetAssignedContractors(JobRequest jobrequest) { string storedProcedureName = "usp_getAssignedContractors"; MySqlParameter[] parameterList = new MySqlParameter[] { new MySqlParameter("jobRequestIDIn", jobrequest.JobRequestID) }; MySqlDataReader result = ExecuteReader(storedProcedureName, parameterList); AssignableContractorList assignableContractorList = new AssignableContractorList(); while (result.Read()) { assignableContractorList.Add(new AssignableContractor( result.GetInt32("contractorID"), result.GetString("firstName"), result.GetString("lastName"), result.GetString("address"), result.GetString("state"), new Suburb(result.GetString("suburb")), result.GetString("mobile"), result.GetString("email"), DAL.HasSkillList(new Contractor(result.GetInt32("contractorID"))), true, result.GetTimeSpan("startTime"), result.GetTimeSpan("endTime"), result.GetInt32("status"))); } result.Close(); return(assignableContractorList); }
private void LoadSelectedJobRequest() { AssignableContractorList = DAL.GetAssignedContractors(SelectedJobRequest); foreach (AssignableContractor contractor in DAL.GetAssignableContractors(SelectedJobRequest)) { AssignableContractorList.Add(contractor); } JobRequestSkillList = DAL.GetRequiredSkills(SelectedJobRequest); NonRequiredSkillList = DAL.GetNonRequiredSkills(SelectedJobRequest); EstimatedHours = SelectedJobRequest.EstimatedHours; if (SelectedJobRequest.Status == 0) { MarkedAsReady = false; } else { MarkedAsReady = true; } }
private void SaveButton() { string validateMessage = ValidateData(); // Add and remove assignments if (validateMessage == null) { try { // Get list of assigned from database AssignableContractorList dbAssigned = DAL.GetAssignedContractors(SelectedJobRequest); // Compare list of selected against database, if it is selected but does not exist in database, add assignment foreach (AssignableContractor listContractor in AssignableContractorList) { if (listContractor.Assigned == false) { continue; } bool found = false; foreach (AssignableContractor dbContractor in dbAssigned) { if (listContractor.ContractorID == dbContractor.ContractorID) { found = true; break; } } if (!found) { DAL.InsertContractorAssignment(SelectedJobRequest, listContractor); } } // Compare list of database against selected, if in database but not in selected, delete assignment foreach (AssignableContractor dbContractor in dbAssigned) { bool found = false; foreach (AssignableContractor listContractor in AssignableContractorList) { if (dbContractor.ContractorID == listContractor.ContractorID && listContractor.Assigned == true) { found = true; break; } } if (!found) { DAL.DeleteContractorAssignment(SelectedJobRequest, dbContractor); } } // Update Estimated Hours if ((int)EstimatedHours != SelectedJobRequest.EstimatedHours) { DAL.UpdateRequestHours(new JobRequest( SelectedJobRequest.JobRequestID, SelectedJobRequest.ClientID, SelectedJobRequest.CoordinatorID, SelectedJobRequest.ClientName, SelectedJobRequest.Notes, SelectedJobRequest.TimeRequested, (int)EstimatedHours, SelectedJobRequest.Status, SelectedJobRequest.Address, SelectedJobRequest.Suburb, SelectedJobRequest.Feedback )); } // Update status to ready if (MarkedAsReady == true && SelectedJobRequest.Status == 0) { DAL.MarkRequestReady(SelectedJobRequest); } // Rollback status to unready if (MarkedAsReady == false && SelectedJobRequest.Status == 1) { DAL.UnmarkRequestReady(SelectedJobRequest); } new EventLogger().Log("Updated Job Request in database"); } catch (MySqlException) { MessageBox.Show("Failed to save Job Request", "Saving Failed", MessageBoxButtons.OK); } SelectedJobRequest = null; ResetDataEntry(); UpdateJobRequestList(); DataEntryAllowed = false; JobRequestListEnabled = true; } else { System.Windows.Forms.MessageBox.Show(validateMessage, "Saving Failed", MessageBoxButtons.OK); } }