public async Task <ActionResult> ApproveRequest(int id) { try { var user = await _userManager.GetUserAsync(User); var leaveRequest = await _leaveRequestrepo.FindById(id); var empId = leaveRequest.requestEmployeeid; var leaveId = leaveRequest.LeaveTypeId; var allocation = await _leavaAllocRepo.getLeaveAllocationDetailonLeaveTypeId(empId, leaveId); var requestedDays = (int)(leaveRequest.endDate.Date - leaveRequest.startDate.Date).TotalDays; allocation.NumberOfDays -= requestedDays; leaveRequest.Approved = true; leaveRequest.approvedByid = user.Id; leaveRequest.dateActioned = DateTime.Now; await _leaveRequestrepo.Update(leaveRequest); await _leavaAllocRepo.Update(allocation); return(RedirectToAction(nameof(Index))); } catch (Exception ex) { return(RedirectToAction(nameof(Index))); } }