// Copyright (c) 2020-present schick Informatik // Description: Save location for AGNT templates (lookup / pre-filled) using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Runtime.Serialization; namespace bsmd.database { public class AGNT_Template : DatabaseEntityAsync, IComparable { #region Construction public AGNT_Template() { this.tablename = "[dbo].[AGNT_template]"; } #endregion #region Properties [MaxLength(49)] public string AgentTitle { get; set; } [MaxLength(99)] public string AgentCompanyName { get; set; } [MaxLength(99)] public string AgentStreetAndNumber { get; set; } [MaxLength(24)] public string AgentPostalCode { get; set; } [MaxLength(99)] public string AgentCity { get; set; } [MaxLength(99)] public string AgentCountry { get; set; } [MaxLength(99)] public string AgentLastName { get; set; } [MaxLength(99)] public string AgentFirstName { get; set; } [MaxLength(99)] public string AgentPhone { get; set; } [MaxLength(99)] public string AgentFax { get; set; } [MaxLength(99)] public string AgentEMail { get; set; } #endregion #region DatabaseEntity implementation public override void PrepareSave(System.Data.IDbCommand cmd) { SqlCommand scmd = cmd as SqlCommand; if (this.AgentTitle != null) scmd.Parameters.AddWithValue("@P1", this.AgentTitle); else scmd.Parameters.AddWithValue("@P1", DBNull.Value); if (this.AgentCompanyName != null) scmd.Parameters.AddWithValue("@P2", this.AgentCompanyName); else scmd.Parameters.AddWithValue("@P2", DBNull.Value); if (this.AgentStreetAndNumber != null) scmd.Parameters.AddWithValue("@P3", this.AgentStreetAndNumber); else scmd.Parameters.AddWithValue("@P3", DBNull.Value); if (this.AgentPostalCode != null) scmd.Parameters.AddWithValue("@P4", this.AgentPostalCode); else scmd.Parameters.AddWithValue("@P4", DBNull.Value); if (this.AgentCity != null) scmd.Parameters.AddWithValue("@P5", this.AgentCity); else scmd.Parameters.AddWithValue("@P5", DBNull.Value); if (this.AgentCountry != null) scmd.Parameters.AddWithValue("@P6", this.AgentCountry); else scmd.Parameters.AddWithValue("@P6", DBNull.Value); if (this.AgentLastName != null) scmd.Parameters.AddWithValue("@P7", this.AgentLastName); else scmd.Parameters.AddWithValue("@P7", DBNull.Value); if (this.AgentFirstName != null) scmd.Parameters.AddWithValue("@P8", this.AgentFirstName); else scmd.Parameters.AddWithValue("@P8", DBNull.Value); if (this.AgentPhone != null) scmd.Parameters.AddWithValue("@P9", this.AgentPhone); else scmd.Parameters.AddWithValue("@P9", DBNull.Value); if (this.AgentFax != null) scmd.Parameters.AddWithValue("@P10", this.AgentFax); else scmd.Parameters.AddWithValue("@P10", DBNull.Value); if (this.AgentEMail != null) scmd.Parameters.AddWithValue("@P11", this.AgentEMail); else scmd.Parameters.AddWithValue("@P11", DBNull.Value); if (this.IsNew) { this.CreateId(); scmd.Parameters.AddWithValue("@ID", this.Id); cmd.CommandText = string.Format("INSERT INTO {0} (Id, Title, AgentCompanyName, AgentStreetAndNumber, " + "AgentPostalCode, AgentCity, AgentCountry, AgentLastName, AgentFirstName, AgentPhone, AgentFax, " + "AgentEMail) VALUES (@ID, @P1, @P2, @P3, @P4, @P5, @P6, @P7, @P8, @P9, @P10, @P11)", this.Tablename); } else { cmd.CommandText = string.Format("UPDATE {0} SET Title = @P1, AgentCompanyName = @P2, AgentStreetAndNumber = @P3, AgentPostalCode = @P4, AgentCity = @P5, " + "AgentCountry = @P6, AgentLastName = @P7, AgentFirstName = @P8, AgentPhone = @P9, AgentFax = @P10, " + "AgentEMail = @P11 WHERE Id = @ID", this.Tablename); scmd.Parameters.AddWithValue("@ID", this.Id); } } public override void PrepareLoadCommand(System.Data.IDbCommand cmd, Message.LoadFilter filter, params object[] criteria) { string query = string.Format("SELECT Id, Title, AgentCompanyName, AgentStreetAndNumber, AgentPostalCode, AgentCity, AgentCountry, " + "AgentLastName, AgentFirstName, AgentPhone, AgentFax, AgentEMail FROM {0} ", this.Tablename); switch (filter) { case Message.LoadFilter.ALL: default: break; } cmd.CommandText = query; } public override List LoadList(System.Data.IDataReader reader) { List result = new List(); while (reader.Read()) { AGNT_Template agnt_t = new AGNT_Template(); agnt_t.id = reader.GetGuid(0); if (!reader.IsDBNull(1)) agnt_t.AgentTitle = reader.GetString(1); if (!reader.IsDBNull(2)) agnt_t.AgentCompanyName = reader.GetString(2); if (!reader.IsDBNull(3)) agnt_t.AgentStreetAndNumber = reader.GetString(3); if (!reader.IsDBNull(4)) agnt_t.AgentPostalCode = reader.GetString(4); if (!reader.IsDBNull(5)) agnt_t.AgentCity = reader.GetString(5); if (!reader.IsDBNull(6)) agnt_t.AgentCountry = reader.GetString(6); if (!reader.IsDBNull(7)) agnt_t.AgentLastName = reader.GetString(7); if (!reader.IsDBNull(8)) agnt_t.AgentFirstName = reader.GetString(8); if (!reader.IsDBNull(9)) agnt_t.AgentPhone = reader.GetString(9); if (!reader.IsDBNull(10)) agnt_t.AgentFax = reader.GetString(10); if (!reader.IsDBNull(11)) agnt_t.AgentEMail = reader.GetString(11); result.Add(agnt_t); } reader.Close(); return result; } public int CompareTo(object obj) { if (obj is AGNT_Template) { return AgentTitle.CompareTo(((AGNT_Template)obj).AgentTitle); } return 0; } protected override DatabaseEntityAsync ReadRowFromReader(IDataReader reader) { AGNT_Template agnt_t = null; if(reader != null) { agnt_t = new AGNT_Template(); agnt_t.id = reader.GetGuid(0); if (!reader.IsDBNull(1)) agnt_t.AgentTitle = reader.GetString(1); if (!reader.IsDBNull(2)) agnt_t.AgentCompanyName = reader.GetString(2); if (!reader.IsDBNull(3)) agnt_t.AgentStreetAndNumber = reader.GetString(3); if (!reader.IsDBNull(4)) agnt_t.AgentPostalCode = reader.GetString(4); if (!reader.IsDBNull(5)) agnt_t.AgentCity = reader.GetString(5); if (!reader.IsDBNull(6)) agnt_t.AgentCountry = reader.GetString(6); if (!reader.IsDBNull(7)) agnt_t.AgentLastName = reader.GetString(7); if (!reader.IsDBNull(8)) agnt_t.AgentFirstName = reader.GetString(8); if (!reader.IsDBNull(9)) agnt_t.AgentPhone = reader.GetString(9); if (!reader.IsDBNull(10)) agnt_t.AgentFax = reader.GetString(10); if (!reader.IsDBNull(11)) agnt_t.AgentEMail = reader.GetString(11); } return agnt_t; } #endregion } }