init
This commit is contained in:
@@ -0,0 +1,186 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
|
||||
namespace DatabaseImport.ISO
|
||||
{
|
||||
[Serializable]
|
||||
public class CustomerDetails //: ISerializableFile
|
||||
{
|
||||
// #region properties
|
||||
public string CustomerName { get; set; } = string.Empty;
|
||||
public string CustomerTestRefNumber { get; set; } = string.Empty;
|
||||
|
||||
private string _projectRefNumber = "NOVALUE";
|
||||
public string ProjectRefNumber
|
||||
{
|
||||
get => _projectRefNumber;
|
||||
set
|
||||
{
|
||||
if (value != string.Empty)
|
||||
{
|
||||
_projectRefNumber = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private string _customerOrderNumber = "NOVALUE";
|
||||
public string CustomerOrderNumber
|
||||
{
|
||||
get => _customerOrderNumber;
|
||||
set
|
||||
{
|
||||
if (value != string.Empty)
|
||||
{
|
||||
_customerOrderNumber = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private string _customerCostUnit = "NOVALUE";
|
||||
public string CustomerCostUnit
|
||||
{
|
||||
get => _customerCostUnit;
|
||||
set
|
||||
{
|
||||
if (value != string.Empty)
|
||||
{
|
||||
_customerCostUnit = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
public bool LocalOnly { get; set; } = false;
|
||||
public string Name { get; set; } = "";
|
||||
public DateTime LastModified { get; set; }
|
||||
public string LastModifiedBy { get; set; }
|
||||
public int Version { get; set; } = 1;
|
||||
|
||||
// #endregion properties
|
||||
// #region constructor
|
||||
public CustomerDetails()
|
||||
{
|
||||
}
|
||||
|
||||
// public CustomerDetails(string name, bool localOnly) { Name = name; LocalOnly = localOnly; }
|
||||
|
||||
public CustomerDetails(DataRow dr)
|
||||
{
|
||||
Name = (string)dr["Name"];
|
||||
CustomerName = (string)dr["CustomerName"];
|
||||
CustomerTestRefNumber = (string)dr["CustomerTestRefNumber"];
|
||||
ProjectRefNumber = (string)dr["ProjectRefNumber"];
|
||||
CustomerOrderNumber = (string)dr["CustomerOrderNumber"];
|
||||
CustomerCostUnit = (string)dr["CustomerCostUnit"];
|
||||
LocalOnly = Convert.ToBoolean(dr["LocalOnly"]);
|
||||
LastModified = Convert.ToDateTime(dr["LastModified"]);
|
||||
LastModifiedBy = (string)dr["LastModifiedBy"];
|
||||
Version = Convert.ToInt32(dr["Version"]);
|
||||
}
|
||||
public CustomerDetails(CustomerDetails copy)
|
||||
{
|
||||
Name = copy.Name;
|
||||
CustomerName = copy.CustomerName;
|
||||
CustomerTestRefNumber = copy.CustomerTestRefNumber;
|
||||
ProjectRefNumber = copy.ProjectRefNumber;
|
||||
CustomerOrderNumber = copy.CustomerOrderNumber;
|
||||
CustomerCostUnit = copy.CustomerCostUnit;
|
||||
LocalOnly = copy.LocalOnly;
|
||||
LastModified = copy.LastModified;
|
||||
LastModifiedBy = copy.LastModifiedBy;
|
||||
Version = copy.Version;
|
||||
}
|
||||
// #endregion constructor
|
||||
private enum Fields
|
||||
{
|
||||
Name,
|
||||
CustomerName,
|
||||
CustomerTestRefNumber,
|
||||
ProjectRefNumber,
|
||||
CustomerOrderNumber,
|
||||
CustomerCostUnit,
|
||||
LocalOnly,
|
||||
LastModified,
|
||||
LastModifiedBy,
|
||||
Version
|
||||
}
|
||||
public static CustomerDetails ReadXML(System.Xml.XmlElement root)
|
||||
{
|
||||
var c = new CustomerDetails();
|
||||
|
||||
foreach (var node in root.ChildNodes)
|
||||
{
|
||||
if (node is System.Xml.XmlElement)
|
||||
{
|
||||
ProcessXMLElement(node as System.Xml.XmlElement, ref c);
|
||||
}
|
||||
}
|
||||
return c;
|
||||
}
|
||||
private static void ProcessXMLElement(System.Xml.XmlElement node, ref CustomerDetails c)
|
||||
{
|
||||
if (!Enum.TryParse(node.Name, out Fields field)) return;
|
||||
switch (field)
|
||||
{
|
||||
case Fields.CustomerCostUnit: c.CustomerCostUnit = node.InnerText; break;
|
||||
case Fields.CustomerName: c.CustomerName = node.InnerText; break;
|
||||
case Fields.CustomerOrderNumber: c.CustomerOrderNumber = node.InnerText; break;
|
||||
case Fields.CustomerTestRefNumber: c.CustomerTestRefNumber = node.InnerText; break;
|
||||
case Fields.LastModified: c.LastModified = DateTime.Parse(node.InnerText, System.Globalization.CultureInfo.InvariantCulture); break;
|
||||
case Fields.LastModifiedBy: c.LastModifiedBy = node.InnerText; break;
|
||||
case Fields.LocalOnly: c.LocalOnly = bool.Parse(node.InnerText); break;
|
||||
case Fields.Name: c.Name = node.InnerText; break;
|
||||
case Fields.ProjectRefNumber: c.ProjectRefNumber = node.InnerText; break;
|
||||
case Fields.Version: c.Version = int.Parse(node.InnerText, System.Globalization.CultureInfo.InvariantCulture); break;
|
||||
default: throw new NotSupportedException("ISODll.CustomerDetails::ProcessXMLElement unsupported field: " + field.ToString());
|
||||
}
|
||||
}
|
||||
public void WriteXML(ref System.Xml.XmlWriter writer)
|
||||
{
|
||||
writer.WriteStartElement("CustomerDetail");
|
||||
|
||||
var fields = Enum.GetValues(typeof(Fields)).Cast<Fields>().ToArray();
|
||||
|
||||
foreach (var field in fields)
|
||||
{
|
||||
writer.WriteStartElement(field.ToString());
|
||||
|
||||
switch (field)
|
||||
{
|
||||
case Fields.CustomerCostUnit: writer.WriteString(CustomerCostUnit); break;
|
||||
case Fields.CustomerName: writer.WriteString(CustomerName); break;
|
||||
case Fields.CustomerOrderNumber: writer.WriteString(CustomerOrderNumber); break;
|
||||
case Fields.CustomerTestRefNumber: writer.WriteString(CustomerTestRefNumber); break;
|
||||
case Fields.LastModified: writer.WriteString(LastModified.ToString(System.Globalization.CultureInfo.InvariantCulture)); break;
|
||||
case Fields.LastModifiedBy: writer.WriteString(LastModifiedBy); break;
|
||||
case Fields.LocalOnly: writer.WriteString(LocalOnly.ToString()); break;
|
||||
case Fields.Name: writer.WriteString(Name); break;
|
||||
case Fields.ProjectRefNumber: writer.WriteString(ProjectRefNumber); break;
|
||||
case Fields.Version: writer.WriteString(Version.ToString(System.Globalization.CultureInfo.InvariantCulture)); break;
|
||||
default: throw new NotSupportedException("CustomerDetails::WriteXML unsupported field " + field.ToString());
|
||||
}
|
||||
|
||||
writer.WriteEndElement();
|
||||
}
|
||||
|
||||
writer.WriteEndElement();
|
||||
}
|
||||
|
||||
public static void DeleteCustomerDetails(string name = null)
|
||||
{
|
||||
try
|
||||
{
|
||||
var errorNumber = DTS.Common.Storage.DbOperations.CustomerDetailsDelete(name, out string errorMessage);
|
||||
|
||||
if (errorNumber != 0)
|
||||
{
|
||||
//APILogger.Log("Failed to delete customer details", errorMessage);
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
//APILogger.Log("Failed to delete customer details", ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user