diff --git a/src/RoleEditor/MainWindow.xaml b/src/RoleEditor/MainWindow.xaml
index 2883102..27c2af2 100644
--- a/src/RoleEditor/MainWindow.xaml
+++ b/src/RoleEditor/MainWindow.xaml
@@ -260,12 +260,23 @@
+
+
+
+
+
@@ -279,6 +290,15 @@
+
+
+
@@ -288,6 +308,7 @@
+
diff --git a/src/RoleEditor/MainWindow.xaml.cs b/src/RoleEditor/MainWindow.xaml.cs
index 9eeb98d..b605eb9 100644
--- a/src/RoleEditor/MainWindow.xaml.cs
+++ b/src/RoleEditor/MainWindow.xaml.cs
@@ -131,10 +131,13 @@ namespace RoleEditor
#region ship context menu callbacks
- private void DataGridShips_DeleteRequested(DbEntity obj)
+ private async void DataGridShips_DeleteRequested(DbEntity obj)
{
- if(obj is Ship s)
+ if (obj is Ship s)
+ {
+ await s.Delete(this._dbManager);
this._ships.Remove(s);
+ }
}
private async void DataGridShips_EditRequested(DbEntity obj)
@@ -172,10 +175,13 @@ namespace RoleEditor
#region berth context menu callbacks
- private void DataGridBerths_DeleteRequested(DbEntity obj)
+ private async void DataGridBerths_DeleteRequested(DbEntity obj)
{
- if(obj is Berth b)
+ if (obj is Berth b)
+ {
+ await b.Delete(this._dbManager);
this._berths.Remove(b);
+ }
}
private async void DataGridBerths_EditRequested(DbEntity obj)
diff --git a/src/brecal.model/Berth.cs b/src/brecal.model/Berth.cs
index 12fed2d..a9d4f08 100644
--- a/src/brecal.model/Berth.cs
+++ b/src/brecal.model/Berth.cs
@@ -31,6 +31,8 @@ namespace brecal.model
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
@@ -46,7 +48,7 @@ namespace brecal.model
public static void SetLoadQuery(IDbCommand cmd, params object?[] list)
{
- cmd.CommandText = "SELECT id, name, owner_id, authority_id, `lock`, created, modified FROM berth";
+ cmd.CommandText = "SELECT id, name, owner_id, authority_id, `lock`, created, modified, deleted FROM berth";
}
public static List LoadElems(IDataReader reader)
@@ -62,6 +64,7 @@ namespace brecal.model
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;
@@ -79,7 +82,7 @@ namespace brecal.model
public override void SetDelete(IDbCommand cmd)
{
- cmd.CommandText = "DELETE FROM berth WHERE id = @ID";
+ cmd.CommandText = "UPDATE berth set Deleted = 1 WHERE id = @ID";
IDataParameter idParam = cmd.CreateParameter();
idParam.ParameterName = "ID";
diff --git a/src/brecal.model/Ship.cs b/src/brecal.model/Ship.cs
index ba0d73b..a553a9d 100644
--- a/src/brecal.model/Ship.cs
+++ b/src/brecal.model/Ship.cs
@@ -26,6 +26,8 @@ namespace brecal.model
public double? Width { get; set; }
+ public int? Deleted { get; set; }
+
public bool IsTug { get { return Participant_Id != null; } }
public string? TugCompany
@@ -48,7 +50,7 @@ namespace brecal.model
public static void SetLoadQuery(IDbCommand cmd, params object?[] list)
{
- cmd.CommandText = "SELECT id, name, imo, callsign, participant_id, length, width, created, modified FROM ship";
+ cmd.CommandText = "SELECT id, name, imo, callsign, participant_id, length, width, created, modified, deleted FROM ship";
}
public static List LoadElems(IDataReader reader)
@@ -66,6 +68,7 @@ namespace brecal.model
if (!reader.IsDBNull(6)) s.Width = reader.GetFloat(6);
if (!reader.IsDBNull(7)) s.Created = reader.GetDateTime(7);
if (!reader.IsDBNull(8)) s.Modified = reader.GetDateTime(8);
+ if (!reader.IsDBNull(9)) s.Deleted = reader.GetInt16(9);
result.Add(s);
}
return result;
@@ -83,7 +86,7 @@ namespace brecal.model
public override void SetDelete(IDbCommand cmd)
{
- cmd.CommandText = "DELETE FROM ship WHERE id = @ID";
+ cmd.CommandText = "UPDATE ship set Deleted = 1 WHERE id = @ID";
IDataParameter idParam = cmd.CreateParameter();
idParam.ParameterName = "ID";