示例#1
0
        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;
        }
示例#2
0
        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;
        }
示例#3
0
        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;
        }
示例#4
0
 //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;
 }
示例#5
0
 /// <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;
 }