public Task <AsyncTaskResult> HandleAsync(ServiceExpressedEvent evnt) { return(TryTransactionAsync(async(connection, transaction) => { var info = evnt.Info; var effectedRows = await connection.UpdateAsync(new { Version = evnt.Version, EventSequence = evnt.Sequence }, new { Id = evnt.AggregateRootId, //Version = evnt.Version - 1 }, ConfigSettings.OrderGoodsTable, transaction); if (effectedRows == 1) {//聚合跟状态已经更新 var tasks = new List <Task>(); //插入申请记录 tasks.Add(connection.InsertAsync(new { OrderGoodsId = evnt.AggregateRootId, ServiceNumber = info.ServiceNumber, ExpressName = info.ExpressName, ExpressNumber = info.ExpressNumber, CreatedOn = evnt.Timestamp, }, ConfigSettings.ServiceExpressTable)); await Task.WhenAll(tasks); } })); }
private void Handle(ServiceExpressedEvent evnt) { _serviceExpressInfo = evnt.Info; }