diff --git a/BMA.EHR.Leave.Service/Controllers/LeaveRequestController.cs b/BMA.EHR.Leave.Service/Controllers/LeaveRequestController.cs index 1ccbf29c..1589fed4 100644 --- a/BMA.EHR.Leave.Service/Controllers/LeaveRequestController.cs +++ b/BMA.EHR.Leave.Service/Controllers/LeaveRequestController.cs @@ -818,37 +818,59 @@ namespace BMA.EHR.Leave.Service.Controllers { //var thisYear = DateTime.Now.Year; var data = await _leaveRequestRepository.GetLeaveRequestByYearAsync(req.Year); - var personList = new List(); - var result = new List(); + var profileList = await _userProfileRepository.GetProfileWithKeycloak(AccessToken); - foreach (var item in data) - { - var profile = personList.FirstOrDefault(x => x.Keycloak == item.KeycloakUserId); - if(profile == null) - { - profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(item.KeycloakUserId, AccessToken); - personList.Add(profile); - } - //var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(item.KeycloakUserId, AccessToken); + var resultData = (from d in data + join p in profileList on d.KeycloakUserId equals p.Keycloak + select new GetLeaveRequestCalendarResultDto + { + Id = d.Id, + LeaveTypeId = d.Type.Id, + LeaveTypeName = d.Type.Name, + DateSendLeave = d.CreatedAt.Date, + Status = d.LeaveStatus, + FullName = $"{p.Prefix}{p.FirstName} {p.LastName}", + LeaveEndDate = d.LeaveEndDate, + LeaveStartDate = d.LeaveStartDate, + KeycloakId = d.KeycloakUserId - var resData = new GetLeaveRequestCalendarResultDto - { - Id = item.Id, - LeaveTypeName = item.Type.Name, - LeaveTypeId = item.Type.Id, - DateSendLeave = item.CreatedAt.Date, - Status = item.LeaveStatus, - FullName = $"{profile.Prefix}{profile.FirstName} {profile.LastName}", - LeaveStartDate = item.LeaveStartDate, - LeaveEndDate = item.LeaveEndDate, - KeycloakId = item.KeycloakUserId - }; + }) + .ToList(); - result.Add(resData); - } + return Success(resultData); - return Success(result); + //var personList = new List(); + + //var result = new List(); + + //foreach (var item in data) + //{ + // var profile = personList.FirstOrDefault(x => x.Keycloak == item.KeycloakUserId); + // if (profile == null) + // { + // profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(item.KeycloakUserId, AccessToken); + // personList.Add(profile); + // } + // //var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(item.KeycloakUserId, AccessToken); + + // var resData = new GetLeaveRequestCalendarResultDto + // { + // Id = item.Id, + // LeaveTypeName = item.Type.Name, + // LeaveTypeId = item.Type.Id, + // DateSendLeave = item.CreatedAt.Date, + // Status = item.LeaveStatus, + // FullName = $"{profile.Prefix}{profile.FirstName} {profile.LastName}", + // LeaveStartDate = item.LeaveStartDate, + // LeaveEndDate = item.LeaveEndDate, + // KeycloakId = item.KeycloakUserId + // }; + + // result.Add(resData); + //} + + //return Success(result); } ///