tbf/TBF/Rig/Output/LUTestDataComparer.cs

43 lines
1.1 KiB
C#

///
/// 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
}
}
}