// Copyright (c) 2024-present schick Informatik // Description: using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; namespace bsmd.database { public class SERV_Template : DatabaseEntityAsync, IComparable { #region Construction public SERV_Template() { this.tablename = "[dbo].[SERV_template]"; } #endregion #region Properties [MaxLength(99)] public string ServiceName { get; set; } [MaxLength(255)] public string ServiceBeneficiary { get; set; } [MaxLength(255)] public string ServiceInvoiceRecipient { get; set; } #endregion #region DatabaseEntity implementation public override void PrepareSave(IDbCommand cmd) { SqlCommand scmd = cmd as SqlCommand; if (this.ServiceName != null) scmd.Parameters.AddWithValue("@P1", this.ServiceName); else scmd.Parameters.AddWithValue("@P1", DBNull.Value); if (this.ServiceBeneficiary != null) scmd.Parameters.AddWithValue(@"P2", this.ServiceBeneficiary); else scmd.Parameters.AddWithValue("@P2", DBNull.Value); if (this.ServiceInvoiceRecipient != null) scmd.Parameters.AddWithValue("@P3", this.ServiceInvoiceRecipient); else scmd.Parameters.AddWithValue("@P3", DBNull.Value); if (this.IsNew) { this.CreateId(); cmd.CommandText = string.Format("INSERT INTO {0} (Id, ServiceName, ServiceBeneficiary, ServiceInvoiceRecipient) VALUES " + "(@ID, @P1, @P2, @P3)", this.Tablename); } else { cmd.CommandText = string.Format("UPDATE {0} SET ServiceName = @P1, ServiceBeneficiary = @P2, ServiceInvoiceRecipient = @P3 WHERE Id = @ID", this.Tablename); } scmd.Parameters.AddWithValue("@ID", this.Id); } public override void PrepareLoadCommand(IDbCommand cmd, Message.LoadFilter filter, params object[] criteria) { string query = string.Format("SELECT Id, ServiceName, ServiceBeneficiary, ServiceInvoiceRecipient 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()) { SERV_Template serv_t = new SERV_Template(); serv_t.id = reader.GetGuid(0); if (!reader.IsDBNull(1)) serv_t.ServiceName = reader.GetString(1); if (!reader.IsDBNull(2)) serv_t.ServiceBeneficiary = reader.GetString(2); if (!reader.IsDBNull(3)) serv_t.ServiceInvoiceRecipient = reader.GetString(3); result.Add(serv_t); } reader.Close(); return result; } protected override DatabaseEntityAsync ReadRowFromReader(IDataReader reader) { SERV_Template serv_t = null; if (reader != null) { serv_t = new SERV_Template(); serv_t.id = reader.GetGuid(0); if (!reader.IsDBNull(1)) serv_t.ServiceName = reader.GetString(1); if (!reader.IsDBNull(2)) serv_t.ServiceBeneficiary = reader.GetString(2); if (!reader.IsDBNull(3)) serv_t.ServiceInvoiceRecipient = reader.GetString(3); } return serv_t; } #endregion #region IComparable implementation public int CompareTo(object obj) { if (obj is SERV_Template template) { return this.ServiceName.CompareTo(template.ServiceName); } return 0; } #endregion } }