public virtual void RestoreEngines() { EntityTable restoredEngines = persistenceStrategy.Restore(engines); engines.Restore(restoredEngines); }
internal override void Save(EntityTable table) { Stream stream = File.Open(GetFileName(table) + FileSuffix, FileMode.Create); BinaryFormatter formatter = new BinaryFormatter(); formatter.Serialize(stream, table); stream.Close(); }
// private constructor private DatabaseFacade() { engines = new EntityTable(EntityKeyGenerator.Instance); engines.EntityTableItemAdded += HandleEngineAdded; engines.EntityTableRestored += HandleEnginesRestored; // Set which persistence strategy to use // (maybe get from configuration settings somewhere) persistenceStrategy = new EntitySerializationStrategy(); }
internal override EntityTable Restore(EntityTable table) { Stream stream = File.Open(GetFileName(table) + FileSuffix, FileMode.Open); BinaryFormatter formatter = new BinaryFormatter(); EntityTable restoredTable = (EntityTable)formatter.Deserialize(stream); stream.Close(); return(restoredTable); }
internal virtual void Restore(EntityTable restoredTable) { entities.Clear(); foreach (KeyValuePair<int?, object> pair in restoredTable.entities) { entities.Add(pair.Key, pair.Value); } if (EntityTableRestored != null) { EntityTableRestored(this, EventArgs.Empty); } }
internal virtual void Restore(EntityTable restoredTable) { entities.Clear(); foreach (KeyValuePair <int?, object> pair in restoredTable.entities) { entities.Add(pair.Key, pair.Value); } if (EntityTableRestored != null) { EntityTableRestored(this, EventArgs.Empty); } }
internal override EntityTable Restore(EntityTable table) { // code to restore table data from CSV format (omitted) return(table); }
internal override void Save(EntityTable table) { // code to save table data in CSV format (omitted) }
internal abstract void Save(EntityTable table);
internal virtual string GetFileName(EntityTable table) { return table.GetType().Name; }
internal abstract EntityTable Restore(EntityTable table);
internal override EntityTable Restore(EntityTable table) { // code to restore table data from CSV format (omitted) return table; }
internal virtual string GetFileName(EntityTable table) { return(table.GetType().Name); }