public async Task <IActionResult> Put(UpdateAssetApiDto assetApiDto) { var assetDto = _mapper.Map <AssetDto>(assetApiDto); //assetApiDto.LastUpdatedDate = DateTime.Now; if (assetApiDto.ChangePlanId != null && assetApiDto.ChangePlanId != Guid.Empty) { var changePlanId = assetApiDto.ChangePlanId ?? Guid.Empty; var originalAsset = _mapper.Map <GetAssetApiDto>(await _assetService.GetAssetAsync(assetApiDto.Id)); //this is when you are updating a change plan's created asset if (originalAsset == null) { var createdItem = await _changePlanService.GetChangePlanItemAsync(changePlanId, assetApiDto.Id); var newAsset = _mapper.Map <CreateAssetApiDto>(assetApiDto); string newData = JsonConvert.SerializeObject(newAsset); createdItem.NewData = newData; await _changePlanService.UpdateChangePlanItemAsync(createdItem); return(NoContent()); } var newInfo = JsonConvert.SerializeObject(assetApiDto); var oldInfo = JsonConvert.SerializeObject(originalAsset); await _changePlanService.CreateChangePlanItemAsync(changePlanId, assetApiDto.Id, newInfo, oldInfo); } else { await _assetService.UpdateAssetAsync(assetDto); } return(NoContent()); }
private static UpdateAssetApiDto UpdateAssetApiDto() { var powerPorts = new List <UpdateAssetPowerPortApiDto>() { new UpdateAssetPowerPortApiDto() { Id = Guid.NewGuid(), PduPortId = Guid.NewGuid() }, new UpdateAssetPowerPortApiDto() { Id = Guid.NewGuid(), PduPortId = Guid.NewGuid() } }; var networkPorts = new List <UpdateAssetNetworkPortApiDto>() { new UpdateAssetNetworkPortApiDto() { Id = Guid.NewGuid(), ConnectedPortId = Guid.NewGuid(), MacAddress = "00:11:22:33:44:55", }, new UpdateAssetNetworkPortApiDto() { Id = Guid.NewGuid(), ConnectedPortId = Guid.NewGuid(), MacAddress = "aa:bb:cc:dd:ee:ff", } }; var apiDto = new UpdateAssetApiDto() { Id = Guid.NewGuid(), ModelId = Guid.NewGuid(), RackId = Guid.NewGuid(), OwnerId = Guid.NewGuid(), Hostname = "foo-hostname", RackPosition = 20, Comment = "this is a comment", PowerPorts = powerPorts, NetworkPorts = networkPorts, AssetNumber = 100000 }; return(apiDto); }