From 0cc806a0a34f371effc60f1bad6eb95bda14abf9 Mon Sep 17 00:00:00 2001 From: LD-Reborn Date: Mon, 13 Oct 2025 17:24:25 +0200 Subject: [PATCH] Added asset inventory information and action in AssetsController --- src/Controllers/AssetsController.cs | 18 +++++++++++------- src/Models/AssetsModel.cs | 11 +++++++++++ src/Models/AssetsRequestModels.cs | 2 ++ 3 files changed, 24 insertions(+), 7 deletions(-) diff --git a/src/Controllers/AssetsController.cs b/src/Controllers/AssetsController.cs index f65f9ea..b6095e7 100644 --- a/src/Controllers/AssetsController.cs +++ b/src/Controllers/AssetsController.cs @@ -181,16 +181,20 @@ public class AssetsController : Controller { await _ldap.UpdateAsset(cn, "serialNumber", requestModel.SerialNumber); } + AssetModel asset = await _ldap.ListDeviceAsync(requestModel.Cn); + asset.Description ??= new(); if (requestModel.Description is not null) { - AssetModel? asset = null; - asset = await _ldap.GetAssetByCnAsync(cn); - if (asset.Description is null) - { - asset.Description = new(); - } + AssetInventory? tempInventory = asset.Description.Inventory; AttributesHelper.UpdateNonNullProperties(requestModel.Description, asset.Description); - await _ldap.UpdateAsset(cn, "description", JsonSerializer.Serialize(requestModel.Description)); + asset.Description.Inventory = tempInventory; + await _ldap.UpdateAsset(cn, "description", JsonSerializer.Serialize(asset.Description)); + } + if (requestModel.UpdateInventory) + { + string? userName = User.Identity?.Name ?? "Unknown"; + asset.Description.Inventory = new() { Date = DateTime.Now.ToString("yyyy-MM-dd"), PersonUid = userName }; + await _ldap.UpdateAsset(cn, "description", JsonSerializer.Serialize(asset.Description)); } result = new AssetsUpdateResponseModel(successful: true); diff --git a/src/Models/AssetsModel.cs b/src/Models/AssetsModel.cs index 6d93c40..1ce745c 100644 --- a/src/Models/AssetsModel.cs +++ b/src/Models/AssetsModel.cs @@ -50,6 +50,8 @@ public class AssetDescription public Dictionary? Attributes { get; set; } [JsonPropertyName("Purchase")] public AssetPurchase? Purchase { get; set; } + [JsonPropertyName("Inventory")] + public AssetInventory? Inventory { get; set; } } public class AssetPurchase @@ -64,6 +66,15 @@ public class AssetPurchase public string? PurchasedBy { get; set; } } +public class AssetInventory +{ + [JsonPropertyName("Date")] + public required string Date { get; set; } + [JsonPropertyName("PersonUid")] + public required string PersonUid { get; set; } + +} + public class AssetsTableViewModel { public string? UserUID { get; set; } diff --git a/src/Models/AssetsRequestModels.cs b/src/Models/AssetsRequestModels.cs index abd1560..2ce04d3 100644 --- a/src/Models/AssetsRequestModels.cs +++ b/src/Models/AssetsRequestModels.cs @@ -28,4 +28,6 @@ public class AssetsModifyRequestModel public string? Owner { get; set; } = null; [JsonPropertyName("SerialNumber")] public string? SerialNumber { get; set; } = null; + [JsonPropertyName("UpdateInventory")] + public bool UpdateInventory { get; set; } = false; } \ No newline at end of file