init
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
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());
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user