public ActionResult LeaveStatement(leavedetail viewData)
        {
            leavedetail          data    = new leavedetail();
            HumanResourceContext context = new HumanResourceContext();

            return(View(viewData));
        }
Example #2
0
        public ActionResult sendmail(int id)
        {
            HumanResourceContext context = new HumanResourceContext();
            leavedetail          data    = new leavedetail();
            Salary customer = context.SalaryCheckSet.FirstOrDefault(c => c.salaryid == id);
            var    casual   = 0;
            var    paid     = 0;
            var    sick     = 0;
            var    unpaid   = 0;
            var    result1  = context.LeaveSet.Where(e => e.EmpId == customer.EmpId && e.Reason == "Casual Leave" && e.FromDate.Year == customer.date.Value.Year && e.ToDate.Month == customer.date.Value.Month).FirstOrDefault();
            var    result2  = context.LeaveSet.Where(e => e.EmpId == customer.EmpId && e.Reason == "Paid Leave" && e.FromDate.Year == customer.date.Value.Year && e.ToDate.Month == customer.date.Value.Month).FirstOrDefault();
            var    result3  = context.LeaveSet.Where(e => e.EmpId == customer.EmpId && e.Reason == "Sick Leave" && e.FromDate.Year == customer.date.Value.Year && e.ToDate.Month == customer.date.Value.Month).FirstOrDefault();
            var    result4  = context.LeaveSet.Where(e => e.EmpId == customer.EmpId && e.Reason == "Unpaid Leave" && e.FromDate.Year == customer.date.Value.Year && e.ToDate.Month == customer.date.Value.Month).FirstOrDefault();

            if (result1 != null)
            {
                casual = context.LeaveSet.Where(e => e.EmpId == customer.EmpId && e.Reason == "Casual Leave" && e.FromDate.Year == customer.date.Value.Year && e.ToDate.Month == customer.date.Value.Month).Sum(e => e.Days);
            }
            if (result2 != null)
            {
                paid = context.LeaveSet.Where(e => e.EmpId == customer.EmpId && e.Reason == "Paid Leave" && e.FromDate.Year == customer.date.Value.Year && e.ToDate.Month == customer.date.Value.Month).Sum(e => e.Days);
            }
            if (result3 != null)
            {
                sick = context.LeaveSet.Where(e => e.EmpId == customer.EmpId && e.Reason == "Sick Leave" && e.FromDate.Year == customer.date.Value.Year && e.ToDate.Month == customer.date.Value.Month).Sum(e => e.Days);
            }
            if (result4 != null)
            {
                unpaid = context.LeaveSet.Where(e => e.EmpId == customer.EmpId && e.Reason == "Unpaid Leave" && e.FromDate.Year == customer.date.Value.Year && e.ToDate.Month == customer.date.Value.Month).Sum(e => e.Days);
            }
            data.casual = casual;
            data.paid   = paid;
            data.sick   = sick;
            data.unpaid = unpaid;
            var        email        = context.Employeeset.Where(e => e.EmpId == customer.EmpId).Select(b => b.EmailAddress).FirstOrDefault();
            String     renderedHTML = Controllers.PayslipController.RenderViewToString("Payslip", "SendPaySlip", customer);
            String     textBody     = Controllers.PayslipController.RenderViewToString1("Payslip", "LeaveStatement", data);
            SmtpClient smtp         = new SmtpClient();

            smtp.Host                  = "smtp.gmail.com";
            smtp.Port                  = 587;
            smtp.EnableSsl             = true;
            smtp.DeliveryMethod        = SmtpDeliveryMethod.Network;
            smtp.UseDefaultCredentials = false;
            smtp.Credentials           = new NetworkCredential("*****@*****.**", "minhtet13579");
            string body = renderedHTML + textBody;

            using (var message = new MailMessage("*****@*****.**", email))
            {
                message.Subject    = "PaySlip";
                message.Body       = body;
                message.IsBodyHtml = true;
                smtp.Send(message);
            }
            return(View(customer));
        }
 public static string RenderViewToString1(string controllerName, string viewName, leavedetail viewData)
 {
     using (var writer = new StringWriter())
     {
         var routeData = new RouteData();
         routeData.Values.Add("controller", controllerName);
         var fakeControllerContext = new ControllerContext(new HttpContextWrapper(new HttpContext(new HttpRequest(null, "http://google.com", null), new HttpResponse(null))), routeData, new PayslipController());
         var razorViewEngine       = new RazorViewEngine();
         var razorViewResult       = razorViewEngine.FindView(fakeControllerContext, viewName, "", false);
         var viewContext           = new ViewContext(fakeControllerContext, razorViewResult.View, new ViewDataDictionary(viewData), new TempDataDictionary(), writer);
         razorViewResult.View.Render(viewContext, writer);
         return(writer.ToString());
     }
 }