예제 #1
0
        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)));
            }
        }