- Setting Active = true; loads from file if one exists.
- if your table didn't exist then the developer needs to add the columns before adding rows.
- below is an example of how one could wrap the FileTable.
- below is sample output from AppSmith App
public class Settings { // the entity class that represents the row we are modeling
public Settings() { }
public int Id { get; set; } = 0;
public string Name { get; set; } = "";
public string Value { get; set; } = "";
}
public class SettingsFileTable { // FileTable Wrapper that supports basic REST ops... from UnitTests
private readonly FileTable _table;
public SettingsFileTable(string fileName) {
_table = new FileTable(fileName);
_table.Active = true;
if (_table.Columns.Count() == 0) {
_table.AddColumn("Id", ColumnType.Int32);
_table.AddColumn("Name", ColumnType.String);
_table.AddColumn("Value", ColumnType.String);
}
}
public Columns Columns { get { return _table.Columns; }}
public Rows Rows { get { return _table.Rows; }}
public Settings? Get(int id) {
if (_table.Rows.Contains(id)) {
return new Settings(){
Id = id,
Name = _table.Rows[id]["Name"].Value,
Value = _table.Rows[id]["Value"].Value
};
} else {
return null;
}
}
public void Insert(Settings item) {
int RowKey = _table.AddRow();
_table.Rows[RowKey]["Id"].Value = item.Id.AsString();
_table.Rows[RowKey]["Name"].Value = item.Name;
_table.Rows[RowKey]["Value"].Value = item.Value;
_table.Save();
}
public void Update(Settings item) {
int RowKey = item.Id;
_table.Rows[RowKey]["Id"].Value = item.Id.AsString();
_table.Rows[RowKey]["Name"].Value = item.Name;
_table.Rows[RowKey]["Value"].Value = item.Value;
_table.Save();
}
public void Delete(Settings item) {
int RowKey = item.Id;
_table.Rows.Remove(RowKey, out Row? _);
_table.Save();
}
}