init
This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace DatabaseExport
|
||||
{
|
||||
public class TestEngineerDetails
|
||||
{
|
||||
private readonly ISO.TestEngineerDetails _testEngineerDetails;
|
||||
public string Name
|
||||
{
|
||||
get => _testEngineerDetails.Name;
|
||||
set => _testEngineerDetails.Name = value;
|
||||
}
|
||||
public TestEngineerDetails()
|
||||
{
|
||||
_testEngineerDetails = new ISO.TestEngineerDetails();
|
||||
_testEngineerDetails.Name = "(none)"; // Strings.StringResources.TestTemplate_EmptyListName;
|
||||
}
|
||||
public TestEngineerDetails(ISO.TestEngineerDetails testEngineerDetails)
|
||||
{
|
||||
_testEngineerDetails = new ISO.TestEngineerDetails(testEngineerDetails);
|
||||
}
|
||||
public ISO.TestEngineerDetails GetISOTestEngineer()
|
||||
{
|
||||
return _testEngineerDetails;
|
||||
}
|
||||
public override string ToString()
|
||||
{
|
||||
return Name;
|
||||
}
|
||||
}
|
||||
public class TestEngineerDetailsList
|
||||
{
|
||||
private static TestEngineerDetailsList _testEngineerList = new TestEngineerDetailsList();
|
||||
public static TestEngineerDetailsList TestEngineerList => _testEngineerList;
|
||||
private static object _testEngineerLock = new object();
|
||||
private Dictionary<string, TestEngineerDetails> _testEngineers = null;
|
||||
public TestEngineerDetails[] TestEngineers
|
||||
{
|
||||
get
|
||||
{
|
||||
lock (_testEngineerLock)
|
||||
{
|
||||
if (null == _testEngineers)
|
||||
{
|
||||
PopulateEngineers();
|
||||
}
|
||||
}
|
||||
var testEngineers = new List<TestEngineerDetails>(_testEngineers.Values);
|
||||
testEngineers.Sort(CompareTestEngineers);
|
||||
return testEngineers.ToArray();
|
||||
}
|
||||
}
|
||||
private void PopulateEngineers()
|
||||
{
|
||||
_testEngineers = new Dictionary<string, TestEngineerDetails>();
|
||||
foreach (var t in _testEngineerList.GetAllTestEngineers())
|
||||
{
|
||||
if (!_testEngineers.ContainsKey(t.Name)) { _testEngineers.Add(t.Name, t); }
|
||||
}
|
||||
}
|
||||
private static int CompareTestEngineers(TestEngineerDetails a, TestEngineerDetails b)
|
||||
{
|
||||
if (a == b) { return 0; }
|
||||
if (null == a) { return -1; }
|
||||
if (null == b) { return 1; }
|
||||
return a.Name.CompareTo(b.Name);
|
||||
}
|
||||
|
||||
private TestEngineerDetails[] GetAllTestEngineers()
|
||||
{
|
||||
var list = new List<TestEngineerDetails>();
|
||||
list.Add(new TestEngineerDetails()); //This is the "(none)" entry
|
||||
foreach (var ts in ISO.TestEngineerDetails.GetAllTestEngineerDetails())
|
||||
{
|
||||
list.Add(new TestEngineerDetails(ts));
|
||||
}
|
||||
return list.ToArray();
|
||||
}
|
||||
public TestEngineerDetails GetTestEngineerDetail(string name)
|
||||
{
|
||||
var testEngineers = from t in TestEngineers.AsParallel() where t.Name == name select t;
|
||||
if (null != testEngineers && testEngineers.Count() > 0) { return testEngineers.First(); }
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user