コード例 #1
0
        public ActionResult ApproveRequest(int id)
        {
            try
            {
                var user         = _userManager.GetUserAsync(User).Result;
                var leaveRequest = _leaveRequestrepo.FindById(id);
                var employeeid   = leaveRequest.RequestingEmployeeId;
                var leavetypeid  = leaveRequest.LeaveTypeId;
                var allocation   = _leavAllocationrepo.GetLeaveAllocationsByEmployeeandType(employeeid, leavetypeid);
                leaveRequest.Approved      = true;
                leaveRequest.ApprovedById  = user.Id;
                leaveRequest.DateRequested = DateTime.Now;
                int daysRequested = (int)(leaveRequest.EndDate - leaveRequest.StartDate).TotalDays;
                allocation.NumberOfDays = allocation.NumberOfDays - daysRequested;

                leaveRequest.Approved     = true;
                leaveRequest.ApprovedById = user.Id;
                // leaveRequest.DateActioned = DateTime.Now;

                _leaveRequestrepo.Update(leaveRequest);
                _leavAllocationrepo.Update(allocation);

                var isSucess = _leaveRequestrepo.Update(leaveRequest);
                return(RedirectToAction(nameof(Index)));
            }
            catch (Exception ex)
            {
                return(RedirectToAction(nameof(Index)));
            }
        }