public ActionResult LeaveRequest(RequestVM model) { IEmployeeRepository obj = new EmployeeRepository(); IStructuredetailRepository repo = new StructuredetailRepository(); var empid = Session["EmployeeId"].ToString(); var posid = Session["Position"].ToString(); var role = Session["RoleName"].ToString(); var Duplicatereq = repo.GetReq().Where(a => a.EmployeeId == Convert.ToInt32(empid)).Where(x => x.RequestType == "Leave" && x.IsSeen == false).FirstOrDefault(); var CasualLeavesLeft = obj.GetEmpLeaves().Where(x => x.EmployeeId == Convert.ToInt32(empid) && x.CasualLeave == 0).FirstOrDefault(); var SickLeavesLeft = obj.GetEmpLeaves().Where(x => x.EmployeeId == Convert.ToInt32(empid) && x.SickLeave == 0).FirstOrDefault(); if (model.ToDate < model.FromDate) { TempData["SuccessMessage101"] = "From Date Should not be greater or equal than To Date"; var leavelist = new SelectList(new[] { new { ID = "1", Name = "Casual Leave" }, new { ID = "2", Name = "Sick Leave" } }, "Name", "Name", "1" ); ViewBag.getleavelist = leavelist; } else { if (Duplicatereq != null) { TempData["SuccessMessage101"] = "You have already Submitted Leave Request"; var leavelist = new SelectList(new[] { new { ID = "1", Name = "Casual Leave" }, new { ID = "2", Name = "Sick Leave" } }, "Name", "Name", "1" ); ViewBag.getleavelist = leavelist; } else { if (CasualLeavesLeft == null && model.Leavetype == "Casual Leave") { obj.updatecasualleaveleft(Convert.ToInt32(empid)); obj.Save(); var leavelist = new SelectList(new[] { new { ID = "1", Name = "Casual Leave" }, new { ID = "2", Name = "Sick Leave" } }, "Name", "Name", "1" ); ViewBag.getleavelist = leavelist; if (role == "Hr Manager") { var add = obj.AddReqlforhr(Convert.ToInt32(empid), Convert.ToInt32(posid), model.FromDate, model.ToDate, model.ReasonofRequest, "Casual Leave"); obj.AddLeaveReq(add); obj.Save(); TempData["SuccessMessage102"] = "Success"; } else { var add = obj.AddReql(Convert.ToInt32(empid), Convert.ToInt32(posid), model.FromDate, model.ToDate, model.ReasonofRequest, "Casual Leave"); obj.AddLeaveReq(add); obj.Save(); TempData["SuccessMessage102"] = "Success"; } } else if (model.Leavetype == "Casual Leave") { TempData["SuccessMessage101"] = "You do not have Casual Leave Left"; var leavelist = new SelectList(new[] { new { ID = "1", Name = "Casual Leave" }, new { ID = "2", Name = "Sick Leave" } }, "Name", "Name", "1" ); ViewBag.getleavelist = leavelist; } if (SickLeavesLeft == null && model.Leavetype == "Sick Leave") { obj.updatesickleaveleft(Convert.ToInt32(empid)); obj.Save(); var add = obj.AddReqlforhr(Convert.ToInt32(empid), Convert.ToInt32(posid), model.FromDate, model.ToDate, model.ReasonofRequest, "Sick Leave"); obj.AddLeaveReq(add); obj.Save(); var leavelist = new SelectList(new[] { new { ID = "1", Name = "Casual Leave" }, new { ID = "2", Name = "Sick Leave" } }, "Name", "Name", "1" ); ViewBag.getleavelist = leavelist; TempData["SuccessMessage102"] = "Success"; } else if (model.Leavetype == "Sick Leave") { TempData["SuccessMessage101"] = "You do not have Sick Leave Left"; var leavelist = new SelectList(new[] { new { ID = "1", Name = "Casual Leave" }, new { ID = "2", Name = "Sick Leave" } }, "Name", "Name", "1" ); ViewBag.getleavelist = leavelist; } } } return(View()); }