public static bool sendOffEmail(int[] supIDs, int empID, DateTime selDate) { OleDbConnection conn = new OleDbConnection(ConfigurationManager.ConnectionStrings["AccessConnectionString"].ConnectionString); List<Grant> selGrants = (List<Grant>)HttpContext.Current.Session["SelectedGrants"]; List<Employee> emps = (List<Employee>)HttpContext.Current.Session["CurrentEmployeeList"]; var emp = emps.Where(e => e.ID == empID).SingleOrDefault(); List<Employee> sups = new List<Employee>(); for (int ix = 0; ix < supIDs.Count(); ix++) { Employee sup = getSupervisor(supIDs[ix], conn); sups.Add(sup); if (selGrants[ix].ID != 28 && selGrants[ix].ID != 52 && selGrants[ix].ID != 53) { updateGrantStatus(sup, conn, emp, selDate, selGrants[ix].ID, GrantMonth.status.pending); } } if (conn.State != ConnectionState.Closed) { conn.Close(); } MailObject mO = new MailObject(); mO.grants = selGrants; mO.emp = emp; mO.selDate = selDate; mO.supervisors = sups; Thread t = new Thread(emailThread); t.Start(mO); //for (int xx = 0; xx < sups.Count(); xx++) //{ // Employee sup = sups[xx]; // MailMessage mailObj = new MailMessage("*****@*****.**", sup.emailAddress, "Grant Approval Required", // formulateEmailBody(sup, emp, selDate, selGrants[xx].ID)); // mailObj.IsBodyHtml = true; // SmtpClient SMTPServer = new SmtpClient("localhost"); //outlook.college.mstc.tech // SMTPServer.Send(mailObj); //} return true; }
public static bool sendApproveOrDisapproveEmail(string reasonTxt, bool approved) { List<Employee> emps = (List<Employee>)HttpContext.Current.Session["CurrentEmployeeList"]; Employee sup = (Employee)HttpContext.Current.Session["Supervisor"]; List<Employee> sups = new List<Employee>(); sups.Add(sup); MailObject mO = new MailObject(); mO.supervisors = sups; mO.emp = emps[0]; mO.approved = approved; mO.reason = reasonTxt; mO.month = System.Convert.ToInt32(HttpContext.Current.Session["month"]); mO.year = System.Convert.ToInt32(HttpContext.Current.Session["Year"]); Thread t = new Thread(approvalThread); t.Start(mO); //SMTPServer.Send(mailObj); if (approved) { sendApprovalEmailToGM(mO); } return true; }
public static string formulateResultsEmail(MailObject mO) { DateTime dater = new DateTime(mO.year, mO.month + 1, 1); //Again, have to convert from Javascript date to .Net date. string bodyTxt = "<html><body><strong>Hi " + mO.emp.firstName + ".</strong><p />"; bodyTxt += "This email is to inform you " + mO.supervisors[0].firstName + " " + mO.supervisors[0].lastName + " has " + ((mO.approved) ? "approved " : "disapproved "); bodyTxt += "<br />your grant entries for the month of " + dater.ToString("MMMM") + " for the following reason: <br />"; bodyTxt += mO.reason + "<p />"; if (!mO.approved) { bodyTxt += "Please take appropriate action to corrent this matter.<br />"; } bodyTxt += "Thanks for using the Grant Allocation form! </body></html>"; return bodyTxt; }
//This occurs once the month is approved for this grant. public static bool sendApprovalEmailToGM(MailObject mo) { OleDbConnection conn = new OleDbConnection(ConfigurationManager.ConnectionStrings["AccessConnectionString"].ConnectionString); conn.Open(); List<GrantMonth> gMs = getTheFinalApproved(mo, conn); List<Grant> gS = getGrantsFromGrantMonths(gMs, conn); OleDbCommand comm = new OleDbCommand(); comm.Connection = conn; OleDbDataAdapter adapter = new OleDbDataAdapter(); DataSet set = new DataSet(); List<Employee> emps = new List<Employee>(); foreach (Grant gT in gS) { string strComm = "select * from EmployeeList where LastName Like '" + gT.grantManagerLast + "%' and FirstName Like '" + gT.grantManagerFirst + "%'"; comm.CommandText = strComm; adapter.SelectCommand = comm; try { adapter.Fill(set); } catch (System.Exception ex) { return false; } if (set.Tables != null && set.Tables[0].Rows.Count > 0) { Employee ee = populateEmployee(set.Tables[0].Rows[0]); emps.Add(ee); MailObject moGM = new MailObject(); moGM.approved = true; moGM.emp = mo.emp; moGM.grants = new List<Grant>() { gT }; moGM.month = mo.month; moGM.year = mo.year; moGM.supervisors = new List<Employee>() { ee }; moGM.bodyTxt = formulateApprovalForGM(mo.month, mo.year, mo.emp, gT, ee); Thread t = new Thread(emailGMThread); t.Start(moGM); } } return true; }
/// <summary> /// This checks to determine if ALL grants for the given month have been approved. /// </summary> /// <param name="mo"></param> /// <param name="conn"></param> /// <returns></returns> private static List<GrantMonth> getTheFinalApproved(MailObject mo, OleDbConnection conn) { if (conn.State != ConnectionState.Open) { conn.Open(); } string str = "select * from WorkMonth where EmpID=" + mo.emp.ID.ToString() + " and WorkingMonth=" + mo.month.ToString(); str += " and WorkYear=" + mo.year.ToString(); OleDbCommand comm = new OleDbCommand(str, conn); OleDbDataAdapter adapter = new OleDbDataAdapter(comm); DataSet set = new DataSet(); try { adapter.Fill(set); } catch (System.Exception e) { return null; } if (set.Tables == null || set.Tables.Count < 1) { return null; } List<GrantMonth> grants = new List<GrantMonth>(); foreach (DataRow dr in set.Tables[0].Rows) { GrantMonth gm = new GrantMonth(dr); grants.Add(gm); } var sloopG = grants.Where(g => g.curStatus == System.Convert.ToInt32(GrantMonth.status.approved)).ToList(); if (sloopG != null && sloopG.Count > 0) { conn.Close(); return sloopG; } return null; }