This commit is contained in:
Suphonchai Phoonsawat 2024-06-20 13:37:25 +07:00
parent 6c09c68c5c
commit 1ae6f5e8d1
23 changed files with 304 additions and 123 deletions

View file

@ -45,7 +45,7 @@ namespace BMA.EHR.Application.Repositories.Commands
get
{
if (UserId != null || UserId != "")
return _userProfileRepository.GetUserOCId(Guid.Parse(UserId!));
return _userProfileRepository.GetUserOCId(Guid.Parse(UserId!), AccessToken);
else
return Guid.Empty;
}

View file

@ -63,7 +63,7 @@ namespace BMA.EHR.Application.Repositories.Commands
get
{
if (UserId != null || UserId != "")
return _userProfileRepository.GetUserOCId(Guid.Parse(UserId!));
return _userProfileRepository.GetUserOCId(Guid.Parse(UserId!), AccessToken);
else
return Guid.Empty;
}

View file

@ -101,6 +101,27 @@ namespace BMA.EHR.Application.Repositories
}
}
protected async Task<bool> PostExternalAPIBooleanAsync(string apiPath, string accessToken, object? body)
{
try
{
var json = JsonConvert.SerializeObject(body);
var stringContent = new StringContent(json, UnicodeEncoding.UTF8, "application/json");
stringContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken.Replace("Bearer ", ""));
var _res = await client.PostAsync(apiPath, stringContent);
return _res.IsSuccessStatusCode;
}
}
catch
{
throw;
}
}
#endregion
public async Task<Guid> GetProfileOrganizationAsync(string citizenId)

View file

@ -55,7 +55,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
get
{
if (UserId != null || UserId != "")
return _userProfileRepository.GetUserOCId(Guid.Parse(UserId!));
return _userProfileRepository.GetUserOCId(Guid.Parse(UserId!), AccessToken);
else
return Guid.Empty;
}

View file

@ -46,7 +46,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
get
{
if (UserId != null || UserId != "")
return _userProfileRepository.GetUserOCId(Guid.Parse(UserId!));
return _userProfileRepository.GetUserOCId(Guid.Parse(UserId!), AccessToken);
else
return Guid.Empty;
}

View file

@ -57,7 +57,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.TimeAttendants
get
{
if (UserId != null || UserId != "")
return _userProfileRepository.GetUserOCId(Guid.Parse(UserId!));
return _userProfileRepository.GetUserOCId(Guid.Parse(UserId!), AccessToken);
else
return Guid.Empty;
}
@ -75,7 +75,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.TimeAttendants
var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(userId, AccessToken ?? "");
var profile_id = profile == null ? Guid.Empty : profile.Id;
var rootOc = _userProfileRepository.GetRootOcId(profile_id);
var rootOc = _userProfileRepository.GetRootOcId(profile_id, AccessToken);
var approver = string.Empty;
var list = new List<OrganizationApproverResponse>();
if (rootOc != null)

View file

@ -46,7 +46,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.TimeAttendants
get
{
if (UserId != null || UserId != "")
return _userProfileRepository.GetUserOCId(Guid.Parse(UserId!));
return _userProfileRepository.GetUserOCId(Guid.Parse(UserId!), AccessToken);
else
return Guid.Empty;
}

View file

@ -46,7 +46,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.TimeAttendants
get
{
if (UserId != null || UserId != "")
return _userProfileRepository.GetUserOCId(Guid.Parse(UserId!));
return _userProfileRepository.GetUserOCId(Guid.Parse(UserId!), AccessToken);
else
return Guid.Empty;
}

View file

@ -46,7 +46,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.TimeAttendants
get
{
if (UserId != null || UserId != "")
return _userProfileRepository.GetUserOCId(Guid.Parse(UserId!));
return _userProfileRepository.GetUserOCId(Guid.Parse(UserId!), AccessToken);
else
return Guid.Empty;
}

View file

@ -46,7 +46,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.TimeAttendants
get
{
if (UserId != null || UserId != "")
return _userProfileRepository.GetUserOCId(Guid.Parse(UserId!));
return _userProfileRepository.GetUserOCId(Guid.Parse(UserId!), AccessToken);
else
return Guid.Empty;
}

View file

@ -47,7 +47,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.TimeAttendants
get
{
if (UserId != null || UserId != "")
return _userProfileRepository.GetUserOCId(Guid.Parse(UserId!));
return _userProfileRepository.GetUserOCId(Guid.Parse(UserId!), AccessToken);
else
return Guid.Empty;
}

View file

