fix: optimize leave calendar api
This commit is contained in:
parent
ec4d0ea309
commit
bef050f835
1 changed files with 48 additions and 26 deletions
|
|
@ -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<GetProfileByKeycloakIdDto>();
|
||||
|
||||
var result = new List<GetLeaveRequestCalendarResultDto>();
|
||||
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<GetProfileByKeycloakIdDto>();
|
||||
|
||||
//var result = new List<GetLeaveRequestCalendarResultDto>();
|
||||
|
||||
//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);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue