63 lines
2.1 KiB
C#
63 lines
2.1 KiB
C#
using System;
|
|
using System.Text.Json.Nodes;
|
|
|
|
namespace Elwig.Helpers.Weighing {
|
|
/// <summary>
|
|
/// Result of a weighing process on an industrial weighing scale
|
|
/// </summary>
|
|
public struct WeighingResult {
|
|
/// <summary>
|
|
/// Measured gross weight in kg
|
|
/// </summary>
|
|
public int? GrossWeight;
|
|
|
|
/// <summary>
|
|
/// Measured tare weight in kg
|
|
/// </summary>
|
|
public int? TareWeight;
|
|
|
|
/// <summary>
|
|
/// Measured net weight in kg
|
|
/// </summary>
|
|
public int? NetWeight;
|
|
|
|
/// <summary>
|
|
/// Weighing id (or IdentNr) provided by the scale
|
|
/// </summary>
|
|
public string? WeighingId;
|
|
|
|
/// <summary>
|
|
/// Wheighing id (or IdentNr) provided by the scale optionally combined with the current date
|
|
/// </summary>
|
|
public string? FullWeighingId;
|
|
|
|
/// <summary>
|
|
/// Date string provided by the scale
|
|
/// </summary>
|
|
public DateOnly? Date;
|
|
|
|
/// <summary>
|
|
/// Time string provided by the scale
|
|
/// </summary>
|
|
public TimeOnly? Time;
|
|
|
|
/// <returns><[GrossWeight-TaraWeight=]NetWeight/WeighingId/Date/Time></returns>
|
|
public override readonly string ToString() {
|
|
var w = NetWeight != null ? (GrossWeight != null && TareWeight != null ? $"{GrossWeight}-{TareWeight}=" : "") + $"{NetWeight}kg" : "";
|
|
return $"<{w}/{WeighingId}/{Date:yyyy-MM-dd}/{Time:HH:mm}>";
|
|
}
|
|
|
|
public readonly JsonObject ToJson() {
|
|
var obj = new JsonObject();
|
|
if (FullWeighingId != null) obj["id"] = FullWeighingId;
|
|
if (WeighingId != null) obj["nr"] = int.Parse(WeighingId);
|
|
if (Date != null) obj["date"] = $"{Date:yyyy-MM-dd}";
|
|
if (Time != null) obj["time"] = $"{Time:HH:mm:ss}";
|
|
if (GrossWeight != null) obj["gross_weight"] = GrossWeight;
|
|
if (TareWeight != null) obj["tare_weight"] = TareWeight;
|
|
if (NetWeight != null) obj["net_weight"] = NetWeight;
|
|
return obj;
|
|
}
|
|
}
|
|
}
|