This commit is contained in:
2026-04-17 14:55:32 -04:00
commit bc3ac1d4c9
18017 changed files with 4371742 additions and 0 deletions

View File

@@ -0,0 +1,93 @@
using System;
using System.Collections.Generic;
using System.Linq;
namespace DatabaseExport
{
public class LabratoryDetails
{
ISO.LabratoryDetails _lab = null;
public string Name
{
get => _lab.Name;
set => _lab.Name = value;
}
public LabratoryDetails()
{
_lab = new ISO.LabratoryDetails();
_lab.Name = "(none)";
}
public LabratoryDetails(ISO.LabratoryDetails lab) { _lab = new ISO.LabratoryDetails(lab); }
public ISO.LabratoryDetails GetIsoLab() { return _lab; }
public override string ToString()
{
return Name;
}
}
public class LabratoryDetailsList
{
protected LabratoryDetailsList()
{
}
private static LabratoryDetailsList _list = new LabratoryDetailsList();
public static LabratoryDetailsList LabratoryList => _list;
private Dictionary<string, LabratoryDetails> _labs = null;
private void PopulateList()
{
if (null != _labs) return;
_labs = new Dictionary<string, LabratoryDetails>();
foreach (var l in GetAllLabs())
{
if (!_labs.ContainsKey(l.Name))
{
_labs.Add(l.Name, l);
}
else
{
_labs[l.Name] = l;
}
}
}
private static object _LabLock = new object();
public LabratoryDetails[] Labs
{
get
{
lock (_LabLock)
{
PopulateList();
}
var labs = new List<LabratoryDetails>(_labs.Values);
labs.Sort(CompareLabs);
return labs.ToArray();
}
}
private static int CompareLabs(LabratoryDetails a, LabratoryDetails b)
{
if (a == b) { return 0; }
if (null == a) { return -1; }
return null == b ? 1 : string.Compare(a.Name, b.Name, StringComparison.Ordinal);
}
public LabratoryDetails GetLab(string name)
{
try { lock (_LabLock) { return _labs != null ? _labs.ContainsKey(name) ? _labs[name] : null : null; } }
catch (Exception) {/* DTS.Utilities.Logging.APILogger.Log("failed to get labratories", ex); */}
return null;
}
private LabratoryDetails[] GetAllLabs()
{
var list = new List<LabratoryDetails>();
try
{
list.Add(new LabratoryDetails()); //This is the "(none)" entry
list.AddRange(ISO.LabratoryDetails.GetAllLabratoryDetails().Select(lab => new LabratoryDetails(lab)));
}
catch (Exception) {/* DTS.Utilities.Logging.APILogger.Log("failed to get labratories", ex);*/ }
return list.ToArray();
}
}
}