Files
DP44/Common/DTS.Common.DataModel/Classes/TestMetaData/CustomerDetails.cs

171 lines
5.4 KiB
C#
Raw Normal View History

2026-04-17 14:55:32 -04:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows;
using DTS.Common.Base;
using DTS.Common.DataModel;
using DTS.Common.SharedResource.Strings;
namespace DataPROWin7.DataModel
{
public class CustomerDetails : BasePropertyChanged
{
private readonly DTS.Common.ISO.CustomerDetails _customerDetails;
private bool _blank = true;
public bool IsBlank() { return _blank; }
public enum Fields
{
Name,
CustomerName,
CustomerTestRefNumber,
ProjectRefNumber,
CustomerOrderNumber,
CustomerCostUnit
}
public string Name
{
get => _customerDetails.Name;
set
{
_blank = false;
_customerDetails.Name = value; OnPropertyChanged(Fields.Name.ToString());
}
}
public string CustomerName
{
get => _customerDetails.CustomerName;
set
{
_blank = false;
_customerDetails.CustomerName = value; OnPropertyChanged(Fields.CustomerName.ToString());
}
}
public string CustomerTestRefNumber
{
get => _customerDetails.CustomerTestRefNumber;
set
{
_blank = false;
_customerDetails.CustomerTestRefNumber = value; OnPropertyChanged(Fields.CustomerTestRefNumber.ToString());
}
}
public string ProjectRefNumber
{
get => _customerDetails.ProjectRefNumber;
set
{
_blank = false;
_customerDetails.ProjectRefNumber = value; OnPropertyChanged(Fields.ProjectRefNumber.ToString());
}
}
public string CustomerOrderNumber
{
get => _customerDetails.CustomerOrderNumber;
set
{
_blank = false;
_customerDetails.CustomerOrderNumber = value; OnPropertyChanged(Fields.CustomerOrderNumber.ToString());
}
}
public string CustomerCostUnit
{
get => _customerDetails.CustomerCostUnit;
set
{
_blank = false;
_customerDetails.CustomerCostUnit = value; OnPropertyChanged(Fields.CustomerCostUnit.ToString());
}
}
public bool LocalOnly => _customerDetails.LocalOnly;
public DateTime LastModified => _customerDetails.LastModified;
public string LastModifiedBy => _customerDetails.LastModifiedBy;
public int Version => _customerDetails.Version;
public CustomerDetails()
{
_customerDetails = new DTS.Common.ISO.CustomerDetails();
_customerDetails.Name = StringResources.TestTemplate_EmptyListName;
}
public bool HasBlankName()
{
return _customerDetails.Name == StringResources.TestTemplate_EmptyListName;
}
public CustomerDetails(DTS.Common.ISO.CustomerDetails customerDetails)
{
_customerDetails = new DTS.Common.ISO.CustomerDetails(customerDetails);
_blank = false;
}
public DTS.Common.ISO.CustomerDetails GetISOCustomer()
{
return _customerDetails;
}
public override string ToString()
{
return Name;
}
}
public class CustomerDetailsList : BasePropertyChanged
{
protected CustomerDetailsList()
{
}
public static void Delete(CustomerDetails customer)
{
customer.GetISOCustomer().Delete(ApplicationProperties.CurrentUser.UserName);
}
public static void Delete(CustomerDetails[] customers)
{
foreach (var customer in customers)
{
Delete(customer);
}
}
public static CustomerDetails[] GetAllCustomers()
{
var customers = DTS.Common.ISO.CustomerDetails.GetAllCustomerDetails();
var allCustomers = new List<DataModel.CustomerDetails>();
foreach (var customer in customers)
{
allCustomers.Add(new CustomerDetails(customer));
}
allCustomers.Sort(CompareCustomers);
return allCustomers.ToArray();
}
public static void DeleteAll()
{
DTS.Common.ISO.CustomerDetails.DeleteCustomerDetails();
}
private static int CompareCustomers(CustomerDetails a, CustomerDetails 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 CustomerDetails GetCustomerDetail(string name)
{
if (string.IsNullOrEmpty(name)) { return null; }
var iso = DTS.Common.ISO.CustomerDetails.GetCustomerDetails(name);
return null == iso ? null : new CustomerDetails(iso);
}
public static void AddCustomer(CustomerDetails customer)
{
customer.GetISOCustomer().Commit(ApplicationProperties.CurrentUser.UserName);
}
}
}