diff --git a/src/AzureIoTHub.Portal.Application/Mappers/AWS/AWSDeviceThingProfile.cs b/src/AzureIoTHub.Portal.Application/Mappers/AWS/AWSDeviceThingProfile.cs index 98ba36af8..3f399c2d5 100644 --- a/src/AzureIoTHub.Portal.Application/Mappers/AWS/AWSDeviceThingProfile.cs +++ b/src/AzureIoTHub.Portal.Application/Mappers/AWS/AWSDeviceThingProfile.cs @@ -54,6 +54,16 @@ public AWSDeviceThingProfile() Name = att.Key, Value = att.Value }))); + + _ = CreateMap() + .ForMember(dest => dest.ThingName, opts => opts.MapFrom(src => src.DeviceName)) + .ForPath(dest => dest.AttributePayload.Attributes, opts => opts.MapFrom(src => src.Tags)) + .ReverseMap(); + + _ = CreateMap() + .ForMember(dest => dest.ThingName, opts => opts.MapFrom(src => src.DeviceName)) + .ForPath(dest => dest.AttributePayload.Attributes, opts => opts.MapFrom(src => src.Tags)) + .ReverseMap(); } private static MemoryStream EmptyPayload() diff --git a/src/AzureIoTHub.Portal.Application/Mappers/EdgeDeviceProfile.cs b/src/AzureIoTHub.Portal.Application/Mappers/EdgeDeviceProfile.cs index 329ff82ef..b1a29c421 100644 --- a/src/AzureIoTHub.Portal.Application/Mappers/EdgeDeviceProfile.cs +++ b/src/AzureIoTHub.Portal.Application/Mappers/EdgeDeviceProfile.cs @@ -18,6 +18,8 @@ public class EdgeDeviceProfile : Profile { public EdgeDeviceProfile() { + _ = CreateMap(); + _ = CreateMap() .ForMember(dest => dest.Id, opts => opts.MapFrom(src => src.DeviceId)) .ForMember(dest => dest.Name, opts => opts.MapFrom(src => src.Tags["deviceName"])) diff --git a/src/AzureIoTHub.Portal.Infrastructure/Services/AWS/AWSEdgeDevicesService.cs b/src/AzureIoTHub.Portal.Infrastructure/Services/AWS/AWSEdgeDevicesService.cs index e0a55dea9..723bf01a9 100644 --- a/src/AzureIoTHub.Portal.Infrastructure/Services/AWS/AWSEdgeDevicesService.cs +++ b/src/AzureIoTHub.Portal.Infrastructure/Services/AWS/AWSEdgeDevicesService.cs @@ -29,6 +29,7 @@ public class AWSEdgeDevicesService : EdgeDevicesServiceBase, IEdgeDevicesService private readonly IEdgeDeviceModelRepository deviceModelRepository; private readonly IConfigService configService; private readonly ConfigHandler configHandler; + private readonly IMapper mapper; public AWSEdgeDevicesService( ConfigHandler configHandler, @@ -55,6 +56,8 @@ public AWSEdgeDevicesService( this.unitOfWork = unitOfWork; this.edgeDeviceRepository = edgeDeviceRepository; + + this.mapper = mapper; } /// @@ -73,15 +76,13 @@ public async Task CreateEdgeDevice(IoTEdgeDevice edgeDevice) throw new InvalidOperationException($"Edge model '{edgeDevice.ModelId}' doesn't exist!"); } - var response = await this.awsExternalDevicesService.CreateDevice(new CreateThingRequest - { - ThingName = edgeDevice.DeviceName, - ThingTypeName = model.Name - }); + var createThingRequest = this.mapper.Map(edgeDevice); + createThingRequest.ThingTypeName = model.Name; + var response = await this.awsExternalDevicesService.CreateDevice(createThingRequest); edgeDevice.DeviceId = response.ThingId; - var result = await base.CreateEdgeDeviceInDatabase(edgeDevice); + var result = await base.CreateEdgeDeviceInDatabase(edgeDevice); await this.unitOfWork.SaveAsync(); return result; @@ -97,7 +98,8 @@ public async Task UpdateEdgeDevice(IoTEdgeDevice edgeDevice) { ArgumentNullException.ThrowIfNull(edgeDevice, nameof(edgeDevice)); - _ = await this.awsExternalDevicesService.GetDevice(edgeDevice.DeviceName); + var updateThingRequest = this.mapper.Map(edgeDevice); + _ = await this.awsExternalDevicesService.UpdateDevice(updateThingRequest); var result = await UpdateEdgeDeviceInDatabase(edgeDevice);