コード例 #1
0
ファイル: CommonFunc.cs プロジェクト: vuchannguyen/lg-py
        public static void SendEmailToEmployee(PTODao ptoDao, PTO pto, List<PTO_Detail> listPTO_Detail, bool? isManager, string ccMail="")
        {
            try
            {
                EmployeeDao empDao = new EmployeeDao();
                string template="";
                if (pto.DeleteFlag)
                    template = GetTemplateForDeletion;
                else if(isManager.HasValue)
                    template = isManager.Value ? GetTemplateForManager : GetTemplateForEmployee;


                string sTemplate = string.Empty;
                string sFooter = GetEmailFooter();

                sTemplate =  template + sFooter;
                //PTO pto = ptoDao.GetPTOById(id);
                Employee emp = empDao.GetById(pto.Submitter);
                Employee manager = empDao.GetById(pto.SubmitTo);
                string actor = CommonFunc.GetEmployeeFullName(manager);
                
                sTemplate = sTemplate.Replace(Constants.PTO_EMAIL_FIELD_PTO_REASON, HttpUtility.HtmlEncode(pto.Reason));
                sTemplate = sTemplate.Replace(Constants.PTO_EMAIL_FIELD_PTO_STATUS_NAME, pto.PTO_Status.Name);
                sTemplate = sTemplate.Replace(Constants.PTO_EMAIL_FIELD_PTO_TYPE_NAME, pto.PTO_Type.Name);

                string sPTO_ID = "";
                string sAction = "";
                string sEmailSubject = "";
                string sEmpName = CommonFunc.GetEmployeeFullName(emp, Constants.FullNameFormat.FirstMiddleLast);
                string toEmail = pto.Employee.OfficeEmail;
                if (pto.DeleteFlag)
                {
                    sEmailSubject = String.Format(Constants.PTO_EMAIL_SUBJECT_DELETE, pto.ID);
                }
                else if (pto.Status_ID == Constants.PTO_STATUS_NEW)
                {
                    sPTO_ID = "Your PTO (" + pto.ID + ")";
                    sAction = "submitted to";
                    sEmailSubject = String.Format(Constants.PTO_EMAIL_SUBJECT_NEW, pto.ID);
                }
                else if (pto.Status_ID == Constants.PTO_STATUS_APPROVED)
                {
                    sPTO_ID = "The " + pto.ID;
                    sAction = "approved by";
                    sEmailSubject = String.Format(Constants.PTO_EMAIL_SUBJECT_APPROVE_REJECT, pto.ID, "approved");
                }
                else if (pto.Status_ID == Constants.PTO_STATUS_REJECTED)
                {
                    sPTO_ID = "The " + pto.ID;
                    sAction = "rejected by";
                    sEmailSubject = String.Format(Constants.PTO_EMAIL_SUBJECT_APPROVE_REJECT, pto.ID, "rejected");
                }
                else if (pto.Status_ID == Constants.PTO_STATUS_CONFIRM)
                {
                    sPTO_ID = "The " + pto.ID;
                    sAction = "approved by";
                    sEmailSubject = String.Format(Constants.PTO_EMAIL_SUBJECT_APPROVE_REJECT, pto.ID, "approved");
                }
                else if (pto.Status_ID == Constants.PTO_STATUS_VERIFIED)
                {
                    sPTO_ID = "The " + pto.ID;
                    sAction = "verified by";
                    actor = CommonFunc.GetEmployeeFullName(CommonFunc.GetEmployeeByUserName(HttpContext.Current.User.Identity.Name), 
                        Constants.FullNameFormat.FirstMiddleLast);
                    sEmailSubject = String.Format(Constants.PTO_EMAIL_SUBJECT_VERIFIED, pto.ID);
                }
                if (!isManager.HasValue)
                {
                    toEmail = HttpContext.Current.User.Identity.Name + Constants.LOGIGEAR_EMAIL_DOMAIN;
                }
                else if (isManager.Value)
                {
                    if(!pto.DeleteFlag)
                        sEmailSubject = String.Format(Constants.PTO_EMAIL_SUBJECT_TO_MANAGER, sEmpName);
                    toEmail = pto.Employee1.OfficeEmail;
                }
                var empUser = CommonFunc.GetEmployeeByUserName(HttpContext.Current.User.Identity.Name);
                string recipent = "";
                if (!isManager.HasValue)
                    recipent = empDao.FullName(empUser.ID, Constants.FullNameFormat.FirstMiddleLast);
                else if (isManager.Value)
                    recipent = empDao.FullName(manager.ID, Constants.FullNameFormat.FirstMiddleLast);
                else
                    recipent = sEmpName;

                string commentTemplate = "<br/><b>{0}</b>: <i>{1}</i>";
                sTemplate = sTemplate.Replace(Constants.PTO_EMAIL_FIELD_MANAGER_NAME, actor);
                sTemplate = sTemplate.Replace(Constants.PTO_EMAIL_FIELD_EMPLOYEE_NAME, sEmpName);
                sTemplate = sTemplate.Replace(Constants.PTO_EMAIL_FIELD_EMPLOYEE_SUBMIT_DATE, pto.CreateDate.ToString(Constants.DATETIME_FORMAT_VIEW));
                sTemplate = sTemplate.Replace(Constants.PTO_EMAIL_FIELD_PTO_ID, sPTO_ID);
                sTemplate = sTemplate.Replace(Constants.PTO_EMAIL_FIELD_PTO_REAL_ID, pto.ID);
                sTemplate = sTemplate.Replace(Constants.PTO_EMAIL_FIELD_PTO_ACTION, sAction);
                sTemplate = sTemplate.Replace(Constants.PTO_EMAIL_FIELD_PTO_USER, empDao.FullName(empUser.ID, Constants.FullNameFormat.FirstMiddleLast));
                sTemplate = sTemplate.Replace(Constants.PTO_EMAIL_FIELD_PTO_PTO_ID, pto.ID);
                sTemplate = sTemplate.Replace(Constants.PTO_EMAIL_FIELD_PTO_RECIPENT, recipent);
                sTemplate = sTemplate.Replace(Constants.PTO_PM_COMMENT_FIELD, string.IsNullOrEmpty(pto.ManagerComment) ? "" : 
                    string.Format(commentTemplate, "Manager comment (" + 
                    CommonFunc.GetEmployeeFullName(pto.Employee1, Constants.FullNameFormat.FirstMiddleLast) + 
                    ")", HttpUtility.HtmlEncode(pto.ManagerComment)));
                sTemplate = sTemplate.Replace(Constants.PTO_HR_COMMENT_FIELD, string.IsNullOrEmpty(pto.HRComment) ? "" :
                    string.Format(commentTemplate, "HR comment", HttpUtility.HtmlEncode(pto.HRComment)));
                string sDetail = "";
                //List<PTO_Detail> listPTO_Detail = ptoDao.GetPTO_DetailByPTO_ID(pto.ID).OrderBy(p => p.DateOff).ToList();
                foreach (PTO_Detail detail in listPTO_Detail)
                {
                    if (pto.PTO_Type.IsHourType)
                    {
                        sDetail += detail.DateOff.Value.ToString(Constants.DATETIME_FORMAT_VIEW) +
                            ": " + (detail.HourFrom < 10 ? "0" + detail.HourFrom : detail.HourFrom.ToString()) + ":00 » " + 
                            (detail.HourTo < 10 ? "0" + detail.HourTo : detail.HourTo.ToString()) + ":00<br/>";
                    }
                    else
                    {
                        sDetail += "From " + detail.DateOffFrom.Value.ToString(Constants.DATETIME_FORMAT_VIEW);
                        sDetail += " to " + detail.DateOffTo.Value.ToString(Constants.DATETIME_FORMAT_VIEW);
                        sDetail += "<br/>";
                    }
                }
                sTemplate = sTemplate.Replace(Constants.PTO_EMAIL_FIELD_PTO_DETAIL, sDetail);

                string host = ConfigurationManager.AppSettings["mailserver_host"];
                string port = ConfigurationManager.AppSettings["mailserver_port"];

                string from = Constants.CRM_MAIL_FROM_ADDRESS;
                string fromName = Constants.PTO_SENDER_NAME;
                
                WebUtils.SendMail(host, port, from, fromName, toEmail, ccMail, sEmailSubject, sTemplate);
            }
            catch
            {

            }
        }
