fix : Optimize Leave API
This commit is contained in:
parent
12733ea779
commit
b3fb153bbf
2 changed files with 109 additions and 9 deletions
|
|
@ -15,6 +15,7 @@ using BMA.EHR.Application.Repositories.Commands;
|
|||
using BMA.EHR.Application.Repositories.Leaves.TimeAttendants;
|
||||
using BMA.EHR.Domain.Models.Leave.Commons;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using BMA.EHR.Application.Responses.Profiles;
|
||||
|
||||
namespace BMA.EHR.Leave.Service.Controllers
|
||||
{
|
||||
|
|
@ -817,12 +818,19 @@ 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>();
|
||||
|
||||
foreach (var item in data)
|
||||
{
|
||||
var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(item.KeycloakUserId, AccessToken);
|
||||
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
|
||||
{
|
||||
|
|
@ -1571,20 +1579,25 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
var leaveTypes = await _leaveTypeRepository.GetAllAsync();
|
||||
var thisYear = DateTime.Now.Year;
|
||||
|
||||
var sendList = await _leaveRequestRepository.GetSumSendLeaveAsync(thisYear);
|
||||
var approveList = await _leaveRequestRepository.GetSumApproveLeaveAsync(thisYear);
|
||||
var rejectList = await _leaveRequestRepository.GetSumRejectLeaveAsync(thisYear);
|
||||
var deleteList = await _leaveRequestRepository.GetSumDeleteLeaveAsync(thisYear);
|
||||
|
||||
var result = new List<dynamic>();
|
||||
foreach (var leaveType in leaveTypes)
|
||||
{
|
||||
var send = await _leaveRequestRepository.GetSumSendLeaveByTypeForUserAsync(userId, leaveType.Id,
|
||||
thisYear);
|
||||
var sendData = sendList.FirstOrDefault(x => x.KeycloakUserId == userId && x.LeaveTypeId == leaveType.Id);
|
||||
var send = sendData == null ? 0 : sendData.SumLeaveDay;
|
||||
|
||||
var approve =
|
||||
await _leaveRequestRepository.GetSumApproveLeaveByTypeForUserAsync(userId, leaveType.Id, thisYear);
|
||||
var approveData = approveList.FirstOrDefault(x => x.KeycloakUserId == userId && x.LeaveTypeId == leaveType.Id);
|
||||
var approve = approveData == null ? 0 : approveData.SumLeaveDay;
|
||||
|
||||
var reject =
|
||||
await _leaveRequestRepository.GetSumRejectLeaveByTypeForUserAsync(userId, leaveType.Id, thisYear);
|
||||
var rejectData = rejectList.FirstOrDefault(x => x.KeycloakUserId == userId && x.LeaveTypeId == leaveType.Id);
|
||||
var reject = rejectData == null ? 0 : rejectData.SumLeaveDay;
|
||||
|
||||
var delete =
|
||||
await _leaveRequestRepository.GetSumDeleteLeaveByTypeForUserAsync(userId, leaveType.Id, thisYear);
|
||||
var deleteData = deleteList.FirstOrDefault(x => x.KeycloakUserId == userId && x.LeaveTypeId == leaveType.Id);
|
||||
var delete = deleteData == null ? 0 : deleteData.SumLeaveDay;
|
||||
|
||||
var data = new
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue