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(); 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); } } }