116 lines
3.2 KiB
C#
116 lines
3.2 KiB
C#
// Copyright (c) 2023- schick Informatik
|
|
// Description: Port entity
|
|
|
|
using System.Data;
|
|
|
|
namespace brecal.model
|
|
{
|
|
public class Port : DbEntity
|
|
{
|
|
|
|
#region Properties
|
|
|
|
public string? Name { get; set; }
|
|
|
|
public string? Locode { get; set; }
|
|
|
|
public bool IsDeleted { get; set; } = false;
|
|
|
|
#endregion
|
|
|
|
#region overrides
|
|
|
|
public override void SetCreate(IDbCommand cmd)
|
|
{
|
|
cmd.CommandText = "INSERT INTO port (name, locode) VALUES ( @NAME, @LOCODE)";
|
|
this.SetParameters(cmd);
|
|
}
|
|
|
|
public override void SetDelete(IDbCommand cmd)
|
|
{
|
|
cmd.CommandText = "UPDATE port SET deleted = 1 WHERE id = @ID";
|
|
IDataParameter idParam = cmd.CreateParameter();
|
|
idParam.ParameterName = "ID";
|
|
idParam.Value = this.Id;
|
|
cmd.Parameters.Add(idParam);
|
|
}
|
|
|
|
public override void SetUpdate(IDbCommand cmd)
|
|
{
|
|
cmd.CommandText = "UPDATE port set name = @NAME, locode = @LOCODE WHERE id = @ID";
|
|
this.SetParameters(cmd);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region public static methods
|
|
|
|
public static async Task<List<Port>> LoadAll(IDBManager manager)
|
|
{
|
|
List<DbEntity> loadResultList = await manager.Load(SetLoadQuery, LoadElems);
|
|
List<Port> result = new();
|
|
foreach (Port p in loadResultList.Cast<Port>())
|
|
result.Add(p);
|
|
return result;
|
|
}
|
|
|
|
public static void SetLoadQuery(IDbCommand cmd, params object?[] list)
|
|
{
|
|
cmd.CommandText = "SELECT id, name, locode, created, modified, deleted FROM port WHERE deleted = 0";
|
|
}
|
|
|
|
public static List<DbEntity> LoadElems(IDataReader reader)
|
|
{
|
|
List<DbEntity> result = new();
|
|
while (reader.Read())
|
|
{
|
|
Port p = new();
|
|
p.Id = (uint)reader.GetInt32(0);
|
|
if (!reader.IsDBNull(1)) p.Name = reader.GetString(1);
|
|
if (!reader.IsDBNull(2)) p.Locode = reader.GetString(2);
|
|
if (!reader.IsDBNull(3)) p.Created = reader.GetDateTime(3);
|
|
if (!reader.IsDBNull(4)) p.Modified = reader.GetDateTime(4);
|
|
if (!reader.IsDBNull(5)) p.IsDeleted = reader.GetBoolean(5);
|
|
result.Add(p);
|
|
}
|
|
return result;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region private methods
|
|
|
|
private void SetParameters(IDbCommand cmd)
|
|
{
|
|
IDbDataParameter name = cmd.CreateParameter();
|
|
name.ParameterName = "NAME";
|
|
name.Value = this.Name;
|
|
cmd.Parameters.Add(name);
|
|
|
|
IDbDataParameter desc = cmd.CreateParameter();
|
|
desc.ParameterName = "LOCODE";
|
|
desc.Value = this.Locode;
|
|
cmd.Parameters.Add(desc);
|
|
|
|
IDataParameter idParam = cmd.CreateParameter();
|
|
idParam.ParameterName = "ID";
|
|
idParam.Value = this.Id;
|
|
cmd.Parameters.Add(idParam);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region overrides
|
|
|
|
public override string ToString()
|
|
{
|
|
return $"{Name} ({Locode})";
|
|
}
|
|
|
|
#endregion
|
|
|
|
}
|
|
|
|
|
|
}
|