public async Task <IActionResult> GetLeaveForms() { var claimSID = User.FindFirst(JwtRegisteredClaimNames.Sid)?.Value; if (claimSID == null) { apiResult = APIResultFactory.Build(false, StatusCodes.Status400BadRequest, ErrorMessageEnum.杖中沒有發現指定使用者ID); return(BadRequest(apiResult)); } UserID = Convert.ToInt32(claimSID); var fooUser = await _context.LobUsers.Include(x => x.Department).FirstOrDefaultAsync(x => x.Id == UserID); if (fooUser == null) { apiResult = APIResultFactory.Build(false, StatusCodes.Status404NotFound, ErrorMessageEnum.沒有發現指定的該使用者資料); return(NotFound(apiResult)); } List <LeaveFormResponseDTO> fooLeaveFormResponseDTO = new List <LeaveFormResponseDTO>(); foreach (var item in _context.LeaveForms.Include(x => x.LeaveFormType) .Include(x => x.User).ThenInclude(x => x.Department) .Where(x => x.User.Id == UserID)) { LeaveFormResponseDTO fooObject = item.ToLeaveFormResponseDTO(); fooLeaveFormResponseDTO.Add(fooObject); } apiResult = APIResultFactory.Build(true, StatusCodes.Status200OK, ErrorMessageEnum.None, payload: fooLeaveFormResponseDTO); return(Ok(apiResult)); }
public static LeaveFormResponseDTO ToLeaveFormResponseDTO(this LeaveForm leaveForm) { LeaveFormResponseDTO LeaveFormResponseDTO = new LeaveFormResponseDTO() { BeginTime = leaveForm.BeginTime, EndTime = leaveForm.EndTime, Description = leaveForm.Description, Id = leaveForm.Id, TotalHours = leaveForm.TotalHours, leaveFormType = new LeaveFormTypeDTO() { Id = leaveForm.LeaveFormType.Id }, user = new UserDTO() { Id = leaveForm.User.Id, Department = new DepartmentDTO() { Id = leaveForm.User.Department.Id } } }; return(LeaveFormResponseDTO); }