public ActionResult Create([Bind(Include = "leaveRequestID,employeeID,allDayEvent,startTime,endTime,leaveReasonID,Description,deliveryManagerID,departmentManagerID")] EmployeeLeaveRequestViewModel employeeLeaveRequestViewModel) { LeaveRequest newLeaveRequest = new LeaveRequest { allDayEvent = employeeLeaveRequestViewModel.allDayEvent, deliveryManager = employeeLeaveRequestViewModel.deliveryManager, deliveryManagerComment = employeeLeaveRequestViewModel.deliveryManagerComment, deliveryManagerStatus = GetRequestStatusByName("Pending"), departmentManager = employeeLeaveRequestViewModel.departmentManager, departmentManagerComment = employeeLeaveRequestViewModel.departmentManagerComment, departmentManagerStatus = GetRequestStatusByName("Pending"), Description = employeeLeaveRequestViewModel.Description, employee = employeeLeaveRequestViewModel.employee, endTime = employeeLeaveRequestViewModel.endTime, leaveReason = employeeLeaveRequestViewModel.leaveReason, leaveReasonID = employeeLeaveRequestViewModel.leaveReasonID, startTime = employeeLeaveRequestViewModel.startTime, deliveryManagerID = employeeLeaveRequestViewModel.deliveryManagerID, departmentManagerID = employeeLeaveRequestViewModel.departmentManagerID, employeeID = employeeLeaveRequestViewModel.employeeID, }; if (ModelState.IsValid) { db.LeaveRequests.Add(newLeaveRequest); db.SaveChanges(); return RedirectToAction("Index"); } // ViewBag.leaveReasonID = new SelectList(db.LeaveReasons, "leaveReasonID", "leaveReasonName", employeeLeaveRequestViewModel.leaveReasonID); //ViewBag.requestStatusID = new SelectList(db.RequestStatus, "requestStatusID", "requestStatusName", employeeLeaveRequestViewModel.requestStatusID); return View(employeeLeaveRequestViewModel); }
private LeaveRequest mapLeaveRequestViewModel(EmployeeLeaveRequestViewModel leaveRequestViewModel) { var emp = db.Employees.Find(leaveRequestViewModel.employeeID); var delMan = db.Employees.Find(leaveRequestViewModel.deliveryManagerID); var depMan = db.Employees.Find(leaveRequestViewModel.departmentManagerID); var lreason = db.LeaveReasons.Find(leaveRequestViewModel.leaveReasonID); RequestStatus initStatus = GetRequestStatusByName("Pending"); // RequestStatus approvedStatus = GetRequestStatusByName("Approved"); LeaveRequest newLeaveRequst = new LeaveRequest() { leaveRequestID = leaveRequestViewModel.leaveRequestID, employee = emp, allDayEvent = leaveRequestViewModel.allDayEvent, startTime = leaveRequestViewModel.startTime, endTime = leaveRequestViewModel.endTime, leaveReason = lreason, Description = leaveRequestViewModel.Description, deliveryManager = delMan, deliveryManagerComment = "", departmentManager = depMan, departmentManagerComment = "", departmentManagerStatus = initStatus, deliveryManagerStatus = initStatus }; return newLeaveRequst; }
private void sendMailToDepartmentManager(LeaveRequest leaveRequest) { //string linkToProcessRequest = getLinkForRequest(leaveRequest.leaveRequestID); //Employee employee = db.Employees.Single(e => e.employeeID == leaveRequest.departmentManager.employeeID); //string email = employee.employeeEmail; //string subject = "New Leave Request"; //string body = "You have recieved new leave request from: <i style=\"color: green\">" + leaveRequest.employee.employeeName + "</i> Approved by delivery manager: <i style=\"color: #FF8000\">" + leaveRequest.deliveryManager.employeeName + "</i><br/>" + getLinkForRequest(leaveRequest.leaveRequestID); //string depManagerHTMLBody = getHTMLEmailForDepManager(leaveRequest); ////sendMail("*****@*****.**", employee.employeeEmail, subject, body, smtpHost); //EmployeeLeaveRequestViewModelsController.sendMailUsingDBSettings(db, email, subject, depManagerHTMLBody); }
private string getHTMLEmailForDepManager(LeaveRequest leaveRequest) { StreamReader reader = new StreamReader(Server.MapPath("~/Content/MailTemplate.html")); string email = reader.ReadToEnd(); string notHeader = "You have new leave request"; string textHeader = ""; string textMessage = "You have recieved new leave request from: <i style=\"color: green\">" + leaveRequest.employee.employeeName + "</i> Approved by delivery manager: <i style=\"color: #FF8000\">" + leaveRequest.deliveryManager.employeeName + "</i><br/>"; string buttonText = "Go to request"; string buttonLink = "http://localhost:9877/DepartmentManagerLeaveRequestViewModels/ProcessRequest/" + leaveRequest.leaveRequestID; email = email.Replace("[NotificationHeader]", notHeader); email = email.Replace("[TextHeader]", textHeader); email = email.Replace("[TextMessage]", textMessage); email = email.Replace("[ButtonText]", buttonText); email = email.Replace("[ButtonLink]", buttonLink); return email; }
private void sendMailToDeliveryManager(int deliveryManagerID, LeaveRequest leaveRequest) { string linkToProcessRequest = getLink(leaveRequest.leaveRequestID); Employee employee = db.Employees.Single(e => e.employeeID == deliveryManagerID); string email = employee.employeeEmail; string subject = "New Leave Request"; string body = "<h3>You have recieved new leave request from: <i style=\"color: green\">" + leaveRequest.employee.employeeName + "</i> </h3><br/>" + getLink(leaveRequest.leaveRequestID); string smtpHost = "smtp.gmail.com"; string HTMLBody = getHTMLEmail(leaveRequest.employee.employeeName,leaveRequest.leaveRequestID); //sendMail("*****@*****.**", employee.employeeEmail, subject, body, smtpHost); sendMailUsingDBSettings(db, employee.employeeEmail, subject, HTMLBody); }
public static string ReplacePdfForm(LeaveRequest leaveRequest) { ////string fileNameExisting = @"\Resources\LeaveRequestTemplate.pdf"; //string fileNameExisting = "~/Resources/LeaveRequestTemplate.pdf"; string fileNameNew = Path.GetTempPath()+leaveRequest.employee.employeeName+".pdf"; // using (var existingFileStream = new FileStream(fileNameExisting, FileMode.Open)) using (var newFileStream = new FileStream(fileNameNew, FileMode.Create)) { // Open existing PDF var pdfReader = new PdfReader(Properties.Resources.LeaveRequestTemplatePDF); // PdfStamper, which will create var stamper = new PdfStamper(pdfReader, newFileStream); var form = stamper.AcroFields; form.GenerateAppearances = true; var fieldKeys = form.Fields.Keys; //setting font size and setting field text form.SetFieldProperty("Employee", "textsize", 8.0f, null); form.SetField("Employee", leaveRequest.employee.employeeName); form.SetFieldProperty("AllDayEvent", "textsize", 8.0f, null); form.SetField("AllDayEvent", leaveRequest.allDayEvent ? "YES" : "NO"); form.SetFieldProperty("StartTime", "textsize", 8.0f, null); form.SetField("StartTime", leaveRequest.allDayEvent ? leaveRequest.startTime.ToShortDateString() : leaveRequest.startTime.ToString()); form.SetFieldProperty("EndTime", "textsize", 8.0f, null); form.SetField("EndTime", leaveRequest.allDayEvent ? leaveRequest.endTime.ToShortDateString() : leaveRequest.endTime.ToString()); form.SetFieldProperty("LeaveReason", "textsize", 8.0f, null); form.SetField("LeaveReason", leaveRequest.leaveReason.leaveReasonName); form.SetFieldProperty("LeaveDescription", "textsize", 8.0f, null); form.SetField("LeaveDescription", leaveRequest.Description); form.SetFieldProperty("DeliveryManager", "textsize", 8.0f, null); form.SetField("DeliveryManager", leaveRequest.deliveryManager.employeeName); form.SetFieldProperty("DeliveryManagerComment", "textsize", 8.0f, null); form.SetField("DeliveryManagerComment", leaveRequest.deliveryManagerComment); form.SetFieldProperty("DepartmentManager", "textsize", 8.0f, null); form.SetField("DepartmentManager", leaveRequest.departmentManager.employeeName); form.SetFieldProperty("DepartmentManagerComment", "textsize", 8.0f, null); form.SetField("DepartmentManagerComment", leaveRequest.departmentManagerComment); form.SetFieldProperty("CreateDate", "textsize", 8.0f, null); form.SetField("CreateDate", leaveRequest.CreateDate.ToString()); form.SetFieldProperty("EmployeeSignature", "textsize", 8.0f, null); form.SetField("EmployeeSignature", leaveRequest.employee.employeeName); form.SetFieldProperty("DeliveryManagerSignature", "textsize", 8.0f, null); form.SetField("DeliveryManagerSignature", leaveRequest.deliveryManager.employeeName); form.SetFieldProperty("DepartmentManagerSignature", "textsize", 8.0f, null); form.SetField("DepartmentManagerSignature", leaveRequest.departmentManager.employeeName); form.SetFieldProperty("Date", "textsize", 8.0f, null); form.SetField("Date", DateTime.Now.ToShortDateString()); // "Flatten" the form so it wont be editable/usable anymore stamper.FormFlattening = true; stamper.Close(); pdfReader.Close(); return fileNameNew; } }