diff --git a/GBase/GBase.cs b/GBase/GBase.cs index e87c247..6008166 100644 --- a/GBase/GBase.cs +++ b/GBase/GBase.cs @@ -123,13 +123,13 @@ namespace GBase return Tables.Remove(table); } - public bool AddEntry(T entry) where T : INotifyGBaseEntryChanged + public async Task AddEntry(T entry) where T : INotifyGBaseEntryChanged { IGBaseTable table = GetTable(); if (table == null) throw new Exception(); //TODO: Create exception - return table.AddEntry(entry); + return await table.AddEntry(entry); } /// diff --git a/GBase/GBaseTable.cs b/GBase/GBaseTable.cs index 5684bb1..5076bac 100644 --- a/GBase/GBaseTable.cs +++ b/GBase/GBaseTable.cs @@ -123,11 +123,13 @@ namespace GBase /// /// The entry implementing /// True if successful, false if not - public bool AddEntry(T entry) //TODO: Write to file + public async Task AddEntry(T entry) //TODO: Write to file { Entries.Add(entry); entry.GBaseEntryChanged += OnGBaseEntryChanged; + await _fileHandler.AddEntry(entry, this); + return true; } @@ -136,13 +138,15 @@ namespace GBase /// /// The entry implementing /// True if successful, false if not - public bool RemoveEntry(T entry) //TODO: remove from file + public async Task RemoveEntry(T entry) //TODO: remove from file { if (!Entries.Contains(entry)) return false; entry.GBaseEntryChanged -= OnGBaseEntryChanged; + await _fileHandler.RemoveEntry(entry); + return Entries.Remove(entry); } @@ -190,7 +194,7 @@ namespace GBase foreach (var entry in Entries.ToList()) { - RemoveEntry(entry); + await RemoveEntry(entry); } Entries.Clear(); diff --git a/GBase/Interfaces/IGBase.cs b/GBase/Interfaces/IGBase.cs index 955e242..380d7cc 100644 --- a/GBase/Interfaces/IGBase.cs +++ b/GBase/Interfaces/IGBase.cs @@ -58,6 +58,6 @@ namespace GBase.Interfaces /// True if successful, false if not bool RemoveTable(IGBaseTable table); - bool AddEntry(T entry) where T : INotifyGBaseEntryChanged; + Task AddEntry(T entry) where T : INotifyGBaseEntryChanged; } } \ No newline at end of file diff --git a/GBase/Interfaces/IGBaseTable.cs b/GBase/Interfaces/IGBaseTable.cs index 52673bc..c240e37 100644 --- a/GBase/Interfaces/IGBaseTable.cs +++ b/GBase/Interfaces/IGBaseTable.cs @@ -16,13 +16,13 @@ namespace GBase.Interfaces /// The entries of this /// List Entries { get; } - + /// /// Add an entry that implements to this /// /// The entry implementing /// True if successful, false if not - bool AddEntry(T entry); + Task AddEntry(T entry); //T GetEntry(T entry); //TODO: This doesn't make sense... (passing instance of T to get the same instance back...) @@ -32,7 +32,7 @@ namespace GBase.Interfaces /// /// The entry implementing /// True if successful, false if not - bool RemoveEntry(T entry); + Task RemoveEntry(T entry); } ///