/// <summary> /// TrackWorkerForm constructor from main form, we pass mainform since we need to refresh datagridview on main form and this is one of the way /// and we pass track worker object that we get from datagridview. /// FOR UPDATE OF TRACKWORKER /// </summary> /// <param name="mainForm">main form</param> /// <param name="trackWorker">track worker from datagridview</param> public TrackWorkerForm(MainForm mainForm, TrackWorkerModel trackWorker) { InitializeComponent(); _mainForm = mainForm; // Wire btnEnter click event into btnUpdate_Click event btnEnter.Click += btnUpdate_Click; // Moving TrackWorker data into the form txtTrackWorkerId.Text = trackWorker.TrackWorkerID.ToString(); txtTrackWorkerFirstName.Text = trackWorker.FirstName; txtTrackWorkerLastName.Text = trackWorker.LastName; txtTrackWorkerCell.Text = trackWorker.Cell; txtTrackWorkerEmail.Text = trackWorker.Email; if (trackWorker.IsCapableCaptain) { rdoIsCapableCaptain_True.Checked = true; } else { rdoIsCapableCaptain_False.Checked = true; } if (trackWorker.IsDeleted) { rdoIsDeleted_Disabled.Checked = true; } else { rdoIsDeleted_Enabled.Checked = true; } // Change the btnEnter text into Update btnEnter.Text = "&Update"; }
/// <summary> /// btnCreate_Click - button click event for inserting new track worker into database /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnCreate_Click(object sender, EventArgs e) { bool bFirstNameValid = ValidatingFirstNameTextbox(); bool bLastNameValid = ValidatingLastNameTextbox(); bool bCellValid = ValidatingCellTextbox(); bool bEmailValid = ValidatingEmailTextbox(); if (bFirstNameValid && bLastNameValid && bCellValid && bEmailValid) { TrackWorkerModel trackWorker = new TrackWorkerModel(); trackWorker.FirstName = txtTrackWorkerFirstName.Text.Trim(); trackWorker.LastName = txtTrackWorkerLastName.Text.Trim(); trackWorker.Cell = txtTrackWorkerCell.Text.Trim(); trackWorker.Email = txtTrackWorkerEmail.Text.Trim(); trackWorker.IsCapableCaptain = rdoIsCapableCaptain_True.Checked ? true : false; try { TrackWorkerDataAccess.SaveTrackWorker(trackWorker); } catch (Exception ex) { MessageBox.Show("Runtime Error\n" + ex.Message, "Unexpected Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { this.Close(); } } }
/// <summary> /// SaveTrackWorker - save a new track worker record /// </summary> /// <param name="trackWorker">new track worker</param> public static void SaveTrackWorker(TrackWorkerModel trackWorker) { using (SQLiteConnection cnn = new SQLiteConnection(LoadConnectionString())) { cnn.Open(); string sqlStatement = "INSERT INTO TrackWorkers(FirstName, LastName, Cell, Email, IsCapableCaptain, IsDeleted) VALUES(@firstName, @lastName, @cell, @email, @isCapableCaptain, @isDeleted)"; var cmd = new SQLiteCommand(sqlStatement, cnn); cmd.Parameters.AddWithValue("@firstName", trackWorker.FirstName); cmd.Parameters.AddWithValue("@lastName", trackWorker.LastName); cmd.Parameters.AddWithValue("@cell", trackWorker.Cell); cmd.Parameters.AddWithValue("@email", trackWorker.Email); cmd.Parameters.AddWithValue("@isCapableCaptain", trackWorker.IsCapableCaptain); // HARD CODED FALSE cmd.Parameters.AddWithValue("@isDeleted", false); try { cmd.Prepare(); cmd.ExecuteNonQuery(); } catch (SQLiteException ex) { throw ex; } finally { cnn.Close(); } } }
/// <summary> /// btnSend_Click - for sending email /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnSend_Click(object sender, EventArgs e) { if (stringBodyHTML == null) { MessageBox.Show("You haven't click any event", "Status Message", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { stringBodyHTML = "<p>" + txtEmailBody.Text.ToString() + "</p>" + stringBodyHTML; webBrowser.DocumentText += stringBodyHTML; MailAddress from = new MailAddress("*****@*****.**", "Ben Miller"); string fromPassword = "******"; MailMessage message = new MailMessage(); message.From = from; message.IsBodyHtml = true; message.Subject = txtEmailSubject.Text.ToString(); message.Body = stringBodyHTML; foreach (int trackWorkerId in allClientEventTrackWorkerIdList) { TrackWorkerModel trackWorker = TrackWorkerDataAccess.LoadTrackWorker(trackWorkerId); //BCC message.Bcc.Add(trackWorker.Email); //To - regular //message.To.Add(trackWorker.Email); } //SmtpClient client = new SmtpClient //{ // Host = "smtp.gmail.com", // Port = 587, // EnableSsl = true, // DeliveryMethod = SmtpDeliveryMethod.Network, // UseDefaultCredentials = false, // Credentials = new NetworkCredential(from.Address, fromPassword) //}; var client = new SmtpClient("smtp.mailtrap.io", 2525) { Credentials = new NetworkCredential("e105e0282339a3", "ac1ce2513bda52"), EnableSsl = true }; Console.WriteLine("Sending an email message to {0} and {1}.", from.DisplayName, message.Bcc.ToString()); try { client.Send(message); MessageBox.Show("Sucessfully delivered email", "Status Message", MessageBoxButtons.OK, MessageBoxIcon.Information); stringBodyHTML = ""; } catch (SmtpException ex) { MessageBox.Show("Failed in sending email", "Status Message", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
/// <summary> /// dgvTrackWorker_CellClick - track worker data grid view cell click to update record /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void dgvTrackWorker_CellClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex >= 0) { TrackWorkerModel trackWorker = new TrackWorkerModel(); trackWorker.TrackWorkerID = int.Parse(dgvTrackWorker.Rows[e.RowIndex].Cells["TrackWorkerID"].Value.ToString()); trackWorker.FirstName = dgvTrackWorker.Rows[e.RowIndex].Cells["FirstName"].Value.ToString(); trackWorker.LastName = dgvTrackWorker.Rows[e.RowIndex].Cells["LastName"].Value.ToString(); trackWorker.Cell = dgvTrackWorker.Rows[e.RowIndex].Cells["Cell"].Value.ToString(); trackWorker.Email = dgvTrackWorker.Rows[e.RowIndex].Cells["Email"].Value.ToString(); if (dgvTrackWorker.Rows[e.RowIndex].Cells["IsCapableCaptain"].Value.ToString() == "True") { trackWorker.IsCapableCaptain = true; } else { trackWorker.IsCapableCaptain = false; } if (dgvTrackWorker.Rows[e.RowIndex].Cells["IsDeleted"].Value.ToString() == "True") { trackWorker.IsDeleted = true; } else { trackWorker.IsDeleted = false; } TrackWorkerForm trackWorkerForm = new TrackWorkerForm(this, trackWorker); trackWorkerForm.ShowDialog(); } }
/// <summary> /// UpdateTrackWorker - update track worker record /// </summary> /// <param name="updatedClient">Updated track worker object</param> /// <param name="id">track worker id</param> /// <returns>bool true or false</returns> public static bool UpdateTrackWorker(TrackWorkerModel updatedTrackWorker, int id) { using (SQLiteConnection cnn = new SQLiteConnection(LoadConnectionString())) { var ReturnVal = 0; cnn.Open(); string sqlStatement = "UPDATE TrackWorkers SET [FirstName] = @updatedFirstName, [LastName] = @updatedLastName, " + "[Cell] = @updatedCell, [Email] = @updatedEmail, [IsCapableCaptain] = @updatedIsCapableCaptain, [IsDeleted] = @updatedIsDeleted " + "WHERE [TrackWorkerID] = @id"; var cmd = new SQLiteCommand(sqlStatement, cnn); cmd.Parameters.AddWithValue("@updatedFirstName", updatedTrackWorker.FirstName); cmd.Parameters.AddWithValue("@updatedLastName", updatedTrackWorker.LastName); cmd.Parameters.AddWithValue("@updatedCell", updatedTrackWorker.Cell); cmd.Parameters.AddWithValue("@updatedEmail", updatedTrackWorker.Email); cmd.Parameters.AddWithValue("@updatedIsCapableCaptain", updatedTrackWorker.IsCapableCaptain); cmd.Parameters.AddWithValue("@updatedIsDeleted", updatedTrackWorker.IsDeleted); cmd.Parameters.AddWithValue("@id", id); try { cmd.Prepare(); ReturnVal = cmd.ExecuteNonQuery(); } catch (SQLiteException ex) { throw ex; } finally { cnn.Close(); } return(ReturnVal == 1); } }
/// <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; }