From 3a2fc50fec919b3965c60dfa3022b5a857192ab9 Mon Sep 17 00:00:00 2001 From: Michal Buzik Date: Fri, 21 Nov 2025 14:12:12 +0100 Subject: [PATCH] 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. --- .../CycleBeginningForm.cs | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/TBF/Rig/DataEntry/StandartCameraPurchaseOrder/CycleBeginningForm.cs b/TBF/Rig/DataEntry/StandartCameraPurchaseOrder/CycleBeginningForm.cs index a9030f22e..c623daa86 100644 --- a/TBF/Rig/DataEntry/StandartCameraPurchaseOrder/CycleBeginningForm.cs +++ b/TBF/Rig/DataEntry/StandartCameraPurchaseOrder/CycleBeginningForm.cs @@ -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"); /// Number of water meters 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);