/// <summary> /// 订单付款确认信息 提交商品规格预定 /// </summary> /// <param name="evnt"></param> /// <returns></returns> public Task <AsyncTaskResult> HandleAsync(OrderPaymentConfirmedEvent evnt) { var tasks = new List <Task>(); //通过商品ID 分组 var goodsGroup = evnt.OrderTotal.Lines.GroupBy(x => x.SpecificationQuantity.Specification.GoodsId); foreach (var goods in goodsGroup) { //每个商品都发送确认预定信息 if (evnt.OrderStatus == OrderStatus.PaymentSuccess) { tasks.Add(_commandService.SendAsync(new CommitSpecificationReservationCommand( goods.Key, evnt.AggregateRootId))); } else if (evnt.OrderStatus == OrderStatus.PaymentRejected) { tasks.Add(_commandService.SendAsync(new CancelSpecificationReservationCommand( goods.Key, evnt.AggregateRootId))); } } Task.WaitAll(tasks.ToArray()); return(Task.FromResult(AsyncTaskResult.Success)); }
public Task <AsyncTaskResult> HandleAsync(OrderPaymentConfirmedEvent evnt) { return(TryUpdateRecordAsync(connection => { return connection.UpdateAsync(new { Status = (int)evnt.OrderStatus, Version = evnt.Version }, new { OrderId = evnt.AggregateRootId, //Version = evnt.Version - 1 }, ConfigSettings.OrderTable); })); }
public async Task Handle(OrderPaymentConfirmedEvent notification, CancellationToken cancellationToken) { await _mediatorHandler.SendCommand(new CompleteOrderCommand(notification.OrderId, notification.CustomerId)); }
private void Handle(OrderPaymentConfirmedEvent evnt) { _status = evnt.OrderStatus; _payInfo = evnt.PayInfo; }