@ -92,31 +92,43 @@ namespace BMA.EHR.Application.Repositories
}
}
public async Task<bool> UpdateDutyTimeAsync(Guid profileId, Guid roundId, DateTime effectiveDate)
public async Task<bool> UpdateDutyTimeAsync(Guid profileId, Guid roundId, DateTime effectiveDate, string? accessToken)
{
try
{
var profile = await _dbContext.Set<Profile>()
.AsQueryable()
.Include(x => x.Prefix)
.FirstOrDefaultAsync(x => x.Id == profileId);
var apiPath = $"{_configuration["API"]}/org/dotnet/update-dutytime";
if (profile == null)
var body = new
{
throw new Exception(GlobalMessages.DataNotFound);
}
else
{
var fullName = $"{profile.Prefix.Name}{profile.FirstName} {profile.LastName}";
Console.WriteLine(fullName);
EffevtiveDate = effectiveDate,
RoundId = roundId,
ProfileId = profileId
};
profile.DutyTimeId = roundId;
profile.DutyTimeEffectiveDate = effectiveDate;
var apiResult = await PostExternalAPIBooleanAsync(apiPath, accessToken ?? "", body);
await UpdateAsync(profile);
return apiResult;
//var profile = await _dbContext.Set<Profile>()
// .AsQueryable()
// .Include(x => x.Prefix)
// .FirstOrDefaultAsync(x => x.Id == profileId);
return true;
}
//if (profile == null)
//{
// throw new Exception(GlobalMessages.DataNotFound);
//}
//else
//{
// var fullName = $"{profile.Prefix.Name}{profile.FirstName} {profile.LastName}";
// Console.WriteLine(fullName);
// profile.DutyTimeId = roundId;
// profile.DutyTimeEffectiveDate = effectiveDate;
// await UpdateAsync(profile);
// return true;
//}
}
catch
{
@ -124,16 +136,21 @@ namespace BMA.EHR.Application.Repositories
}
}
public async Task<List<Profile>> GetProfileWithKeycloak()
public async Task<List<GetProfileByKeycloakIdDto>> GetProfileWithKeycloak(string? accessToken)
{
try
{
var data = await _dbContext.Set<Profile>().AsQueryable()
.Where(x => x.ProfileType == "officer")
.Where(x => x.KeycloakId != null)
.ToListAsync();
var apiPath = $"{_configuration["API"]}/org/dotnet/keycloak";
return data;
var apiResult = await GetExternalAPIAsync(apiPath, accessToken ?? "");
if (apiResult != null)
{
var raw = JsonConvert.DeserializeObject<GetListProfileByKeycloakIdResultDto>(apiResult);
if (raw != null)
return raw.Result;
}
return null;
}
catch
{
@ -193,28 +210,51 @@ namespace BMA.EHR.Application.Repositories
}
}
public async Task<List<Profile>> SearchProfileEmployee(string? citizenId, string? firstName, string? lastName)
public async Task<List<SearchProfileDto>> SearchProfileEmployee(string? citizenId, string? firstName, string? lastName, string accessToken)
{
try
{
var data = _dbContext.Set<Profile>().AsQueryable()
.Where(x => x.ProfileType == "employee");
var apiPath = $"{_configuration["API"]}/org/dotnet/search-employee";
var body = new
{
citizenId = citizenId,
firstName = firstName,
lastName = lastName
};
var profiles = new List<SearchProfileDto>();
var apiResult = await PostExternalAPIAsync(apiPath, accessToken, body);
if (apiResult != null)
{
var raw = JsonConvert.DeserializeObject<SearchProfileResultDto>(apiResult);
if (raw != null && raw.Result != null)
{
profiles.AddRange(raw.Result);
}
}
return profiles;
if (citizenId != null)
data = data.Where(x => x.CitizenId!.Contains(citizenId));
if (firstName != null)
data = data.Where(x => x.FirstName!.Contains(firstName));
if (lastName != null)
data = data.Where(x => x.LastName!.Contains(lastName));
data = data.Include(x => x.Prefix);
//.Include(x => x.PosNoEmployee);
//var data = _dbContext.Set<Profile>().AsQueryable()
// .Where(x => x.ProfileType == "employee");
return await data.ToListAsync();
//if (citizenId != null)
// data = data.Where(x => x.CitizenId!.Contains(citizenId));
//if (firstName != null)
// data = data.Where(x => x.FirstName!.Contains(firstName));
//if (lastName != null)
// data = data.Where(x => x.LastName!.Contains(lastName));
//data = data.Include(x => x.Prefix);
////.Include(x => x.PosNoEmployee);
//return await data.ToListAsync();
}
catch
{
@ -222,17 +262,22 @@ namespace BMA.EHR.Application.Repositories
}
}
public string GetUserFullName(Guid keycloakId)
public string GetUserFullName(Guid keycloakId, string? accessToken)
{
try
{
var data = _dbContext.Set<Profile>().AsQueryable()
.Include(x => x.Prefix)
.Where(x => x.KeycloakId == keycloakId)
.Select(x => $"{x.Prefix!.Name}{x.FirstName} {x.LastName}")
.FirstOrDefault();
var apiPath = $"{_configuration["API"]}/org/dotnet/keycloak";
var apiResult = GetExternalAPIAsync(apiPath, accessToken ?? "");
if (apiResult.Result != null)
{
var raw = JsonConvert.DeserializeObject<GetUserFullNameResultDto>(apiResult.Result);
if (raw != null)
return raw.Result;
}
return string.Empty;
return data ?? "-";
}
catch
{
@ -240,21 +285,34 @@ namespace BMA.EHR.Application.Repositories
}
}
public Guid GetUserOCId(Guid keycloakId)
public Guid GetUserOCId(Guid keycloakId, string? accessToken)
{
try
{
var data = _dbContext.Set<ProfilePosition>()
.Include(x => x.Profile)
.Include(x => x.OrganizationPosition)
.ThenInclude(x => x.Organization)
.Where(x => x.Profile!.KeycloakId == keycloakId)
.FirstOrDefault();
if (data == null)
throw new Exception(GlobalMessages.DataNotFound);
var apiPath = $"{_configuration["API"]}/org/dotnet/user-oc/{keycloakId}";
return data.OrganizationPosition!.Organization!.Id;
var apiResult = GetExternalAPIAsync(apiPath, accessToken ?? "");
if (apiResult.Result != null)
{
var raw = JsonConvert.DeserializeObject<GetUserOCIdResultDto>(apiResult.Result);
if (raw != null)
return raw.Result!.RootId;
}
return Guid.Empty;
//var data = _dbContext.Set<ProfilePosition>()
// .Include(x => x.Profile)
// .Include(x => x.OrganizationPosition)
// .ThenInclude(x => x.Organization)
// .Where(x => x.Profile!.KeycloakId == keycloakId)
// .FirstOrDefault();
//if (data == null)
// throw new Exception(GlobalMessages.DataNotFound);
//return data.OrganizationPosition!.Organization!.Id;
}
catch
{
@ -262,14 +320,26 @@ namespace BMA.EHR.Application.Repositories
}
}
public Guid? GetRootOcId(Guid ocId)
public Guid? GetRootOcId(Guid ocId, string? accessToken)
{
try
{
var data = _dbContext.Set<OrganizationEntity>()
.FirstOrDefault(o => o.Id == ocId);
var apiPath = $"{_configuration["API"]}/org/dotnet/root-oc/{ocId}";
return data == null ? Guid.Empty : data.OrganizationAgencyId;
var apiResult = GetExternalAPIAsync(apiPath, accessToken ?? "");
if (apiResult.Result != null)
{
var raw = JsonConvert.DeserializeObject<GetRootOCIdResultDto>(apiResult.Result);
if (raw != null)
return raw.Result;
}
return null;
//var data = _dbContext.Set<OrganizationEntity>()
// .FirstOrDefault(o => o.Id == ocId);
//return data == null ? Guid.Empty : data.OrganizationAgencyId;
}

View file

@ -0,0 +1,11 @@
namespace BMA.EHR.Application.Responses.Profiles
{
public class GetListProfileByKeycloakIdResultDto
{
public string Message { get; set; } = string.Empty;
public int Status { get; set; } = -1;
public List<GetProfileByKeycloakIdDto> Result { get; set; } = new();
}
}

View file

@ -29,6 +29,12 @@ namespace BMA.EHR.Application.Responses.Profiles
public List<ProfileSalary> Salaries { get; set; } = new();
public Guid? Keycloak { get; set; }
public string? PosNo { get; set; }
public string? PosNoEmployee { get; set; }
}
public class PosLevel

