135 lines
4.2 KiB
C#
135 lines
4.2 KiB
C#
// Copyright (c) 2023- schick Informatik
|
|
// Description: Model class for berth entity
|
|
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace brecal.model
|
|
{
|
|
public class Berth : DbEntity
|
|
{
|
|
|
|
#region Properties
|
|
|
|
public string? Name { get; set; }
|
|
|
|
public bool? Lock { get; set; }
|
|
|
|
public uint? Owner_Id { get; set; }
|
|
|
|
public uint? Authority_Id { get; set; }
|
|
|
|
public Participant? Owner { get; set; }
|
|
|
|
public Participant? Authority { get; set; }
|
|
|
|
public string? Terminal { get { if (Owner != null) return Owner.Name; else return "n/a"; } }
|
|
|
|
public string? Authority_Text { get { if (Authority != null) return Authority.Name; else return "n/a"; } }
|
|
|
|
public int? Deleted { get; set; }
|
|
|
|
#endregion
|
|
|
|
#region public static methods
|
|
|
|
public static async Task<List<Berth>> LoadAll(IDBManager manager)
|
|
{
|
|
List<DbEntity> loadResultList = await manager.Load(SetLoadQuery, LoadElems);
|
|
List<Berth> result = new();
|
|
foreach (Berth b in loadResultList.Cast<Berth>())
|
|
result.Add(b);
|
|
return result;
|
|
}
|
|
|
|
public static void SetLoadQuery(IDbCommand cmd, params object?[] list)
|
|
{
|
|
cmd.CommandText = "SELECT id, name, owner_id, authority_id, `lock`, created, modified, deleted FROM berth";
|
|
}
|
|
|
|
public static List<DbEntity> LoadElems(IDataReader reader)
|
|
{
|
|
List<DbEntity> result = new List<DbEntity>();
|
|
while (reader.Read())
|
|
{
|
|
Berth b = new();
|
|
b.Id = (uint)reader.GetInt32(0);
|
|
if (!reader.IsDBNull(1)) b.Name = reader.GetString(1);
|
|
if (!reader.IsDBNull(2)) b.Owner_Id = (uint) reader.GetInt32(2);
|
|
if (!reader.IsDBNull(3)) b.Authority_Id = (uint) reader.GetInt32(3);
|
|
if (!reader.IsDBNull(4)) b.Lock = reader.GetBoolean(4);
|
|
if (!reader.IsDBNull(5)) b.Created = reader.GetDateTime(5);
|
|
if (!reader.IsDBNull(6)) b.Modified = reader.GetDateTime(6);
|
|
if (!reader.IsDBNull(7)) b.Deleted = reader.GetInt16(7);
|
|
result.Add(b);
|
|
}
|
|
return result;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region DbEntity implementation
|
|
|
|
public override void SetCreate(IDbCommand cmd)
|
|
{
|
|
cmd.CommandText = "INSERT INTO berth (owner_id, authority_id, name, `lock`) VALUES ( @PID, @AID, @NAME, @LOCK)";
|
|
this.SetParameters(cmd);
|
|
}
|
|
|
|
public override void SetDelete(IDbCommand cmd)
|
|
{
|
|
cmd.CommandText = "UPDATE berth 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 berth SET name = @NAME, owner_id = @PID, authority_id = @AID, `lock` = @LOCK WHERE id = @ID";
|
|
this.SetParameters(cmd);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region private methods
|
|
|
|
private void SetParameters(IDbCommand cmd)
|
|
{
|
|
IDbDataParameter id = cmd.CreateParameter();
|
|
id.ParameterName = "ID";
|
|
id.Value = this.Id;
|
|
cmd.Parameters.Add(id);
|
|
|
|
IDbDataParameter pid = cmd.CreateParameter();
|
|
pid.ParameterName = "PID";
|
|
pid.Value = this.Owner_Id;
|
|
cmd.Parameters.Add(pid);
|
|
|
|
IDbDataParameter aid = cmd.CreateParameter();
|
|
aid.ParameterName = "AID";
|
|
aid.Value = this.Authority_Id;
|
|
cmd.Parameters.Add(aid);
|
|
|
|
IDbDataParameter name = cmd.CreateParameter();
|
|
name.ParameterName = "NAME";
|
|
name.Value = this.Name;
|
|
cmd.Parameters.Add(name);
|
|
|
|
IDbDataParameter lockparam = cmd.CreateParameter();
|
|
lockparam.ParameterName = "LOCK";
|
|
lockparam.Value = this.Lock;
|
|
cmd.Parameters.Add(lockparam);
|
|
}
|
|
|
|
#endregion
|
|
|
|
}
|
|
}
|