diff --git a/PARR.API/Contracts/V1/Responses/UnitBaseResponse.cs b/PARR.API/Contracts/V1/Responses/UnitBaseResponse.cs index a6cc1bc8..921852d3 100644 --- a/PARR.API/Contracts/V1/Responses/UnitBaseResponse.cs +++ b/PARR.API/Contracts/V1/Responses/UnitBaseResponse.cs @@ -23,6 +23,10 @@ public DateTimeOffset? LastLogon { get; set; } public List? Attributes { get; set; } + + public List? Parents { get; set; } + + public List? Childrens { get; set; } } } diff --git a/PARR.API/Controllers/V1/UnitController.cs b/PARR.API/Controllers/V1/UnitController.cs index 91dd74dc..57cb9547 100644 --- a/PARR.API/Controllers/V1/UnitController.cs +++ b/PARR.API/Controllers/V1/UnitController.cs @@ -53,7 +53,9 @@ namespace PARR.API.Controllers.V1 .Include(t => t.UnitValues) .ThenInclude(uv => uv.Value) .Include(tf => tf.UnitValues) - .ThenInclude(uv => uv.Field); + .ThenInclude(uv => uv.Field) + .Include(p => p.ParentUnits).ThenInclude(t=>t.ParentUnit) + .Include(c => c.ChildUnits).ThenInclude(t=>t.ChildUnit); var units = await unitService.GetPage(query, paginationFilter).ToListAsync(); @@ -80,6 +82,8 @@ namespace PARR.API.Controllers.V1 .ThenInclude(uv => uv.Value) .Include(tf => tf.UnitValues) .ThenInclude(uv => uv.Field) + .Include(p => p.ParentUnits).ThenInclude(t => t.ParentUnit) + .Include(c => c.ChildUnits).ThenInclude(t => t.ChildUnit) .FirstOrDefaultAsync(t => t.Id == id); if (unit == null) diff --git a/PARR.API/MappingProfiles/DomainToResponseProfile.cs b/PARR.API/MappingProfiles/DomainToResponseProfile.cs index 956e13c7..1d44ab90 100644 --- a/PARR.API/MappingProfiles/DomainToResponseProfile.cs +++ b/PARR.API/MappingProfiles/DomainToResponseProfile.cs @@ -119,7 +119,9 @@ namespace PARR.API.MappingProfiles .ForMember(d => d.Name, o => o.MapFrom(s => s.Name)); CreateMap() - .ForMember(d => d.Attributes, o => o.MapFrom(s => s.UnitValues!.OrderBy(s => (string.IsNullOrEmpty(s.Field!.DisplayName)) ? s.Field!.AihitName : s.Field!.DisplayName))); + .ForMember(d => d.Attributes, o => o.MapFrom(s => s.UnitValues!.OrderBy(s => (string.IsNullOrEmpty(s.Field!.DisplayName)) ? s.Field!.AihitName : s.Field!.DisplayName))) + .ForMember(d => d.Childrens, o => o.MapFrom(s => s.ChildUnits.Select(t => t.ChildUnit).OrderBy(t => t.Name))) + .ForMember(d => d.Parents, o => o.MapFrom(s => s.ParentUnits.Select(t => t.ParentUnit).OrderBy(t => t.Name))); #endregion #region WorkGroup