protected override Snapshot WriteSnapshotImpl(Model model) { var bytes = _formatter.ToByteArray(model); var snapshot = new Snapshot(DateTime.Now, model.Revision); _state.Snapshots.Add(snapshot, bytes); return snapshot; }
protected override Snapshot WriteSnapshotImpl(Model model, ulong lastEntryId) { var bytes = _snapshotFormatter.ToByteArray(model); var snapshot = new Snapshot(DateTime.Now, lastEntryId); _state.Snapshots.Add(snapshot, bytes); return snapshot; }
public override Model LoadSnapshot(Snapshot snapshot) { if (!_state.Snapshots.ContainsKey(snapshot)) { throw new ArgumentException("No such snapshot"); } return _formatter.FromByteArray<Model>(_state.Snapshots[snapshot]); }
public override Model LoadSnapshot(Snapshot snapshot) { string snapshotName = ((FileSnapshot)snapshot).Name; var directory = _config.Location.OfSnapshots; var fileName = Path.Combine(directory, snapshotName); using (var stream = new FileStream(fileName, FileMode.Open, FileAccess.Read)) { return _formatter.Read<Model>(stream); } }
public abstract Model LoadSnapshot(Snapshot snapshot);