diff --git a/BMA.EHR.Application/Repositories/GenericRepository.cs b/BMA.EHR.Application/Repositories/GenericRepository.cs index a2dcc868..e7647057 100644 --- a/BMA.EHR.Application/Repositories/GenericRepository.cs +++ b/BMA.EHR.Application/Repositories/GenericRepository.cs @@ -43,6 +43,8 @@ namespace BMA.EHR.Application.Repositories protected bool? IsPlacementAdmin => _httpContextAccessor?.HttpContext?.User?.IsInRole("placement1"); + protected string? AccessToken => _httpContextAccessor?.HttpContext?.Request.Headers["Authorization"]; + #endregion #region " Methods " diff --git a/BMA.EHR.Application/Repositories/Leaves/GenericLeaveRepository.cs b/BMA.EHR.Application/Repositories/Leaves/GenericLeaveRepository.cs index 8b80c36e..712a49de 100644 --- a/BMA.EHR.Application/Repositories/Leaves/GenericLeaveRepository.cs +++ b/BMA.EHR.Application/Repositories/Leaves/GenericLeaveRepository.cs @@ -37,6 +37,8 @@ namespace BMA.EHR.Application.Repositories.Leaves protected bool? IsPlacementAdmin => _httpContextAccessor?.HttpContext?.User?.IsInRole("placement1"); + protected string? AccessToken => _httpContextAccessor?.HttpContext?.Request.Headers["Authorization"]; + #endregion #region " Methods " diff --git a/BMA.EHR.Application/Repositories/Leaves/LeaveRequests/LeaveRequestRepository.cs b/BMA.EHR.Application/Repositories/Leaves/LeaveRequests/LeaveRequestRepository.cs index 1a9b3d61..24b07531 100644 --- a/BMA.EHR.Application/Repositories/Leaves/LeaveRequests/LeaveRequestRepository.cs +++ b/BMA.EHR.Application/Repositories/Leaves/LeaveRequests/LeaveRequestRepository.cs @@ -259,7 +259,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests throw new Exception(GlobalMessages.DataNotFound); } - var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(rawData.KeycloakUserId); + var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(rawData.KeycloakUserId, AccessToken ?? ""); if (profile == null) { throw new Exception(GlobalMessages.DataNotFound); @@ -292,7 +292,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests throw new Exception(GlobalMessages.DataNotFound); } - var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(rawData.KeycloakUserId); + var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(rawData.KeycloakUserId, AccessToken ?? ""); if (profile == null) { throw new Exception(GlobalMessages.DataNotFound); @@ -404,7 +404,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests throw new Exception("คำขอนี้ยังไม่ได้รับการอนุมัติจากผู้บังคับบัญชา ไม่สามารถทำรายการได้"); } - var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(rawData.KeycloakUserId); + var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(rawData.KeycloakUserId,AccessToken); if (profile == null) { throw new Exception(GlobalMessages.DataNotFound); @@ -464,7 +464,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests throw new Exception("คำขอนี้ยังไม่ได้รับการอนุมัติจากผู้บังคับบัญชา ไม่สามารถทำรายการได้"); } - var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(rawData.KeycloakUserId); + var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(rawData.KeycloakUserId, AccessToken); if (profile == null) { throw new Exception(GlobalMessages.DataNotFound); @@ -516,11 +516,11 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests return 0.0; } - public async Task GetSumApproveLeaveByRangeForUser(Guid keycloakUserId,DateTime startDate, DateTime endDate) + public async Task GetSumApproveLeaveByRangeForUser(Guid keycloakUserId, DateTime startDate, DateTime endDate) { var data = await _dbContext.Set().AsQueryable() .Include(x => x.Type) - .Where(x => x.KeycloakUserId == keycloakUserId) + .Where(x => x.KeycloakUserId == keycloakUserId) .Where(x => x.LeaveStartDate.Date >= startDate.Date && x.LeaveStartDate.Date <= endDate.Date) .Where(x => x.LeaveStatus == "APPROVE") .ToListAsync(); diff --git a/BMA.EHR.Application/Repositories/Leaves/TimeAttendants/AdditionalCheckRequestRepository.cs b/BMA.EHR.Application/Repositories/Leaves/TimeAttendants/AdditionalCheckRequestRepository.cs index 88f61ab3..f2c99845 100644 --- a/BMA.EHR.Application/Repositories/Leaves/TimeAttendants/AdditionalCheckRequestRepository.cs +++ b/BMA.EHR.Application/Repositories/Leaves/TimeAttendants/AdditionalCheckRequestRepository.cs @@ -72,7 +72,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.TimeAttendants await base.AddAsync(entity); var userId = UserId != null ? Guid.Parse(UserId) : Guid.Empty; - var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(userId); + var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(userId, AccessToken ?? ""); var profile_id = profile == null ? Guid.Empty : profile.Id; var rootOc = _userProfileRepository.GetRootOcId(profile_id); @@ -88,7 +88,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.TimeAttendants // send inbox and notification var subject_str = $"มีการขออนุมัติลงเวลากรณีพิเศษ"; - var body_str = $"โปรดพิจารณาคำร้องขอลงเวลาในกรณีพิเศษจาก {profile.Prefix.Name}{profile.FirstName} {profile.LastName} ในวันที่ {entity.CheckDate.Date.ToThaiShortDate2()}"; + var body_str = $"โปรดพิจารณาคำร้องขอลงเวลาในกรณีพิเศษจาก {profile.Prefix}{profile.FirstName} {profile.LastName} ในวันที่ {entity.CheckDate.Date.ToThaiShortDate2()}"; var subject = subject_str; var body = body_str; diff --git a/BMA.EHR.Application/Repositories/UserProfileRepository.cs b/BMA.EHR.Application/Repositories/UserProfileRepository.cs index 69b15c8c..f2aa2ffb 100644 --- a/BMA.EHR.Application/Repositories/UserProfileRepository.cs +++ b/BMA.EHR.Application/Repositories/UserProfileRepository.cs @@ -61,18 +61,31 @@ namespace BMA.EHR.Application.Repositories return data; } - public async Task GetProfileByKeycloakIdAsync(Guid keycloakId) + public async Task GetProfileByKeycloakIdAsync(Guid keycloakId, string? accessToken) { try { - var data = await _dbContext.Set().AsQueryable() - .Include(p => p.Prefix) - .Include(p => p.Position) - .Include(p => p.PositionLevel) - .Include(p => p.Salaries) - .FirstOrDefaultAsync(p => p.KeycloakId == keycloakId); + var apiPath = $"{_configuration["API"]}/org/dotnet/keycloak/{keycloakId}"; - return data; + + var apiResult = await GetExternalAPIAsync(apiPath, accessToken ?? ""); + if (apiResult != null) + { + var raw = JsonConvert.DeserializeObject(apiResult); + if (raw != null) + return raw.Result; + } + + return null; + + //var data = await _dbContext.Set().AsQueryable() + // .Include(p => p.Prefix) + // .Include(p => p.Position) + // .Include(p => p.PositionLevel) + // .Include(p => p.Salaries) + // .FirstOrDefaultAsync(p => p.KeycloakId == keycloakId); + + //return data; } catch { diff --git a/BMA.EHR.Application/Responses/Profiles/GetProfileByKeycloakIdDto.cs b/BMA.EHR.Application/Responses/Profiles/GetProfileByKeycloakIdDto.cs new file mode 100644 index 00000000..951ce149 --- /dev/null +++ b/BMA.EHR.Application/Responses/Profiles/GetProfileByKeycloakIdDto.cs @@ -0,0 +1,58 @@ +using BMA.EHR.Domain.Models.HR; + +namespace BMA.EHR.Application.Responses.Profiles +{ + public class GetProfileByKeycloakIdDto + { + public Guid Id { get; set; } + + public string? Prefix { get; set; } + public string? FirstName { get; set; } + public string? LastName { get; set; } + public string? CitizenId { get; set; } + + public DateTime BirthDate { get; set; } = DateTime.MinValue; + + public DateTime? DateStart { get; set; } = DateTime.MinValue; + + public DateTime? DateAppoint { get; set; } = DateTime.MinValue; + + public string? Position { get; set; } + + public Guid? OcId { get; set; } + + public PosType? PosType { get; set; } + + public PosLevel? PosLevel { get; set; } + + public string? Oc { get; set; } + + public List Salaries { get; set; } = new(); + + } + + public class PosLevel + { + public Guid Id { get; set; } + public DateTime CreatedAt { get; set; } + public Guid CreatedUserId { get; set; } + public DateTime LastUpdatedAt { get; set; } + public Guid LastUpdateUserId { get; set; } + public string CreatedFullName { get; set; } + public string LastUpdateFullName { get; set; } + public string PosLevelName { get; set; } + public string PosTypeId { get; set; } + } + + public class PosType + { + public Guid Id { get; set; } + public DateTime CreatedAt { get; set; } + public Guid CreatedUserId { get; set; } + public DateTime LastUpdatedAt { get; set; } + public Guid LastUpdateUserId { get; set; } + public string CreatedFullName { get; set; } + public string LastUpdateFullName { get; set; } + public string PosTypeName { get; set; } + } +} diff --git a/BMA.EHR.Application/Responses/Profiles/GetProfileByKeycloakIdResultDto.cs b/BMA.EHR.Application/Responses/Profiles/GetProfileByKeycloakIdResultDto.cs new file mode 100644 index 00000000..015781aa --- /dev/null +++ b/BMA.EHR.Application/Responses/Profiles/GetProfileByKeycloakIdResultDto.cs @@ -0,0 +1,11 @@ +namespace BMA.EHR.Application.Responses.Profiles +{ + public class GetProfileByKeycloakIdResultDto + { + public string Message { get; set; } = string.Empty; + + public int Status { get; set; } = -1; + + public GetProfileByKeycloakIdDto? Result { get; set; } + } +} diff --git a/BMA.EHR.Application/Responses/Profiles/SearchProfileResultDto.cs b/BMA.EHR.Application/Responses/Profiles/SearchProfileResultDto.cs index 95c26ed7..5adcb364 100644 --- a/BMA.EHR.Application/Responses/Profiles/SearchProfileResultDto.cs +++ b/BMA.EHR.Application/Responses/Profiles/SearchProfileResultDto.cs @@ -2,7 +2,7 @@ { public class SearchProfileResultDto { - public string Messsage { get; set; } = string.Empty; + public string Message { get; set; } = string.Empty; public int Status { get; set; } = -1; diff --git a/BMA.EHR.Leave.Service/Controllers/LeaveController.cs b/BMA.EHR.Leave.Service/Controllers/LeaveController.cs index 3e71e0f6..9f4d067d 100644 --- a/BMA.EHR.Leave.Service/Controllers/LeaveController.cs +++ b/BMA.EHR.Leave.Service/Controllers/LeaveController.cs @@ -421,7 +421,7 @@ namespace BMA.EHR.Leave.Service.Controllers public async Task> CheckInAsync([FromForm] CheckTimeDto data) { var userId = UserId == null ? Guid.Empty : Guid.Parse(UserId); - var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(userId); + var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(userId, AccessToken); if (profile == null) return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound); @@ -583,7 +583,7 @@ namespace BMA.EHR.Leave.Service.Controllers { var userId = UserId == null ? Guid.Empty : Guid.Parse(UserId); - var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(userId); + var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(userId, AccessToken); if (profile == null) { return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound); @@ -751,7 +751,7 @@ namespace BMA.EHR.Leave.Service.Controllers } else { - var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(d.KeycloakUserId); + var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(d.KeycloakUserId, AccessToken); if (profile == null) { return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound); @@ -844,7 +844,7 @@ namespace BMA.EHR.Leave.Service.Controllers var userId = UserId == null ? Guid.Empty : Guid.Parse(UserId); - var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(userId); + var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(userId, AccessToken); if (profile == null) { return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound); @@ -973,7 +973,7 @@ namespace BMA.EHR.Leave.Service.Controllers { ProfileId = p.Id, CitizenId = p.CitizenId ?? "", - FullName = $"{p.Prefix ?? "" }{p.FirstName ?? ""} {p.LastName ?? ""}", + FullName = $"{p.Prefix ?? ""}{p.FirstName ?? ""} {p.LastName ?? ""}", StartTimeMorning = duty.StartTimeMorning, LeaveTimeAfterNoon = duty.EndTimeAfternoon, EffectiveDate = effectiveDate == null ? null : effectiveDate.EffectiveDate.Value.Date @@ -1129,7 +1129,7 @@ namespace BMA.EHR.Leave.Service.Controllers foreach (var data in rawData) { - var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(data.KeycloakUserId); + var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(data.KeycloakUserId, AccessToken); if (profile == null) { return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound); @@ -1148,7 +1148,7 @@ namespace BMA.EHR.Leave.Service.Controllers var resObj = new GetAdditionalCheckRequestDto { Id = data.Id, - FullName = $"{profile.Prefix.Name}{profile.FirstName} {profile.LastName}", + FullName = $"{profile.Prefix}{profile.FirstName} {profile.LastName}", CreatedAt = data.CreatedAt, CheckDate = data.CheckDate, CheckInEdit = data.CheckInEdit, @@ -1365,7 +1365,7 @@ namespace BMA.EHR.Leave.Service.Controllers } else { - var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(d.KeycloakUserId); + var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(d.KeycloakUserId, AccessToken); if (profile == null) { return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound); @@ -1457,7 +1457,7 @@ namespace BMA.EHR.Leave.Service.Controllers foreach (var data in rawData) { - var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(data.KeycloakUserId); + var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(data.KeycloakUserId, AccessToken); if (profile == null) { return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound); @@ -1661,7 +1661,7 @@ namespace BMA.EHR.Leave.Service.Controllers [ProducesResponseType(StatusCodes.Status500InternalServerError)] public async Task> GetLeaveSummaryByProfileAsync(Guid id, [FromBody] GetLeaveSummaryDto req) { - var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(id); + var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(id, AccessToken); var thisYear = DateTime.Now.Year; var startDate = req.StartDate; diff --git a/BMA.EHR.Leave.Service/Controllers/LeaveRequestController.cs b/BMA.EHR.Leave.Service/Controllers/LeaveRequestController.cs index 0b56c97a..95579c11 100644 --- a/BMA.EHR.Leave.Service/Controllers/LeaveRequestController.cs +++ b/BMA.EHR.Leave.Service/Controllers/LeaveRequestController.cs @@ -83,6 +83,8 @@ namespace BMA.EHR.Leave.Service.Controllers private bool? PlacementAdmin => _httpContextAccessor?.HttpContext?.User?.IsInRole("placement1"); + protected string? AccessToken => _httpContextAccessor?.HttpContext?.Request.Headers["Authorization"]; + private Guid OcId { get @@ -122,7 +124,7 @@ namespace BMA.EHR.Leave.Service.Controllers var thisYear = DateTime.Now.Year; - var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(userId); + var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(userId, AccessToken); if (profile == null) { @@ -307,8 +309,8 @@ namespace BMA.EHR.Leave.Service.Controllers leaveRequest.LeaveTypeCode = leaveType.Code; leaveRequest.Dear = approver; - leaveRequest.PositionName = profile.Position == null ? "" : profile.Position.Name; - leaveRequest.PositionLevelName = profile.PositionLevel == null ? "" : profile.PositionLevel.Name; + leaveRequest.PositionName = profile.Position == null ? "" : profile.Position; + leaveRequest.PositionLevelName = profile.PosLevel == null ? "" : profile.PosLevel.PosLevelName; leaveRequest.OrganizationName = profile.Oc ?? ""; @@ -349,7 +351,7 @@ namespace BMA.EHR.Leave.Service.Controllers // return Error("ไม่สามารถขอลาในช่วงเวลาเดียวกันได้"); // } - var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(userId); + var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(userId, AccessToken); if (profile == null) { @@ -533,8 +535,8 @@ namespace BMA.EHR.Leave.Service.Controllers leaveRequest.LeaveTypeCode = leaveType.Code; leaveRequest.Dear = approver; - leaveRequest.PositionName = profile.Position == null ? "" : profile.Position.Name; - leaveRequest.PositionLevelName = profile.PositionLevel == null ? "" : profile.PositionLevel.Name; + leaveRequest.PositionName = profile.Position == null ? "" : profile.Position; + leaveRequest.PositionLevelName = profile.PosLevel == null ? "" : profile.PosLevel.PosLevelName; leaveRequest.OrganizationName = profile.Oc ?? ""; @@ -594,7 +596,7 @@ namespace BMA.EHR.Leave.Service.Controllers var userId = UserId == null ? Guid.Empty : Guid.Parse(UserId); var thisYear = DateTime.Now.Year; - var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(userId); + var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(userId, AccessToken); if (profile == null) { return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound); @@ -627,11 +629,11 @@ namespace BMA.EHR.Leave.Service.Controllers DateSendLeave = DateTime.Now.Date, LeaveTypeName = leaveType.Name, - FullName = $"{profile.Prefix.Name}{profile.FirstName} {profile.LastName}", + FullName = $"{profile.Prefix}{profile.FirstName} {profile.LastName}", Dear = approver, - PositionName = profile.Position == null ? "" : profile.Position.Name, - PositionLevelName = profile.PositionLevel == null ? "" : profile.PositionLevel.Name, + PositionName = profile.Position == null ? "" : profile.Position, + PositionLevelName = profile.PosLevel == null ? "" : profile.PosLevel.PosLevelName, OrganizationName = profile.Oc ?? "", LeaveLimit = leaveType.Limit, @@ -664,7 +666,7 @@ namespace BMA.EHR.Leave.Service.Controllers { var userId = UserId == null ? Guid.Empty : Guid.Parse(UserId); - var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(userId); + var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(userId, AccessToken); var govAge = profile!.DateStart!.Value.Date.DiffDay(DateTime.Now.Date); @@ -813,7 +815,7 @@ namespace BMA.EHR.Leave.Service.Controllers foreach (var item in data) { - var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(item.KeycloakUserId); + var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(item.KeycloakUserId, AccessToken); var resData = new GetLeaveRequestCalendarResultDto { @@ -822,7 +824,7 @@ namespace BMA.EHR.Leave.Service.Controllers LeaveTypeId = item.Type.Id, DateSendLeave = item.CreatedAt.Date, Status = item.LeaveStatus, - FullName = $"{profile.Prefix.Name}{profile.FirstName} {profile.LastName}", + FullName = $"{profile.Prefix}{profile.FirstName} {profile.LastName}", LeaveStartDate = item.LeaveStartDate, LeaveEndDate = item.LeaveEndDate, KeycloakId = item.KeycloakUserId @@ -851,7 +853,7 @@ namespace BMA.EHR.Leave.Service.Controllers { var userId = UserId == null ? Guid.Empty : Guid.Parse(UserId); - var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(userId); + var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(userId, AccessToken); if (profile == null) { return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound); @@ -869,7 +871,7 @@ namespace BMA.EHR.Leave.Service.Controllers Id = item.Id, LeaveTypeId = item.Type.Id, LeaveTypeName = item.Type.Name, - FullName = $"{profile.Prefix.Name}{profile.FirstName} {profile.LastName}", + FullName = $"{profile.Prefix}{profile.FirstName} {profile.LastName}", DateSendLeave = item.CreatedAt.Date, IsDelete = item.LeaveStatus == "DELETE", Status = item.LeaveStatus, @@ -910,7 +912,7 @@ namespace BMA.EHR.Leave.Service.Controllers return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound); } - var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(rawData.KeycloakUserId); + var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(rawData.KeycloakUserId, AccessToken); if (profile == null) { @@ -937,7 +939,7 @@ namespace BMA.EHR.Leave.Service.Controllers LeaveRange = rawData.LeaveRange ?? "", LeaveTypeName = rawData.Type.Name, LeaveTypeId = rawData.Type.Id, - FullName = $"{profile.Prefix.Name}{profile.FirstName} {profile.LastName}", + FullName = $"{profile.Prefix}{profile.FirstName} {profile.LastName}", DateSendLeave = rawData.CreatedAt, Status = rawData.LeaveStatus, LeaveStartDate = rawData.LeaveStartDate, @@ -1046,7 +1048,7 @@ namespace BMA.EHR.Leave.Service.Controllers foreach (var item in rawData) { - var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(item.KeycloakUserId); + var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(item.KeycloakUserId, AccessToken); // Get Organization var org = await _userProfileRepository.GetOrganizationById(profile.OcId ?? Guid.Empty); @@ -1063,14 +1065,14 @@ namespace BMA.EHR.Leave.Service.Controllers Id = item.Id, LeaveTypeId = item.Type.Id, LeaveTypeName = item.Type.Name, - FullName = $"{profile.Prefix.Name}{profile.FirstName} {profile.LastName}", + FullName = $"{profile.Prefix}{profile.FirstName} {profile.LastName}", DateSendLeave = item.CreatedAt.Date, Status = item.LeaveStatus, CitizenId = profile.CitizenId ?? "", LeaveStartDate = item.LeaveStartDate, LeaveEndDate = item.LeaveEndDate, - Position = profile.Position == null ? "" : profile.Position.Name, - Level = profile.PositionLevel == null ? "" : profile.PositionLevel.Name, + Position = profile.Position == null ? "" : profile.Position, + Level = profile.PosLevel == null ? "" : profile.PosLevel.PosLevelName, Agency = agency == null ? "" : agency.Name, Org = gov_agency == null ? "" : gov_agency.Name, LeaveRange = item.LeaveRange ?? "ALL" @@ -1165,13 +1167,13 @@ namespace BMA.EHR.Leave.Service.Controllers foreach (var item in rawData) { - var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(item.KeycloakUserId); + var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(item.KeycloakUserId, AccessToken); var res = new GetLeaveCancelRequestResultDto { Id = item.Id, LeaveTypeId = item.Type.Id, LeaveTypeName = item.Type.Name, - FullName = $"{profile.Prefix.Name}{profile.FirstName} {profile.LastName}", + FullName = $"{profile.Prefix}{profile.FirstName} {profile.LastName}", DateSendLeave = item.CreatedAt.Date, Status = item.LeaveCancelStatus }; @@ -1210,7 +1212,7 @@ namespace BMA.EHR.Leave.Service.Controllers return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound); } - var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(rawData.KeycloakUserId); + var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(rawData.KeycloakUserId, AccessToken); if (profile == null) { @@ -1221,7 +1223,7 @@ namespace BMA.EHR.Leave.Service.Controllers { Id = rawData.Id, LeaveTypeName = rawData.Type.Name, - FullName = $"{profile.Prefix.Name}{profile.FirstName} {profile.LastName}", + FullName = $"{profile.Prefix}{profile.FirstName} {profile.LastName}", Status = rawData.LeaveCancelStatus ?? "", LeaveStartDate = rawData.LeaveStartDate, LeaveEndDate = rawData.LeaveEndDate, @@ -1404,7 +1406,7 @@ namespace BMA.EHR.Leave.Service.Controllers return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound); } - var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(rawData.KeycloakUserId); + var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(rawData.KeycloakUserId, AccessToken); if (profile == null) { @@ -1444,7 +1446,7 @@ namespace BMA.EHR.Leave.Service.Controllers LeaveTypeName = rawData.Type.Name, LeaveTypeId = rawData.Type.Id, - FullName = $"{profile.Prefix.Name}{profile.FirstName} {profile.LastName}", + FullName = $"{profile.Prefix}{profile.FirstName} {profile.LastName}", DateSendLeave = rawData.CreatedAt, Status = rawData.LeaveStatus, LeaveStartDate = rawData.LeaveStartDate,