public ActionResult RequestLeave(LeaveRequestViewModel model) { var leaveName = leavemanagerRepo.GetLeaveDetails(model.LeavetypeId.Value); var getPreviousAppliedDateNo = leavemanagerRepo.GetLeaveAppliedFor(model.UserId); var validLeave = leavemanagerRepo.CheckIfLeaveIsFinished(model.UserId, (int)model.requestDays, int.Parse(model.AvailableLeave)); if (ModelState.IsValid && leaveName != null && validLeave != true) { LeaveRequest leave = new LeaveRequest(); leave.UserId = model.UserId.ToString(); leave.RepmangId = model.RepmangId; leave.NoOfDays = model.LeaveNoOfDays; leave.ToDate = model.ToDate; leave.FromDate = model.FromDate; leave.Reason = model.Reason; leave.LeavetypeId = model.LeavetypeId; leave.createdby = User.Identity.GetUserId(); leave.modifiedby = User.Identity.GetUserId(); leave.createddate = DateTime.Now; leave.modifieddate = DateTime.Now; leave.isactive = true; leave.LeaveStatus = null; leave.LeaveName = leaveName.leavetype; leave.Availableleave = int.Parse(model.AvailableLeave); leave.AppliedleavesCount = +model.requestDays + getPreviousAppliedDateNo; //Remember to do this with the modelState to check if leave is finished leave.requestDaysNo = model.requestDays; leaveRepo.AddLeaveRequest(leave); return(RedirectToAction("Leave", "selfService")); //redirect to employee selservice page for him to see his requests } TempData["Error"] = "Something went wrong"; ViewBag.leaveType = new SelectList(leaveRepo.GetLeaveTypes().OrderBy(x => x.leavetype), "id", "leavetype", "id"); ViewBag.userId = User.Identity.GetUserId(); ModelState.AddModelError("", "Please make sure your leave your leave hasn't been exhausted or you can ask The HR to assign more leave for you."); return(View(model)); }