diff --git a/BMA.EHR.OrganizationEmployee.Service/Controllers/OrganizationEmployeeController.cs b/BMA.EHR.OrganizationEmployee.Service/Controllers/OrganizationEmployeeController.cs index c536da5d..675eb2fe 100644 --- a/BMA.EHR.OrganizationEmployee.Service/Controllers/OrganizationEmployeeController.cs +++ b/BMA.EHR.OrganizationEmployee.Service/Controllers/OrganizationEmployeeController.cs @@ -437,5 +437,78 @@ namespace BMA.EHR.OrganizationEmployee.Service.Controllers return Success(); } + + [HttpGet("position/{profileId:length(36)}")] + public async Task> 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); + } } } \ No newline at end of file