View file

@ -0,0 +1,11 @@
namespace BMA.EHR.Application.Responses.Profiles
{
public class GetRootOCIdResultDto
{
public string Message { get; set; } = string.Empty;
public int Status { get; set; } = -1;
public Guid Result { get; set; }
}
}

View file

@ -0,0 +1,11 @@
namespace BMA.EHR.Application.Responses.Profiles
{
public class GetUserFullNameResultDto
{
public string Message { get; set; } = string.Empty;
public int Status { get; set; } = -1;
public string Result { get; set; } = string.Empty;
}
}

View file

@ -0,0 +1,29 @@
namespace BMA.EHR.Application.Responses.Profiles
{
public class GetUserOCIdDto
{
public Guid ProfileId { get; set; }
public string Prefix { get; set; } = string.Empty;
public string Rank { get; set; } = string.Empty;
public string Avatar { get; set; } = string.Empty;
public string FirstName { get; set; } = string.Empty;
public string LastName { get; set; } = string.Empty;
public string CitizenId { get; set; } = string.Empty;
public DateTime BirthDate { get; set; } = DateTime.MinValue;
public string Position { get; set; } = string.Empty;
public Guid RootId { get; set; }
public string Root { get; set; } = string.Empty;
public string RootShortName { get; set; } = string.Empty;
}
}

