- add methods to handle entries

- first implementation of OnGBaseEntryChanged
pull/26/head
Simon Gockner 6 years ago
parent ddc76e7e25
commit f984fd48e5
  1. 38
      GBase/GBaseTable.cs

@ -119,14 +119,46 @@ namespace GBase
return Columns.Remove(column);
}
private bool AddEntry(object entry) //TODO: Write to file
{
Entries.Add(entry);
return true;
}
private bool ModifyEntry(object entry, string propertyName, object value) //TODO: Write to file
{
PropertyInfo property = entry.GetType().GetProperty(propertyName);
if (property == null)
return false;
property.SetValue(entry, value);
return true;
}
private bool RemoveEntry(object entry) //TODO: remove from file
{
if (!Entries.Contains(entry))
return false;
return Entries.Remove(entry);
}
/// <summary>
/// A <see cref="IGBase"/> entry changed
/// </summary>
/// <param name="sender">The sender</param>
/// <param name="entry">The entry (sender)</param>
/// <param name="args">The <see cref="GBaseEntryChangedEventArgs"/></param>
private void OnGBaseEntryChanged(object sender, GBaseEntryChangedEventArgs args)
private void OnGBaseEntryChanged(object entry, GBaseEntryChangedEventArgs args)
{
//TODO: Implement function, depending on #23
//TODO: Might change, depending on #23
bool success;
if (!Entries.Contains(entry))
success = AddEntry(entry);
else
success = ModifyEntry(entry, args.ColumnName, args.Value);
if (!success)
throw new Exception("Failed to handle EntryChanged"); //TODO: Decide what to do here
}
/// <summary>

Loading…
Cancel
Save