fix api
This commit is contained in:
parent
6c09c68c5c
commit
1ae6f5e8d1
23 changed files with 304 additions and 123 deletions
|
|
@ -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;
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue