Example #1
0
        public ActionResult AdminSendMail(EmployeeChangesApprovalViewModel model)
        {
            try
            {
                if (model.Module == "New Personal Details" || model.Module == "New Residential Details" || model.Module == "OnHold Personal Details" || model.Module == "OnHold Residential Details")
                {
                    StringBuilder builder = new StringBuilder();
                    foreach (var item in model.ChangeDetailsList)
                    {
                        if (item.ChildApprovalStatusMasterID == 1 || item.ChildApprovalStatusMasterID == 2 || item.ChildApprovalStatusMasterID == 3)
                        {
                            model.Mail = new EmployeeMailTemplate();
                            int empid           = Convert.ToInt32(model.EmployeeID);
                            int childemployeeid = Convert.ToInt32(item.ChildEmployeeID);
                            HRMS_tbl_PM_Employee ChildemployeeDetails = employeeDAL.GetEmployeeDetails(childemployeeid);
                            HRMS_tbl_PM_Employee employeeDetails      = employeeDAL.GetEmployeeDetails(empid);
                            if (employeeDetails != null)
                            {
                                model.Mail.From = employeeDetails.EmailID;

                                model.Mail.To = ChildemployeeDetails.EmailID;

                                string ChildMasterstatus;
                                if (item.ChildApprovalStatusMasterID == 1)
                                {
                                    ChildMasterstatus = "On Hold";
                                }
                                else if (item.ChildApprovalStatusMasterID == 2)
                                {
                                    ChildMasterstatus = "Approved";
                                }
                                else
                                {
                                    ChildMasterstatus = "Rejected";
                                }

                                string approvalStatus = (builder.Append(item.ChildFieldDiscription).Append(" : ").Append(ChildMasterstatus).Append("<br>")
                                                         + "Comments: " + model.Comments);

                                int templateId = 0;
                                if (model.Module == "New Personal Details" || model.Module == "OnHold Personal Details")
                                {
                                    templateId = 1;
                                }
                                if (model.Module == "New Residential Details" || model.Module == "OnHold Residential Details")
                                {
                                    templateId = 2;
                                }

                                string mailBody = null;
                                List <EmployeeMailTemplate> template = Commondal.GetEmailTemplate(templateId);
                                foreach (var emailTemplate in template)
                                {
                                    model.Mail.Subject = emailTemplate.Subject;
                                    mailBody           = emailTemplate.Message;
                                }

                                mailBody           = mailBody.Replace("##Approval Status##", approvalStatus);
                                mailBody           = mailBody.Replace("##HR Admin##", Server.HtmlEncode(employeeDetails.EmployeeName));
                                model.Mail.Message = mailBody.Replace("<br>", Environment.NewLine);
                                ViewBag.Body       = mailBody;

                                string[] roles = { "HR Admin" };

                                foreach (string r in roles)
                                {
                                    string[] users = Roles.GetUsersInRole(r);

                                    foreach (string user in users)
                                    {
                                        HRMS_tbl_PM_Employee employee = employeeDAL.GetEmployeeDetailsFromEmpCode(Convert.ToInt32(user));
                                        if (employee == null)
                                        {
                                            model.Mail.Cc = model.Mail.Cc + string.Empty;
                                        }
                                        else
                                        {
                                            model.Mail.Cc = model.Mail.Cc + employee.EmailID + ";";
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                else
                {
                }
                return(PartialView("_MailTemplateApprovalStatus", model.Mail));
            }
            catch (Exception)
            {
                return(RedirectToAction("Index", "Error", new { errorCode = "There are some errors." }));
            }
        }