61 lines
2.2 KiB
C#
61 lines
2.2 KiB
C#
|
|
using DTS.Common.Enums.TestSetups.TestSetupList;
|
|||
|
|
using DTS.Common.Interface.TestSetups.TestSetupsList;
|
|||
|
|
using System;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
|
|||
|
|
namespace TestSetupsList.Model
|
|||
|
|
{
|
|||
|
|
public class TestSetupComparer : IComparer<ITestSetup>
|
|||
|
|
{
|
|||
|
|
public TestSetupFields SortField { get; set; } = TestSetupFields.Name;
|
|||
|
|
public bool SortAscending { get; set; } = true;
|
|||
|
|
|
|||
|
|
public int Compare(ITestSetup left, ITestSetup right)
|
|||
|
|
{
|
|||
|
|
if (left == right)
|
|||
|
|
{
|
|||
|
|
return 0;
|
|||
|
|
}
|
|||
|
|
var a = left;
|
|||
|
|
var b = right;
|
|||
|
|
if (!SortAscending)
|
|||
|
|
{
|
|||
|
|
a = right;
|
|||
|
|
b = left;
|
|||
|
|
}
|
|||
|
|
if (a == b)
|
|||
|
|
{
|
|||
|
|
return 0;
|
|||
|
|
}
|
|||
|
|
if (null == a)
|
|||
|
|
{
|
|||
|
|
return -1;
|
|||
|
|
}
|
|||
|
|
if (null == b)
|
|||
|
|
{
|
|||
|
|
return 1;
|
|||
|
|
}
|
|||
|
|
switch (SortField)
|
|||
|
|
{
|
|||
|
|
case TestSetupFields.Name:
|
|||
|
|
return string.Compare(a.Name, b.Name, StringComparison.OrdinalIgnoreCase);
|
|||
|
|
case TestSetupFields.Description:
|
|||
|
|
return string.Compare(a.Description, b.Description, StringComparison.OrdinalIgnoreCase);
|
|||
|
|
case TestSetupFields.RecordingMode:
|
|||
|
|
return a.RecordingMode.CompareTo(b.RecordingMode);
|
|||
|
|
case TestSetupFields.PreTriggerSeconds:
|
|||
|
|
return a.PreTriggerSeconds.CompareTo(b.PreTriggerSeconds);
|
|||
|
|
case TestSetupFields.PostTriggerSeconds:
|
|||
|
|
return a.PostTriggerSeconds.CompareTo(b.PostTriggerSeconds);
|
|||
|
|
case TestSetupFields.LastModified:
|
|||
|
|
return a.LastModified.CompareTo(b.LastModified);
|
|||
|
|
case TestSetupFields.LastModifiedBy:
|
|||
|
|
return string.Compare(a.LastModifiedBy, b.LastModifiedBy, StringComparison.OrdinalIgnoreCase);
|
|||
|
|
case TestSetupFields.IsComplete:
|
|||
|
|
return a.IsComplete.CompareTo(b.IsComplete);
|
|||
|
|
}
|
|||
|
|
return a.GetHashCode().CompareTo(b.GetHashCode());
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|