Added asset inventory information and action in AssetsController

This commit is contained in:
2025-10-13 17:24:25 +02:00
parent 5fb7a1021b
commit 0cc806a0a3
3 changed files with 24 additions and 7 deletions

View File

@@ -181,16 +181,20 @@ public class AssetsController : Controller
{ {
await _ldap.UpdateAsset(cn, "serialNumber", requestModel.SerialNumber); await _ldap.UpdateAsset(cn, "serialNumber", requestModel.SerialNumber);
} }
AssetModel asset = await _ldap.ListDeviceAsync(requestModel.Cn);
asset.Description ??= new();
if (requestModel.Description is not null) if (requestModel.Description is not null)
{ {
AssetModel? asset = null; AssetInventory? tempInventory = asset.Description.Inventory;
asset = await _ldap.GetAssetByCnAsync(cn);
if (asset.Description is null)
{
asset.Description = new();
}
AttributesHelper.UpdateNonNullProperties(requestModel.Description, asset.Description); 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); result = new AssetsUpdateResponseModel(successful: true);

View File

@@ -50,6 +50,8 @@ public class AssetDescription
public Dictionary<string, string>? Attributes { get; set; } public Dictionary<string, string>? Attributes { get; set; }
[JsonPropertyName("Purchase")] [JsonPropertyName("Purchase")]
public AssetPurchase? Purchase { get; set; } public AssetPurchase? Purchase { get; set; }
[JsonPropertyName("Inventory")]
public AssetInventory? Inventory { get; set; }
} }
public class AssetPurchase public class AssetPurchase
@@ -64,6 +66,15 @@ public class AssetPurchase
public string? PurchasedBy { get; set; } 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 class AssetsTableViewModel
{ {
public string? UserUID { get; set; } public string? UserUID { get; set; }

View File

@@ -28,4 +28,6 @@ public class AssetsModifyRequestModel
public string? Owner { get; set; } = null; public string? Owner { get; set; } = null;
[JsonPropertyName("SerialNumber")] [JsonPropertyName("SerialNumber")]
public string? SerialNumber { get; set; } = null; public string? SerialNumber { get; set; } = null;
[JsonPropertyName("UpdateInventory")]
public bool UpdateInventory { get; set; } = false;
} }