204 lines
5.8 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|