public async Task <ActionResult> ApproveRequest(int id) { try { var user = _userManager.GetUserAsync(User).Result; var request = await _leaverequestrepo.FindById(id); var employeeId = request.RequestingEmployeeId; var leaveTypeId = request.LeaveTypeId; var allocation = await _leaveallocationrepo.GetLeaveAllocationsByEmployeeAndType(employeeId, leaveTypeId); int daysRequested = (int)(request.EndDate - request.StartDate).TotalDays; allocation.NumberOfDays -= daysRequested; request.Approved = true; request.ApprovedById = user.Id; request.DateActioned = DateTime.Now; await _leaverequestrepo.Update(request); await _leaveallocationrepo.Update(allocation); return(RedirectToAction(nameof(Index), "LeaveRequest")); } catch (Exception ex) { return(RedirectToAction(nameof(Index), "LeaveRequest")); } }
public async Task <ActionResult> Edit(EditLeaveAllocationVM model) { try { if (!ModelState.IsValid) { return(View(model)); } var record = await _allocationrepo.FindById(model.Id); record.NumberOfDays = model.NumberOfDays; var isSuccess = await _allocationrepo.Update(record); if (!isSuccess) { ModelState.AddModelError("", "Something went wrong"); return(View(model)); } return(RedirectToAction(nameof(Details), new { id = model.EmployeeId })); } catch { ModelState.AddModelError("", "Something went wrong"); return(View(model)); } }