コード例 #2
0
ファイル: LocationDao.cs プロジェクト: vuchannguyen/lg-py
 public Message Swap(string id1, string id2)
 {
     Message msg = null;
     STTDao sttDao = new STTDao ();
     EmployeeDao empDao =new EmployeeDao ();
     try
     {
         if (id1.IsSttId())
         {
             STT obj1 = sttDao.GetById(id1);
             string tmp = obj1.LocationCode;
             if (id2.IsSttId())
             {
                 STT obj2 = sttDao.GetById(id2);
                 obj1.LocationCode = obj2.LocationCode;
                 obj2.LocationCode = tmp;
             }
             else
             {
                 Employee obj2 = empDao.GetById(id2);
                 obj1.LocationCode = obj2.LocationCode;
                 obj2.LocationCode = tmp;
             }
         }
         else
         {
             Employee obj1 = empDao.GetById(id1);
             string tmp = obj1.LocationCode;
             if (id2.IsSttId())
             {
                 STT obj2 = sttDao.GetById(id2);
                 obj1.LocationCode = obj2.LocationCode;
                 obj2.LocationCode = tmp;
             }
             else
             {
                 Employee obj2 = empDao.GetById(id2);
                 obj1.LocationCode = obj2.LocationCode;
                 obj2.LocationCode = tmp;
             }
         }
         msg = new Message(MessageConstants.I0001, MessageType.Info, "Work Location", "swapped");
         dbContext.SubmitChanges();
     }
     catch
     {
         msg = new Message(MessageConstants.E0033, MessageType.Error);
     }
     return msg;
 }