public Task <AsyncTaskResult> HandleAsync(ServiceApplyedEvent evnt) { return(TryTransactionAsync(async(connection, transaction) => { var info = evnt.Info; var effectedRows = await connection.UpdateAsync(new { Status = (int)info.ServiceType, 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, Quantity = info.Quantity, Reason = info.Reason, Remark = info.Remark, CreatedOn = evnt.Timestamp }, ConfigSettings.ApplyServiceTable)); await Task.WhenAll(tasks); } })); }
private void Handle(ServiceApplyedEvent evnt) { _serviceApplyInfo = evnt.Info; switch (evnt.Info.ServiceType) { case GoodsServiceType.Refund: _status = OrderGoodsStatus.Refund; break; case GoodsServiceType.SalesReturn: _status = OrderGoodsStatus.SalesReturn; break; case GoodsServiceType.Service: _status = OrderGoodsStatus.Service; break; case GoodsServiceType.ToDoorService: _status = OrderGoodsStatus.ToDoorService; break; case GoodsServiceType.Change: _status = OrderGoodsStatus.Change; break; } }