git_bsmd/nsw/Source/bsmd.database/MessageCore.cs

185 lines
8.9 KiB
C#

using System;
using System.Data;
using System.Data.SqlClient;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace bsmd.database
{
public class MessageCore : DatabaseEntity
{
private Guid? previous;
private Guid? next;
private Guid? customerId;
private int? wetris_zz_56_datensatz_id;
public MessageCore()
{
this.tablename = "[dbo].[MessageCore]";
}
#region Properties
public string VisitId { get; set; }
public string TransitId { get; set; }
public string IMO { get; set; }
public string ENI { get; set; }
public string PoC { get; set; }
public string Portname { get; set; }
public DateTime? ETA { get; set; }
public bool IsTransit { get; set; }
public Message.BSMDStatus BSMDStatus { get; set; }
public Message.NSWProvider InitialHIS { get; set; }
public Guid? HerbergFormGuid { get; set; }
public Guid? HerbergFormTemplateGuid { get; set; }
public string HerbergReportType { get; set; }
public string HerbergEmailContactReportingVessel { get; set; }
public string HerbergEmail24HrsContact { get; set; }
public Customer Customer { get; set; }
public Guid? CustomerId { get { return this.customerId; } set { this.customerId = value; } }
#endregion
public override void PrepareSave(IDbCommand cmd)
{
SqlCommand scmd = cmd as SqlCommand;
if (this.VisitId != null) scmd.Parameters.AddWithValue("@P1", this.VisitId);
else scmd.Parameters.AddWithValue("@P1", DBNull.Value);
if (this.TransitId != null) scmd.Parameters.AddWithValue("@P2", this.TransitId);
else scmd.Parameters.AddWithValue("@P2", DBNull.Value);
if (this.IMO != null) scmd.Parameters.AddWithValue("@P3", this.IMO);
else scmd.Parameters.AddWithValue("@P3", DBNull.Value);
if (this.ENI != null) scmd.Parameters.AddWithValue("@P4", this.ENI);
else scmd.Parameters.AddWithValue("@P4", DBNull.Value);
if (this.PoC != null) scmd.Parameters.AddWithValue("@P5", this.PoC);
else scmd.Parameters.AddWithValue("@P5", DBNull.Value);
if (this.Portname != null) scmd.Parameters.AddWithValue("@P6", this.Portname);
else scmd.Parameters.AddWithValue("@P6", DBNull.Value);
if (this.ETA.HasValue) scmd.Parameters.AddWithValue("@P7", this.ETA);
else scmd.Parameters.AddWithValue("@P7", DBNull.Value);
if (this.customerId.HasValue) scmd.Parameters.AddWithValue("@P8", this.customerId);
else scmd.Parameters.AddWithValue("@P8", DBNull.Value);
if (this.previous.HasValue) scmd.Parameters.AddWithValue("@P9", this.previous);
else scmd.Parameters.AddWithValue("@P9", DBNull.Value);
if (this.next.HasValue) scmd.Parameters.AddWithValue("@P10", this.next);
else scmd.Parameters.AddWithValue("@P10", DBNull.Value);
scmd.Parameters.AddWithValue("@P11", this.IsTransit ? 1 : 0);
if (this.wetris_zz_56_datensatz_id.HasValue) scmd.Parameters.AddWithValue("@P12", this.wetris_zz_56_datensatz_id);
else scmd.Parameters.AddWithValue("@P12", DBNull.Value);
scmd.Parameters.AddWithValue("@P13", this.BSMDStatus);
scmd.Parameters.AddWithValue("@P14", this.InitialHIS);
scmd.Parameters.AddWithNullableValue("@P15", this.HerbergFormGuid);
scmd.Parameters.AddWithNullableValue("@P16", this.HerbergFormTemplateGuid);
scmd.Parameters.AddWithNullableValue("@P17", this.HerbergReportType);
scmd.Parameters.AddWithNullableValue("@P18", this.HerbergEmailContactReportingVessel);
scmd.Parameters.AddWithNullableValue("@P19", this.HerbergEmail24HrsContact);
if (this.IsNew)
{
this.CreateId();
scmd.Parameters.AddWithValue("@ID", this.Id);
string query = string.Format("INSERT INTO {0} (Id, VisitId, TransitId, IMO, ENI, PoC, Portname, ETA, CustomerId, " +
"Previous, Next, IsTransit, Wetris_zz_56_datensatz_id, BSMDStatus, InitialHIS, HerbergFormGuid, " +
"HerbergFormTemplateGuid, HerbergReportType, HerbergEmailcontactReportingVessel, HerbergEmail24HrsContact) VALUES " +
"(@ID, @P1, @P2, @P3, @P4, @P5, @P6, @P7, @P8, @P9, @P10, @P11, @P12, @P13, @P14, @P15, @P16, @P17, @P18, @P19)",
this.Tablename);
scmd.CommandText = query;
}
else
{
scmd.Parameters.AddWithValue("@ID", this.Id);
string query = string.Format("UPDATE {0} SET VisitId = @P1, TransitId = @P2, IMO = @P3, ENI = @P4, Poc = @P5, " +
"Portname = @P6, ETA = @P7, CustomerId = @P8, Previous = @P9, Next = @P10, IsTransit = @P11, " +
"Wetris_zz_56_datensatz_id = @P12, BSMDStatus = @P13, InitialHIS = @P14, HerbergFormGuid = @P15, " +
"HerbergFormTemplateGuid = @P16, HerbergReportType = @P17, HerbergEmailContactReportingVessel = @P18, " +
"HerbergEmail24HrsContact = @P19 WHERE Id = @ID", this.Tablename);
scmd.CommandText = query;
}
}
public override void PrepareLoadCommand(System.Data.IDbCommand cmd, Message.LoadFilter filter, params object[] criteria)
{
string query = string.Format("SELECT Id, VisitId, TransitId, IMO, ENI, PoC, Portname, " +
"ETA, CustomerId, Previous, Next, IsTransit, Wetris_zz_56_datensatz_id, BSMDStatus, InitialHIS, " +
"HerbergFormGuid, HerbergFormTemplateGuid, HerbergReportType, HerbergEmailContactReportingVessel, HerbergEmail24HrsContact FROM {0} ",
this.Tablename);
switch (filter)
{
case Message.LoadFilter.WETRIS_SHIP_ID:
{
query += "WHERE Wetris_zz_56_datensatz_id = @WETRIS";
((SqlCommand)cmd).Parameters.AddWithValue("@WETRIS", criteria[0]);
break;
}
case Message.LoadFilter.HERBERG_FORMGUID:
{
query += "WHERE HerbergFormGuid = @HFG";
((SqlCommand)cmd).Parameters.AddWithValue("@HFG", criteria[0]);
break;
}
case Message.LoadFilter.ALL:
default:
break;
}
cmd.CommandText = query;
}
public override List<DatabaseEntity> LoadList(IDataReader reader)
{
List<DatabaseEntity> result = new List<DatabaseEntity>();
while(reader.Read())
{
MessageCore core = new MessageCore();
core.id = reader.GetGuid(0);
if (!reader.IsDBNull(1)) core.VisitId = reader.GetString(1);
if (!reader.IsDBNull(2)) core.TransitId = reader.GetString(2);
if (!reader.IsDBNull(3)) core.IMO = reader.GetString(3);
if (!reader.IsDBNull(4)) core.ENI = reader.GetString(4);
if (!reader.IsDBNull(5)) core.PoC = reader.GetString(5);
if (!reader.IsDBNull(6)) core.Portname = reader.GetString(6);
if (!reader.IsDBNull(7)) core.ETA = reader.GetDateTime(7);
if (!reader.IsDBNull(8)) core.customerId = reader.GetGuid(8);
if (!reader.IsDBNull(9)) core.previous = reader.GetGuid(9);
if (!reader.IsDBNull(10)) core.next = reader.GetGuid(10);
core.IsTransit = reader.GetBoolean(11);
if (!reader.IsDBNull(12)) core.wetris_zz_56_datensatz_id = reader.GetInt32(12);
core.BSMDStatus = (Message.BSMDStatus) Enum.ToObject(typeof(Message.BSMDStatus), reader.GetByte(13));
core.InitialHIS = (Message.NSWProvider) Enum.ToObject(typeof(Message.NSWProvider), reader.GetByte(14));
if (!reader.IsDBNull(15)) core.HerbergFormGuid = reader.GetGuid(15);
if (!reader.IsDBNull(16)) core.HerbergFormTemplateGuid = reader.GetGuid(16);
if (!reader.IsDBNull(17)) core.HerbergReportType = reader.GetString(17);
if (!reader.IsDBNull(18)) core.HerbergEmailContactReportingVessel = reader.GetString(18);
if (!reader.IsDBNull(19)) core.HerbergEmail24HrsContact = reader.GetString(19);
result.Add(core);
}
reader.Close();
return result;
}
}
}