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 = _leaveAllocRepo.GetLeaveAllocationsByEmployeeAndType(employeeid, leaveTypeId); int daysRequested = (int)(leaveRequest.EndDate - leaveRequest.StartDate).TotalDays; //allocation.NumberOfDays -= daysRequested; allocation.NumberOfDays = allocation.NumberOfDays - daysRequested; leaveRequest.Approved = true; leaveRequest.ApprovedByID = user.Id; leaveRequest.DateActioned = DateTime.Now; _leaveRequestRepo.Update(leaveRequest); _leaveAllocRepo.Update(allocation); return(RedirectToAction(nameof(Index))); } catch (Exception ex) { return(RedirectToAction(nameof(Index))); } }