get position employee

This commit is contained in:
Kittapath 2023-08-03 23:59:57 +07:00
parent f83a59733f
commit 7a05335f22

View file

@ -437,5 +437,78 @@ namespace BMA.EHR.OrganizationEmployee.Service.Controllers
return Success();
}
[HttpGet("position/{profileId:length(36)}")]
public async Task<ActionResult<ResponseObject>> GetPositionEmployeeByProfile(Guid profileId)
{
var profile = await _context.Profiles.FindAsync(profileId);
if (profile == null)
return Error(GlobalMessages.DataNotFound, 404);
var organizationEmployee = await _context.OrganizationEmployees
.Include(x => x.Profile)
.Where(x => x.Profile == profile)
.Select(x => new
{
Id = x.Id,
Agency = x.Agency,
ConditionNote = x.ConditionNote,
Department = x.Department,
Government = x.Government,
IsActive = x.IsActive,
IsCondition = x.IsCondition,
IsDirector = x.IsDirector,
OrganizationUserNote = x.OrganizationUserNote,
Qualification = x.Qualification,
Pile = x.Pile,
PosNo = x.PosNo,
PositionCondition = x.PositionCondition,
PositionMasterUserNote = x.PositionMasterUserNote,
OrganizationOrder = x.OrganizationOrder,
OrganizationFaxId = x.OrganizationFax == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : x.OrganizationFax.Id,
OrganizationLevelId = x.OrganizationLevel == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : x.OrganizationLevel.Id,
OrganizationOrganizationId = x.OrganizationOrganization == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : x.OrganizationOrganization.Id,
OrganizationTelExternalId = x.OrganizationTelExternal == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : x.OrganizationTelExternal.Id,
OrganizationTelInternalId = x.OrganizationTelInternal == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : x.OrganizationTelInternal.Id,
OrganizationTypeId = x.OrganizationType == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : x.OrganizationType.Id,
PositionEmployeeStatusId = x.PositionEmployeeStatus == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : x.PositionEmployeeStatus.Id,
PositionEmployeeLineId = x.PositionEmployeeLine == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : x.PositionEmployeeLine.Id,
PositionEmployeePositionId = x.PositionEmployeePosition == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : x.PositionEmployeePosition.Id,
OrganizationAgencyId = x.OrganizationAgency == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : x.OrganizationAgency.Id,
OrganizationGovernmentAgencyId = x.OrganizationGovernmentAgency == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : x.OrganizationGovernmentAgency.Id,
OrganizationShortNameId = x.OrganizationShortName == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : x.OrganizationShortName.Id,
OrganizationFaxName = x.OrganizationFax == null ? null : x.OrganizationFax.Name,
OrganizationLevelName = x.OrganizationLevel == null ? null : x.OrganizationLevel.Name,
OrganizationOrganizationName = x.OrganizationOrganization == null ? null : x.OrganizationOrganization.Name,
OrganizationTelExternalName = x.OrganizationTelExternal == null ? null : x.OrganizationTelExternal.Name,
OrganizationTelInternalName = x.OrganizationTelInternal == null ? null : x.OrganizationTelInternal.Name,
OrganizationTypeName = x.OrganizationType == null ? null : x.OrganizationType.Name,
PositionEmployeeStatusName = x.PositionEmployeeStatus == null ? null : x.PositionEmployeeStatus.Name,
PositionEmployeeLineName = x.PositionEmployeeLine == null ? null : x.PositionEmployeeLine.Name,
PositionEmployeePositionName = x.PositionEmployeePosition == null ? null : x.PositionEmployeePosition.Name,
OrganizationAgencyName = x.OrganizationShortName == null ? null : x.OrganizationShortName.AgencyCode,
OrganizationGovernmentAgencyName = x.OrganizationShortName == null ? null : x.OrganizationShortName.GovernmentCode,
// OrganizationAgencyName = x.OrganizationAgency == null ? null : x.OrganizationAgency.Name,
// OrganizationGovernmentAgencyName = x.OrganizationGovernmentAgency == null ? null : x.OrganizationGovernmentAgency.Name,
OrganizationShortNameName = x.OrganizationShortName == null ? null : x.OrganizationShortName.Name,
PositionEmployeeLevels = x.OrganizationPositionEmployeeLevels.Select(y => new
{
Id = y.PositionEmployeeLevel == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : y.PositionEmployeeLevel.Id,
Name = y.PositionEmployeeLevel == null ? null : y.PositionEmployeeLevel.Name,
}),
PositionEmployeePositionSides = x.OrganizationPositionEmployeePositionSides.Select(y => new
{
Id = y.PositionEmployeePositionSide == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : y.PositionEmployeePositionSide.Id,
Name = y.PositionEmployeePositionSide == null ? null : y.PositionEmployeePositionSide.Name,
}),
})
.FirstOrDefaultAsync();
if (organizationEmployee == null)
return Error(GlobalMessages.OrganizationEmployeeNotFound, 404);
return Success(organizationEmployee);
}
}
}