PurchaseOrderDialog logger Improvement - WRCSwindon

Add detailed logging for purchase order workflows in `CycleBeginningForm`

- Introduced `log_selected` for enhanced debugging of selected orders, items, and serial numbers.
- Added exception handling and logging for serial number loading.
- Improved visibility into runtime behavior with contextual debug and error logs.
This commit is contained in:
Michal Buzik 2025-11-21 14:12:12 +01:00
parent 38a58ed8b7
commit 3a2fc50fec

View File

@ -21,6 +21,7 @@ namespace TBF.Rig.DataEntry.StandartCameraPurchaseOrder
public partial class CycleBeginningForm : Form, GenericDevices.IHasCompleted
{
private static readonly ILog log = LogManager.GetLogger(typeof(CycleBeginningForm));
private static readonly ILog log_selected = LogManager.GetLogger("PurchaseOrderHistory");
/// <summary> Number of water meters </summary>
public readonly int WaterMetersCount;
@ -264,6 +265,11 @@ namespace TBF.Rig.DataEntry.StandartCameraPurchaseOrder
Disabled[i] = !checkBoxes[i].Checked;
}
//TODO create logger to log selected items and their order and Order number
string snTextArrString = SNText != null ? string.Join(", ", SNText) : string.Empty;
log_selected.DebugFormat("Purchase DLG - Selected Order: {0}, Last selected Box: {1}, All items: {2}",
orderComboBox.Text, purchaseBoxComboBox.Text,snTextArrString);
completed = true;
Close();
}
@ -718,6 +724,17 @@ namespace TBF.Rig.DataEntry.StandartCameraPurchaseOrder
.SelectMany(pBox => pBox.PurchaseWaterMeterDataList)
.Select(pWM => pWM.SerialNo);
try
{
string[] iEnumerable = serialNumbers as string[] ?? serialNumbers.ToArray();
log_selected.Debug(
$"Selected order: {choosenOrder} box: {choosenBox} possible serial numbers (form DB): {string.Join(", ", iEnumerable)}");
}
catch (Exception e)
{
log_selected.Error("Error loading serial numbers: " + e);
}
//enable behaviour type
bool addOnEndOnly = false;
@ -726,6 +743,7 @@ namespace TBF.Rig.DataEntry.StandartCameraPurchaseOrder
if (countOfFreeBoxes < serialNumbers.Count())
{
log_selected.Debug(">" + serialNumbers.Count() + " Serial Numbers in box as we have free positions!");
MessageBox.Show(this, "We have more Serial Numbers in box as we have free positions!", "Warning",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
@ -753,6 +771,7 @@ namespace TBF.Rig.DataEntry.StandartCameraPurchaseOrder
if (lastComboBoxSerialNo >= 0 || lastComboBoxSerialNo < enabledComboBoxes.Count)
{
comboBoxes[lastComboBoxSerialNo].Text = serialNumber;
log_selected.Debug($"Added serial no: {serialNumber} to pos: {lastComboBoxSerialNo}");
lastComboBoxSerialNo++;
}
}
@ -762,6 +781,7 @@ namespace TBF.Rig.DataEntry.StandartCameraPurchaseOrder
if (iNextFreeNumber >= 0 || iNextFreeNumber < enabledComboBoxes.Count)
{
comboBoxes[iNextFreeNumber].Text = serialNumber;
log_selected.Debug($"Added serial no: {serialNumber} to pos: {iNextFreeNumber}");
lastComboBoxSerialNo = iNextFreeNumber;
}
}
@ -774,6 +794,7 @@ namespace TBF.Rig.DataEntry.StandartCameraPurchaseOrder
if (!noImplementedSerialNumbers.IsEmpty())
{
log_selected.Debug("No implemented serial numbers: " + noImplementedSerialNumbers);
MessageBox.Show(this,
string.Format("The following serial numbers were not implemented: {0}", noImplementedSerialNumbers),
"Serial Numbers repeating!", MessageBoxButtons.OK, MessageBoxIcon.Warning);