/// <summary> /// SaveClientEvent - save a new record of client event /// </summary> /// <param name="clientEvent">new client event</param> public static void SaveClientEvent(ClientEventModel clientEvent, List <ClientEvents_TrackWorkersModel> clientsEvents_TrackWorkersList) { using (SQLiteConnection cnn = new SQLiteConnection(LoadConnectionString())) { cnn.Open(); string sqlStatement = "INSERT INTO ClientEvents(ClientID, TrackID, Date, WorkersRequested, IsLunchProvided, " + "IsUsingUpperPaddock, IsUsingMiddlePaddock, IsUsingLowerPaddock, WorkerCalloutSent, RequireSafetyDemo, " + "IsDeleted) VALUES( @clientId, @trackId, @date, @workerRequested, @isLunchProvided, @isUsingUpperPaddock, " + "@isUsingMiddlePaddock, @isUsingLowerPaddock, @workerCalloutSent, @requireSafetyDemo, @isDeleted )"; var cmd = new SQLiteCommand(sqlStatement, cnn); cmd.Parameters.AddWithValue("@clientId", clientEvent.ClientID); cmd.Parameters.AddWithValue("@trackId", clientEvent.TrackID); cmd.Parameters.AddWithValue("@date", clientEvent.Date); cmd.Parameters.AddWithValue("@workerRequested", clientEvent.WorkersRequested); cmd.Parameters.AddWithValue("@isLunchProvided", clientEvent.IsLunchProvided); cmd.Parameters.AddWithValue("@isUsingUpperPaddock", clientEvent.IsUsingUpperPaddock); cmd.Parameters.AddWithValue("@isUsingMiddlePaddock", clientEvent.IsUsingMiddlePaddock); cmd.Parameters.AddWithValue("@isUsingLowerPaddock", clientEvent.IsUsingLowerPaddock); cmd.Parameters.AddWithValue("@workerCalloutSent", clientEvent.WorkerCalloutSent); cmd.Parameters.AddWithValue("@requireSafetyDemo", clientEvent.RequireSafetyDemo); // HARD CODED FALSE cmd.Parameters.AddWithValue("@isDeleted", false); try { cmd.Prepare(); cmd.ExecuteNonQuery(); } catch (SQLiteException ex) { throw ex; } try { ClientEvents_TrackWorkersDataAccess.SaveClientEventTrackWorker(clientsEvents_TrackWorkersList, cnn); } finally { cnn.Close(); } } }
/// <summary> /// ClientEventForm - for updating client event record /// </summary> /// <param name="mainForm">main form</param> /// <param name="clientEventModel">client event record</param> public ClientEventForm(MainForm mainForm, ClientEventModel clientEventModel) { _mainForm = mainForm; InitializeComponent(); btnEnter.Click += btnClientEventUpdate_Click; btnEnter.Text = "&Update"; // load client event data to the form _clientEvent = clientEventModel; ClientModel clientModel = ClientDataAccess.LoadClient(_clientEvent.ClientID); TrackModel trackModel = TrackDataAccess.LoadTrack(_clientEvent.TrackID); _clientsEvents_TrackWorkers = ClientEvents_TrackWorkersDataAccess.LoadClientEventTrackWorker(clientEventModel.ClientEventID); txtClientEventId.Text = clientEventModel.ClientEventID.ToString(); txtClientId.Text = clientModel.Name.ToString(); txtTrackID.Text = trackModel.Name.ToString(); txtClientEventDate.Text = _clientEvent.Date.ToString(); txtWorkerRequested.Text = _clientEvent.WorkersRequested.ToString(); if (_clientEvent.IsLunchProvided) { rdoClientEventIsLunchProvided_True.Checked = true; } else { rdoClientEventIsLunchProvided_False.Checked = true; } if (_clientEvent.IsUsingUpperPaddock) { cbClientEventIsUsingUpperPaddock.Checked = true; } else { cbClientEventIsUsingUpperPaddock.Checked = false; } if (_clientEvent.IsUsingMiddlePaddock) { cbClientEventIsUsingMiddlePaddock.Checked = true; } else { cbClientEventIsUsingMiddlePaddock.Checked = false; } if (_clientEvent.IsUsingLowerPaddock) { cbClientEventIsUsingLowerPaddock.Checked = true; } else { cbClientEventIsUsingLowerPaddock.Checked = false; } if (_clientEvent.WorkerCalloutSent) { rdoClientEventWorkerCalloutSent_True.Checked = true; } else { rdoClientEventWorkerCalloutSent_False.Checked = true; } if (_clientEvent.RequireSafetyDemo) { rdoClientEventRequireSafetyDemo_True.Checked = true; } else { rdoClientEventRequireSafetyDemo_False.Checked = true; } if (_clientEvent.IsDeleted) { rdoClientEventIsDeleted_Disabled.Checked = true; } else { rdoClientEventIsDeleted_Enabled.Checked = true; } }
/// <summary> /// SetWebBrowserTable - for creating html mail /// </summary> public void SetWebBrowserTable() { List <ClientEventModel> clientEventModelsList = new List <ClientEventModel>(); allClientEventTrackWorkerIdList = new List <int>(); foreach (int clientEventId in _clientEventIdList) { ClientEventModel clientEvent = ClientEventDataAccess.LoadClientEvent(clientEventId); clientEvent.TrackWorkersId = ClientEvents_TrackWorkersDataAccess.LoadClientEventTrackWorkerIDList(clientEventId); allClientEventTrackWorkerIdList = allClientEventTrackWorkerIdList.Union(clientEvent.TrackWorkersId).ToList(); clientEventModelsList.Add(clientEvent); } stringBodyHTML += "<table style=\"border: 1px solid black;text-align:center;\">"; stringBodyHTML += "<tr>"; stringBodyHTML += "<td></td>"; foreach (ClientEventModel clientEvent in clientEventModelsList) { ClientModel client = ClientDataAccess.LoadClient(clientEvent.ClientID); stringBodyHTML += "<td style=\"border: 1px solid black;\">" + client.Name + "</td>"; } stringBodyHTML += "</tr>"; stringBodyHTML += "<tr>"; stringBodyHTML += "<td></td>"; foreach (ClientEventModel clientEvent in clientEventModelsList) { stringBodyHTML += "<td style=\"border: 1px solid black;\">" + clientEvent.Date + "</td>"; } stringBodyHTML += "</tr>"; stringBodyHTML += "<tr>"; stringBodyHTML += "<td style=\"border: 1px solid black;\"># Workers Needed</td>"; foreach (ClientEventModel clientEvent in clientEventModelsList) { stringBodyHTML += "<td style=\"border: 1px solid black;\">" + clientEvent.WorkersRequested + "</td>"; } stringBodyHTML += "</tr>"; stringBodyHTML += "<tr>"; stringBodyHTML += "<td style=\"border: 1px solid black;\">Track</td>"; foreach (ClientEventModel clientEvent in clientEventModelsList) { TrackModel track = TrackDataAccess.LoadTrack(clientEvent.TrackID); stringBodyHTML += "<td style=\"border: 1px solid black;\">" + track.Name + "</td>"; } stringBodyHTML += "</tr>"; stringBodyHTML += "<tr><td><b>Worker Name</b></td></tr>"; foreach (int trackWorkerId in allClientEventTrackWorkerIdList) { stringBodyHTML += "<tr>"; TrackWorkerModel trackWorker = TrackWorkerDataAccess.LoadTrackWorker(trackWorkerId); stringBodyHTML += "<td style=\"border: 1px solid black;\">" + trackWorker.FullName() + "</td>"; foreach (ClientEventModel clientEvent in clientEventModelsList) { if (clientEvent.TrackWorkersId.Contains(trackWorkerId)) { stringBodyHTML += "<td style=\"border: 1px solid black;\">X</td>"; } else { stringBodyHTML += "<td style=\"border: 1px solid black;\"> </td>"; } } stringBodyHTML += "</tr>"; } stringBodyHTML += "</table>"; //webBrowser.DocumentText += stringTableHTML; }
/// <summary> /// btnClientEventUpdate_Click - click event for update client event record /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnClientEventUpdate_Click(object sender, EventArgs e) { if (ValidateChildren(ValidationConstraints.Enabled)) { bool isValid = true; _clientEvent.ClientEventID = int.Parse(txtClientEventId.Text.Trim()); _clientEvent.WorkersRequested = int.Parse(txtWorkerRequested.Text.Trim()); _clientEvent.Date = txtClientEventDate.Text.Trim(); _clientEvent.IsLunchProvided = rdoClientEventIsLunchProvided_True.Checked ? true : false; _clientEvent.WorkerCalloutSent = rdoClientEventWorkerCalloutSent_True.Checked ? true : false; _clientEvent.RequireSafetyDemo = rdoClientEventRequireSafetyDemo_True.Checked ? true : false; if (cbClientEventIsUsingUpperPaddock.Checked != true && cbClientEventIsUsingMiddlePaddock.Checked != true && cbClientEventIsUsingLowerPaddock.Checked != true) { isValid = false; gbClientEventIsUsingPaddock.Focus(); errorProviderApp.SetError(gbClientEventIsUsingPaddock, "At least one paddock should be selected!"); } else { if (cbClientEventIsUsingUpperPaddock.Checked) { _clientEvent.IsUsingUpperPaddock = true; } else { _clientEvent.IsUsingUpperPaddock = false; } if (cbClientEventIsUsingMiddlePaddock.Checked) { _clientEvent.IsUsingMiddlePaddock = true; } else { _clientEvent.IsUsingMiddlePaddock = false; } if (cbClientEventIsUsingLowerPaddock.Checked) { _clientEvent.IsUsingLowerPaddock = true; } else { _clientEvent.IsUsingLowerPaddock = false; } } if (_clientEvent.ClientID == 0) { isValid = false; btnClientAdd.Focus(); errorProviderApp.SetError(btnClientAdd, "You havent select a client"); } if (_clientEvent.TrackID == 0) { isValid = false; btnTrackAdd.Focus(); errorProviderApp.SetError(btnTrackAdd, "You havent select a track"); } if (_clientsEvents_TrackWorkers.Count == 0) { isValid = false; btnManageTrackWorker.Focus(); errorProviderApp.SetError(btnManageTrackWorker, "You havent select any Track Worker"); } if (isValid) { try { // database insert statement ClientEventDataAccess.UpdateClientEvent(_clientEvent, _clientEvent.ClientEventID); ClientEvents_TrackWorkersDataAccess.RemoveAllClientEventTrackWorker(_clientEvent.ClientEventID); ClientEvents_TrackWorkersDataAccess.SaveClientEventTrackWorker(_clientsEvents_TrackWorkers, _clientEvent.ClientEventID); } catch (Exception ex) { MessageBox.Show("Runtime Error\n" + ex.Message, "Unexpected Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { this.Close(); } } } }