public async Task <IActionResult> ExecuteChangePlan(Guid id) { var changePlan = await _changePlanService.GetChangePlanAsync(id); changePlan.ExecutedDate = DateTime.Now; await _changePlanService.UpdateChangePlanAsync(changePlan); var changePlanItems = await _changePlanService.GetChangePlanItemsAsync(id); for (var i = 0; i < changePlanItems.Count(); i++) { var changePlanItem = changePlanItems[i]; //NOTE: THE NEWDATA HERE IS A CreateAssetApiDto (assetDto/asset entity cannot be serialized) if (changePlanItem.ExecutionType.Equals("create")) { var assetApiDto = JsonConvert.DeserializeObject <CreateAssetApiDto>(changePlanItem.NewData); //assetApiDto.LastUpdatedDate = DateTime.Now; var assetDto = _mapper.Map <AssetDto>(assetApiDto); if (assetDto.ChassisId != null && assetDto.ChassisId != Guid.Empty) { var item = await _changePlanService.GetChangePlanItemAsync(assetDto.ChassisId ?? Guid.Empty); if (item != null) { assetDto.ChassisId = item.AssetId; } } await _changePlanService.CreateAssetAsync(assetDto, changePlanItem); } //NOTE: THE NEWDATA HERE IS A UpdateAssetApiDto (assetDto/asset entity cannot be serialized) else if (changePlanItem.ExecutionType.Equals("update")) { var assetApiDto = JsonConvert.DeserializeObject <UpdateAssetApiDto>(changePlanItem.NewData); //assetApiDto.LastUpdatedDate = DateTime.Now; var assetDto = _mapper.Map <AssetDto>(assetApiDto); await _assetService.UpdateAssetAsync(assetDto); } //NOTE: THE NEWDATA HERE IS A DecommissionedAssetDto else if (changePlanItem.ExecutionType.Equals("decommission")) { var changePlanItemForAsset = await _changePlanService.GetChangePlanItemAsync(changePlanItem.AssetId); if (changePlanItemForAsset != null) { changePlanItem.AssetId = changePlanItemForAsset.AssetId; } var decommisionedAsset = JsonConvert.DeserializeObject <DecommissionedAssetDto>(changePlanItem.NewData); var createDecommissionedAsset = JsonConvert.DeserializeObject <CreateDecommissionedAsset>(decommisionedAsset.Data); var assetDto = await _assetService.GetAssetForDecommissioning(changePlanItem.AssetId); decommisionedAsset = CreateDecommissionedAsset(assetDto, createDecommissionedAsset); await _assetService.DeleteAssetAsync(decommisionedAsset.Id); await _assetService.CreateDecommissionedAssetAsync(decommisionedAsset); } } return(Ok()); }
public async Task <IActionResult> Delete(Guid id) { await _assetService.DeleteAssetAsync(id); return(Ok()); }