Files
2026-04-17 14:55:32 -04:00

204 lines
5.8 KiB
C#

using System;
using System.Linq;
using System.Windows;
using DTS.Common.Base;
using DTS.Common.DataModel;
using DTS.Common.SharedResource.Strings;
// ReSharper disable once CheckNamespace
namespace DataPROWin7.DataModel
{
public class LabratoryDetails : BasePropertyChanged
{
private readonly DTS.Common.ISO.LabratoryDetails _lab;
public enum Tags
{
LabratoryName,
LabratoryContactName,
LabratoryContactPhone,
LabratoryContactFax,
LabratoryContactEmail,
LabratoryTestRefNumber,
LabratoryProjectRefNumber,
Name
}
public string LabratoryName
{
get => _lab.LabratoryName;
set
{
_lab.LabratoryName = value;
_isBlank = false;
OnPropertyChanged(Tags.LabratoryName.ToString());
}
}
public string LabratoryContactName
{
get => _lab.LabratoryContactName;
set
{
_lab.LabratoryContactName = value;
_isBlank = false;
OnPropertyChanged(Tags.LabratoryContactName.ToString());
}
}
public string LabratoryContactPhone
{
get => _lab.LabratoryContactPhone;
set
{
_lab.LabratoryContactPhone = value;
_isBlank = false;
OnPropertyChanged(Tags.LabratoryContactPhone.ToString());
}
}
public string LabratoryContactFax
{
get => _lab.LabratoryContactFax;
set
{
_lab.LabratoryContactFax = value;
_isBlank = false;
OnPropertyChanged(Tags.LabratoryContactFax.ToString());
}
}
public string LabratoryContactEmail
{
get => _lab.LabratoryContactEmail;
set
{
_lab.LabratoryContactEmail = value;
_isBlank = false;
OnPropertyChanged(Tags.LabratoryContactEmail.ToString());
}
}
public string LabratoryTestRefNumber
{
get => _lab.LabratoryTestRefNumber;
set
{
_lab.LabratoryTestRefNumber = value;
_isBlank = false;
OnPropertyChanged(Tags.LabratoryTestRefNumber.ToString());
}
}
public string LabratoryProjectRefNumber
{
get => _lab.LabratoryProjectRefNumber;
set
{
_lab.LabratoryProjectRefNumber = value;
_isBlank = false;
OnPropertyChanged(Tags.LabratoryProjectRefNumber.ToString());
}
}
public string Name
{
get => _lab.Name;
set
{
_lab.Name = value;
_isBlank = false;
OnPropertyChanged(Tags.Name.ToString());
}
}
public bool LocalOnly => _lab.LocalOnly;
public DateTime LastModified => _lab.LastModified;
public string LastModifiedBy => _lab.LastModifiedBy;
public int Version => _lab.Version;
public LabratoryDetails()
{
_lab = new DTS.Common.ISO.LabratoryDetails();
_lab.Name = StringResources.TestTemplate_EmptyListName;
}
public bool HasBlankName()
{
return _lab.Name == StringResources.TestTemplate_EmptyListName;
}
public LabratoryDetails(DTS.Common.ISO.LabratoryDetails lab)
{
_lab = new DTS.Common.ISO.LabratoryDetails(lab);
_isBlank = false;
}
public DTS.Common.ISO.LabratoryDetails GetIsoLab() { return _lab; }
public override string ToString()
{
return Name;
}
public bool IsBlank()
{
return _isBlank;
}
private bool _isBlank = true;
}
public class LabratoryDetailsList
{
protected LabratoryDetailsList()
{
}
public static LabratoryDetails[] GetAllLabs()
{
var isoLabs = DTS.Common.ISO.LabratoryDetails.GetAllLabratoryDetails();
var labs = isoLabs.Select(isolab => new LabratoryDetails(isolab)).ToList();
labs.Sort(CompareLabs);
return labs.ToArray();
}
public enum Tags
{
Labs
}
public static void DeleteAll()
{
DTS.Common.ISO.LabratoryDetails.DeleteLabratoryDetails();
}
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 static void Delete(LabratoryDetails lab)
{
lab?.GetIsoLab().Delete(ApplicationProperties.CurrentUser.UserName);
}
public static void Delete(LabratoryDetails[] labs)
{
foreach (var lab in labs)
{
Delete(lab);
}
}
public static LabratoryDetails GetLab(string name)
{
if (string.IsNullOrEmpty(name)) { return null; }
var iso = DTS.Common.ISO.LabratoryDetails.GetLabratoryDetails(name);
return null == iso ? null : new LabratoryDetails(iso);
}
public static void AddLab(LabratoryDetails lab)
{
lab.GetIsoLab().Commit(ApplicationProperties.CurrentUser.UserName);
}
}
}