View file

@ -0,0 +1,11 @@
namespace BMA.EHR.Application.Responses.Profiles
{
public class GetUserOCIdResultDto
{
public string Message { get; set; } = string.Empty;
public int Status { get; set; } = -1;
public GetUserOCIdDto? Result { get; set; }
}
}

View file

@ -8,5 +8,13 @@
public string? FirstName { get; set; }
public string? LastName { get; set; }
public string? CitizenId { get; set; }
public Guid? Keycloak { get; set; }
public string? PosNoEmployee { get; set; }
public string? Oc { get; set; }
public string? PosNo { get; set; }
}
}

View file

@ -102,7 +102,7 @@ namespace BMA.EHR.Leave.Service.Controllers
get
{
if (UserId != null || UserId != "")
return _userProfileRepository.GetUserOCId(Guid.Parse(UserId!));
return _userProfileRepository.GetUserOCId(Guid.Parse(UserId!), AccessToken);
else
return Guid.Empty;
}
@ -687,7 +687,7 @@ namespace BMA.EHR.Leave.Service.Controllers
.Select(d => new CheckInHistoryForAdminDto
{
Id = d.Id,
FullName = _userProfileRepository.GetUserFullName(d.KeycloakUserId),
FullName = _userProfileRepository.GetUserFullName(d.KeycloakUserId, AccessToken),
CheckInDate = d.CheckIn.Date,
CheckInTime = d.CheckIn.ToString("HH:mm:ss"),
@ -773,7 +773,7 @@ namespace BMA.EHR.Leave.Service.Controllers
var result = new CheckInDetailForAdminDto
{
Id = d.Id,
FullName = _userProfileRepository.GetUserFullName(d.KeycloakUserId),
FullName = _userProfileRepository.GetUserFullName(d.KeycloakUserId, AccessToken),
CheckInDate = d.CheckIn.Date,
CheckInTime = d.CheckIn.ToString("HH:mm"),
@ -873,7 +873,7 @@ namespace BMA.EHR.Leave.Service.Controllers
.Select(d => new CheckInProcessHistoryForAdminDto
{
Id = d.Id,
FullName = _userProfileRepository.GetUserFullName(d.KeycloakUserId),
FullName = _userProfileRepository.GetUserFullName(d.KeycloakUserId, AccessToken),
CheckInDate = d.CheckIn.Date,
CheckInTime = d.CheckIn.ToString("HH:mm"),
@ -1387,7 +1387,7 @@ namespace BMA.EHR.Leave.Service.Controllers
var result = new CheckInDetailForAdminDto
{
Id = d.Id,
FullName = _userProfileRepository.GetUserFullName(d.KeycloakUserId),
FullName = _userProfileRepository.GetUserFullName(d.KeycloakUserId, AccessToken),
CheckInDate = d.CheckIn.Date,
CheckInTime = d.CheckIn.ToString("HH:mm"),

View file

@ -87,7 +87,7 @@ namespace BMA.EHR.Leave.Service.Controllers
get
{
if (UserId != null || UserId != "")
return _userProfileRepository.GetUserOCId(Guid.Parse(UserId!));
return _userProfileRepository.GetUserOCId(Guid.Parse(UserId!), AccessToken);
else
return Guid.Empty;
}
@ -113,7 +113,7 @@ namespace BMA.EHR.Leave.Service.Controllers
await _leaveRequestRepository.GetLastLeaveRequestByTypeForUserAsync(data.KeycloakUserId,
data.Type.Id);
var rootOc = _userProfileRepository.GetRootOcId(profile.OcId ?? Guid.Empty);
var rootOc = _userProfileRepository.GetRootOcId(profile.OcId ?? Guid.Empty, AccessToken);
var approver = string.Empty;
if (rootOc != null)
{
@ -164,7 +164,7 @@ namespace BMA.EHR.Leave.Service.Controllers
var fullName = $"{profile!.Prefix}{profile!.FirstName} {profile!.LastName}";
var rootOc = _userProfileRepository.GetRootOcId(profile.OcId ?? Guid.Empty);
var rootOc = _userProfileRepository.GetRootOcId(profile.OcId ?? Guid.Empty, AccessToken);
var approver = string.Empty;
if (rootOc != null)
{
@ -208,7 +208,7 @@ namespace BMA.EHR.Leave.Service.Controllers
var fullName = $"{profile!.Prefix}{profile!.FirstName} {profile!.LastName}";
var rootOc = _userProfileRepository.GetRootOcId(profile.OcId ?? Guid.Empty);
var rootOc = _userProfileRepository.GetRootOcId(profile.OcId ?? Guid.Empty, AccessToken);
var approver = string.Empty;
if (rootOc != null)
{
@ -259,7 +259,7 @@ namespace BMA.EHR.Leave.Service.Controllers
var fullName = $"{profile!.Prefix}{profile!.FirstName} {profile!.LastName}";
var rootOc = _userProfileRepository.GetRootOcId(profile.OcId ?? Guid.Empty);
var rootOc = _userProfileRepository.GetRootOcId(profile.OcId ?? Guid.Empty, AccessToken);
var approver = string.Empty;
if (rootOc != null)
{
@ -342,7 +342,7 @@ namespace BMA.EHR.Leave.Service.Controllers
var fullName = $"{profile!.Prefix}{profile!.FirstName} {profile!.LastName}";
var rootOc = _userProfileRepository.GetRootOcId(profile.OcId ?? Guid.Empty);
var rootOc = _userProfileRepository.GetRootOcId(profile.OcId ?? Guid.Empty, AccessToken);
var approver = string.Empty;
if (rootOc != null)
{
@ -390,7 +390,7 @@ namespace BMA.EHR.Leave.Service.Controllers
var fullName = $"{profile!.Prefix}{profile!.FirstName} {profile!.LastName}";
var rootOc = _userProfileRepository.GetRootOcId(profile.OcId ?? Guid.Empty);
var rootOc = _userProfileRepository.GetRootOcId(profile.OcId ?? Guid.Empty, AccessToken);
var approver = string.Empty;
if (rootOc != null)
{
@ -445,7 +445,7 @@ namespace BMA.EHR.Leave.Service.Controllers
var fullName = $"{profile!.Prefix}{profile!.FirstName} {profile!.LastName}";
var rootOc = _userProfileRepository.GetRootOcId(profile.OcId ?? Guid.Empty);
var rootOc = _userProfileRepository.GetRootOcId(profile.OcId ?? Guid.Empty, AccessToken);
var approver = string.Empty;
if (rootOc != null)
{
@ -487,7 +487,7 @@ namespace BMA.EHR.Leave.Service.Controllers
var fullName = $"{profile!.Prefix}{profile!.FirstName} {profile!.LastName}";
var rootOc = _userProfileRepository.GetRootOcId(profile.OcId ?? Guid.Empty);
var rootOc = _userProfileRepository.GetRootOcId(profile.OcId ?? Guid.Empty, AccessToken);
var approver = string.Empty;
if (rootOc != null)
{
@ -542,7 +542,7 @@ namespace BMA.EHR.Leave.Service.Controllers
var fullName = $"{profile!.Prefix}{profile!.FirstName} {profile!.LastName}";
var rootOc = _userProfileRepository.GetRootOcId(profile.OcId ?? Guid.Empty);
var rootOc = _userProfileRepository.GetRootOcId(profile.OcId ?? Guid.Empty, AccessToken);
var approver = string.Empty;
if (rootOc != null)
{
@ -692,7 +692,7 @@ namespace BMA.EHR.Leave.Service.Controllers
var fullName = $"{profile!.Prefix}{profile!.FirstName} {profile!.LastName}";
var rootOc = _userProfileRepository.GetRootOcId(profile.OcId ?? Guid.Empty);
var rootOc = _userProfileRepository.GetRootOcId(profile.OcId ?? Guid.Empty, AccessToken);
var approver = string.Empty;
if (rootOc != null)
{
@ -749,7 +749,7 @@ namespace BMA.EHR.Leave.Service.Controllers
try
{
//var profile = await _userProfileRepository.SearchProfile(null, null, null);
var profile = await _userProfileRepository.GetProfileWithKeycloak();
var profile = await _userProfileRepository.GetProfileWithKeycloak(AccessToken);
var count = 1;
var employees = new List<dynamic>();
@ -761,7 +761,7 @@ namespace BMA.EHR.Leave.Service.Controllers
var sickType = await _leaveTypeRepository.GetLeaveTypeByCodeAsync("LV-001");
if (sickType == null)
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
var sickDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.KeycloakId ?? Guid.Empty,
var sickDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.Keycloak ?? Guid.Empty,
sickType.Id,
req.StartDate,
req.EndDate);
@ -769,7 +769,7 @@ namespace BMA.EHR.Leave.Service.Controllers
var personalType = await _leaveTypeRepository.GetLeaveTypeByCodeAsync("LV-002");
if (personalType == null)
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
var personalDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.KeycloakId ?? Guid.Empty,
var personalDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.Keycloak ?? Guid.Empty,
personalType.Id,
req.StartDate,
req.EndDate);
@ -777,7 +777,7 @@ namespace BMA.EHR.Leave.Service.Controllers
var maternityType = await _leaveTypeRepository.GetLeaveTypeByCodeAsync("LV-003");
if (maternityType == null)
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
var maternityDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.KeycloakId ?? Guid.Empty,
var maternityDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.Keycloak ?? Guid.Empty,
maternityType.Id,
req.StartDate,
req.EndDate);
@ -785,7 +785,7 @@ namespace BMA.EHR.Leave.Service.Controllers
var wifeType = await _leaveTypeRepository.GetLeaveTypeByCodeAsync("LV-004");
if (wifeType == null)
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
var wifeDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.KeycloakId ?? Guid.Empty,
var wifeDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.Keycloak ?? Guid.Empty,
wifeType.Id,
req.StartDate,
req.EndDate);
@ -793,7 +793,7 @@ namespace BMA.EHR.Leave.Service.Controllers
var restType = await _leaveTypeRepository.GetLeaveTypeByCodeAsync("LV-005");
if (restType == null)
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
var restDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.KeycloakId ?? Guid.Empty,
var restDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.Keycloak ?? Guid.Empty,
restType.Id,
req.StartDate,
req.EndDate);
@ -801,7 +801,7 @@ namespace BMA.EHR.Leave.Service.Controllers
var ordainType = await _leaveTypeRepository.GetLeaveTypeByCodeAsync("LV-006");
if (ordainType == null)
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
var ordainDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.KeycloakId ?? Guid.Empty,
var ordainDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.Keycloak ?? Guid.Empty,
ordainType.Id,
req.StartDate,
req.EndDate);
@ -809,7 +809,7 @@ namespace BMA.EHR.Leave.Service.Controllers
var absentType = await _leaveTypeRepository.GetLeaveTypeByCodeAsync("LV-007");
if (absentType == null)
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
var absentDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.KeycloakId ?? Guid.Empty,
var absentDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.Keycloak ?? Guid.Empty,
absentType.Id,
req.StartDate,
req.EndDate);
@ -817,7 +817,7 @@ namespace BMA.EHR.Leave.Service.Controllers
var studyType = await _leaveTypeRepository.GetLeaveTypeByCodeAsync("LV-008");
if (studyType == null)
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
var studyDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.KeycloakId ?? Guid.Empty,
var studyDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.Keycloak ?? Guid.Empty,
studyType.Id,
req.StartDate,
req.EndDate);
@ -825,7 +825,7 @@ namespace BMA.EHR.Leave.Service.Controllers
var agencyType = await _leaveTypeRepository.GetLeaveTypeByCodeAsync("LV-009");
if (agencyType == null)
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
var agencyDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.KeycloakId ?? Guid.Empty,
var agencyDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.Keycloak ?? Guid.Empty,
agencyType.Id,
req.StartDate,
req.EndDate);
@ -833,7 +833,7 @@ namespace BMA.EHR.Leave.Service.Controllers
var coupleType = await _leaveTypeRepository.GetLeaveTypeByCodeAsync("LV-010");
if (coupleType == null)
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
var coupleDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.KeycloakId ?? Guid.Empty,
var coupleDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.Keycloak ?? Guid.Empty,
coupleType.Id,
req.StartDate,
req.EndDate);
@ -841,12 +841,12 @@ namespace BMA.EHR.Leave.Service.Controllers
var therapyType = await _leaveTypeRepository.GetLeaveTypeByCodeAsync("LV-011");
if (therapyType == null)
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
var therapyDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.KeycloakId ?? Guid.Empty,
var therapyDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.Keycloak ?? Guid.Empty,
therapyType.Id,
req.StartDate,
req.EndDate);
var timeStamps = await _processUserTimeStampRepository.GetTimeStampHistoryByRangeForUserAsync(p.KeycloakId ?? Guid.Empty,
var timeStamps = await _processUserTimeStampRepository.GetTimeStampHistoryByRangeForUserAsync(p.Keycloak ?? Guid.Empty,
req.StartDate,
req.EndDate);
@ -890,10 +890,10 @@ namespace BMA.EHR.Leave.Service.Controllers
var emp = new
{
no = count,
fullName = _userProfileRepository.GetUserFullName(p.KeycloakId ?? Guid.Empty),
position = p.Position == null ? "" : p.Position.Name,
positionLevel = p.PositionLevel == null ? "" : p.PositionLevel.Name,
posNo = p.PosNo == null ? "" : p.PosNo.Name,
fullName = _userProfileRepository.GetUserFullName(p.Keycloak ?? Guid.Empty, AccessToken),
position = p.Position == null ? "" : p.Position,
positionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName,
posNo = p.PosNo ?? "",
reason = "",
sickDayCount = sickDayCount,
@ -966,7 +966,7 @@ namespace BMA.EHR.Leave.Service.Controllers
{
try
{
var profile = await _userProfileRepository.SearchProfileEmployee(null, null, null);
var profile = await _userProfileRepository.SearchProfileEmployee(null, null, null, AccessToken ?? "");
var count = 1;
var employees = new List<dynamic>();
@ -977,11 +977,12 @@ namespace BMA.EHR.Leave.Service.Controllers
var sickType = await _leaveTypeRepository.GetLeaveTypeByCodeAsync("LV-001");
if (sickType == null)
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
var sickDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.KeycloakId ?? Guid.Empty,
var sickDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.Keycloak ?? Guid.Empty,
sickType.Id,
req.StartDate,
req.EndDate);
var sickCount = await _leaveRequestRepository.GetCountApproveLeaveByTypeAndRangeForUser(p.KeycloakId ?? Guid.Empty,
var sickCount = await _leaveRequestRepository.GetCountApproveLeaveByTypeAndRangeForUser(p.Keycloak ?? Guid.Empty,
sickType.Id,
req.StartDate,
req.EndDate);
@ -989,12 +990,12 @@ namespace BMA.EHR.Leave.Service.Controllers
var personalType = await _leaveTypeRepository.GetLeaveTypeByCodeAsync("LV-002");
if (personalType == null)
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
var personalDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.KeycloakId ?? Guid.Empty,
var personalDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.Keycloak ?? Guid.Empty,
personalType.Id,
req.StartDate,
req.EndDate);
var personalCount = await _leaveRequestRepository.GetCountApproveLeaveByTypeAndRangeForUser(p.KeycloakId ?? Guid.Empty,
var personalCount = await _leaveRequestRepository.GetCountApproveLeaveByTypeAndRangeForUser(p.Keycloak ?? Guid.Empty,
personalType.Id,
req.StartDate,
req.EndDate);
@ -1002,7 +1003,7 @@ namespace BMA.EHR.Leave.Service.Controllers
var maternityType = await _leaveTypeRepository.GetLeaveTypeByCodeAsync("LV-003");
if (maternityType == null)
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
var maternityDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.KeycloakId ?? Guid.Empty,
var maternityDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.Keycloak ?? Guid.Empty,
maternityType.Id,
req.StartDate,
req.EndDate);
@ -1010,7 +1011,7 @@ namespace BMA.EHR.Leave.Service.Controllers
var wifeType = await _leaveTypeRepository.GetLeaveTypeByCodeAsync("LV-004");
if (wifeType == null)
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
var wifeDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.KeycloakId ?? Guid.Empty,
var wifeDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.Keycloak ?? Guid.Empty,
wifeType.Id,
req.StartDate,
req.EndDate);
@ -1018,7 +1019,7 @@ namespace BMA.EHR.Leave.Service.Controllers
var restType = await _leaveTypeRepository.GetLeaveTypeByCodeAsync("LV-005");
if (restType == null)
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
var restDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.KeycloakId ?? Guid.Empty,
var restDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.Keycloak ?? Guid.Empty,
restType.Id,
req.StartDate,
req.EndDate);
@ -1026,12 +1027,12 @@ namespace BMA.EHR.Leave.Service.Controllers
var ordainType = await _leaveTypeRepository.GetLeaveTypeByCodeAsync("LV-006");
if (ordainType == null)
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
var ordainDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.KeycloakId ?? Guid.Empty,
var ordainDayCount = await _leaveRequestRepository.GetSumApproveLeaveByTypeAndRangeForUser(p.Keycloak ?? Guid.Empty,
ordainType.Id,
req.StartDate,
req.EndDate);
var timeStamps = await _processUserTimeStampRepository.GetTimeStampHistoryByRangeForUserAsync(p.KeycloakId ?? Guid.Empty,
var timeStamps = await _processUserTimeStampRepository.GetTimeStampHistoryByRangeForUserAsync(p.Keycloak ?? Guid.Empty,
req.StartDate,
req.EndDate);
@ -1074,7 +1075,7 @@ namespace BMA.EHR.Leave.Service.Controllers
var emp = new
{
no = count,
fullName = _userProfileRepository.GetUserFullName(p.KeycloakId ?? Guid.Empty),
fullName = _userProfileRepository.GetUserFullName(p.Keycloak ?? Guid.Empty, AccessToken),
posNo = p.PosNoEmployee ?? "",
reason = "",
@ -1137,7 +1138,7 @@ namespace BMA.EHR.Leave.Service.Controllers
try
{
//var profile = await _userProfileRepository.SearchProfile(null, null, null);
var profile = await _userProfileRepository.GetProfileWithKeycloak();
var profile = await _userProfileRepository.GetProfileWithKeycloak(AccessToken);
var date = req.StartDate.Date;
var holidays = await _holidayRepository.GetHolidayAsync(req.StartDate.Date, req.EndDate.Date);
@ -1168,11 +1169,11 @@ namespace BMA.EHR.Leave.Service.Controllers
foreach (var p in profile)
{
var keycloakUserId = p.KeycloakId ?? Guid.Empty;
var keycloakUserId = p.Keycloak ?? Guid.Empty;
var timeStamps = await _processUserTimeStampRepository.GetTimestampByDateAsync(keycloakUserId, dd);
var fullName = _userProfileRepository.GetUserFullName(keycloakUserId);
var fullName = _userProfileRepository.GetUserFullName(keycloakUserId, AccessToken);
var defaultRound = await _dutyTimeRepository.GetDefaultAsync();

View file

@ -90,7 +90,7 @@ namespace BMA.EHR.Leave.Service.Controllers
get
{
if (UserId != null || UserId != "")
return _userProfileRepository.GetUserOCId(Guid.Parse(UserId!));
return _userProfileRepository.GetUserOCId(Guid.Parse(UserId!), AccessToken);
else
return Guid.Empty;
}
@ -298,7 +298,7 @@ namespace BMA.EHR.Leave.Service.Controllers
}
// add dear and oc_data
var rootOc = _userProfileRepository.GetRootOcId(profile.OcId ?? Guid.Empty);
var rootOc = _userProfileRepository.GetRootOcId(profile.OcId ?? Guid.Empty, AccessToken);
var approver = string.Empty;
if (rootOc != null)
{
@ -524,7 +524,7 @@ namespace BMA.EHR.Leave.Service.Controllers
}
// add dear and oc_data
var rootOc = _userProfileRepository.GetRootOcId(profile.OcId ?? Guid.Empty);
var rootOc = _userProfileRepository.GetRootOcId(profile.OcId ?? Guid.Empty, AccessToken);
var approver = string.Empty;
if (rootOc != null)
{
@ -613,7 +613,7 @@ namespace BMA.EHR.Leave.Service.Controllers
var lastSalary = profile.Salaries.OrderByDescending(x => x.Order).FirstOrDefault();
var rootOc = _userProfileRepository.GetRootOcId(profile.OcId ?? Guid.Empty);
var rootOc = _userProfileRepository.GetRootOcId(profile.OcId ?? Guid.Empty, AccessToken);
var approver = string.Empty;
if (rootOc != null)
{
@ -1423,7 +1423,7 @@ namespace BMA.EHR.Leave.Service.Controllers
await _leaveRequestRepository.GetLastLeaveRequestByTypeForUserAsync(rawData.KeycloakUserId,
rawData.Type.Id);
var rootOc = _userProfileRepository.GetRootOcId(profile.OcId ?? Guid.Empty);
var rootOc = _userProfileRepository.GetRootOcId(profile.OcId ?? Guid.Empty, AccessToken);
var approver = string.Empty;
if (rootOc != null)
{

View file

@ -55,12 +55,14 @@ namespace BMA.EHR.Leave.Service.Controllers
private bool? PlacementAdmin => _httpContextAccessor?.HttpContext?.User?.IsInRole("placement1");
private string? AccessToken => _httpContextAccessor?.HttpContext?.Request.Headers["Authorization"];
private Guid OcId
{
get
{
if (UserId != null || UserId != "")
return _userProfileRepository.GetUserOCId(Guid.Parse(UserId!));
return _userProfileRepository.GetUserOCId(Guid.Parse(UserId!), AccessToken);
else
return Guid.Empty;
}