コード例 #1
0
ファイル: SnapshotStorage.cs プロジェクト: missxingwu/Vertex
 public async Task Update <T>(SnapshotUnit <TPrimaryKey, T> snapshot)
     where T : ISnapshot, new()
 {
     using var db = this.dbFactory.GetSnapshotDb(this.optionName);
     await db.UpdateAsync(new SnapshotEntity <TPrimaryKey>
     {
         Id                = snapshot.Meta.ActorId,
         Data              = this.serializer.Serialize(snapshot.Data),
         DoingVersion      = snapshot.Meta.DoingVersion,
         Version           = snapshot.Meta.Version,
         MinEventTimestamp = snapshot.Meta.MinEventTimestamp,
         MinEventVersion   = snapshot.Meta.MinEventVersion,
         IsLatest          = snapshot.Meta.IsLatest
     }, this.tableName);
 }
コード例 #2
0
ファイル: CrudHandler.cs プロジェクト: feijie999/Vertex
        public override void Apply(SnapshotUnit <TPrimaryKey, TSnapshot> snapshotBox, EventUnit <TPrimaryKey> eventBox)
        {
            switch (eventBox.Event)
            {
            case CreatingEvent <TSnapshot> :
                CreatingSnapshotHandle(snapshotBox.Data, (CreatingEvent <TSnapshot>)eventBox.Event);
                return;

            case UpdatingEvent <TSnapshot> :
                UpdatingSnapshotHandle(snapshotBox.Data, (UpdatingEvent <TSnapshot>)eventBox.Event);
                return;

            case DeletingEvent <TSnapshot> :
                DeletingSnapshotHandle(snapshotBox.Data, (DeletingEvent <TSnapshot>)eventBox.Event);
                return;

            default:
                base.Apply(snapshotBox, eventBox);
                return;
            }
        }