/// /// Copyright (c) 2022 Sensus Slovensko a.s. /// using System; using System.Collections; using System.Windows.Forms; namespace TBF.Rig.Output { public class LUTestDataComparer : IComparer { SortOrder order; public LUTestDataComparer() { order = SortOrder.Ascending; } public LUTestDataComparer(SortOrder order) { this.order = order; } // test.RawDataId + repetitionNr * test.RawDataIdRepetMulti public int Compare(object x, object y) { #if ORACLE_DB var trX = x as LUTestData; var trY = y as LUTestData; if (trX == null || trY == null) return 0; int idX = trX.TData.OraId + (trX.TData.Repeats - trX.RepNr) * trX.TData.OraIdRepetMulti; int idY = trY.TData.OraId + (trY.TData.Repeats - trY.RepNr) * trY.TData.OraIdRepetMulti; int valX = (idX > 0) ? int.MaxValue - idX : idX; int valY = (idY > 0) ? int.MaxValue - idY : idY; return order == SortOrder.Descending ? (valY - valX) : (valX - valY); #else return 0; #endif } } }