コード例 #1
0
        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));
        }