/// <summary>
        /// 订单过期
        /// </summary>
        /// <param name="evnt"></param>
        /// <returns></returns>
        public Task <AsyncTaskResult> HandleAsync(OrderExpiredEvent evnt)
        {
            var tasks = new List <Task>();

            foreach (var goodsLine in evnt.OrderTotal.Lines)
            {
                //发送给所有商品 取消预定
                tasks.Add(_commandService.SendAsync(
                              new CancelSpecificationReservationCommand(
                                  goodsLine.SpecificationQuantity.Specification.GoodsId,
                                  evnt.AggregateRootId)));
            }
            Task.WaitAll(tasks.ToArray());
            return(Task.FromResult(AsyncTaskResult.Success));
        }
示例#2
0
 public Task <AsyncTaskResult> HandleAsync(OrderExpiredEvent evnt)
 {
     return(TryUpdateRecordAsync(connection =>
     {
         return connection.UpdateAsync(new
         {
             Status = (int)OrderStatus.Expired,
             Version = evnt.Version
         }, new
         {
             OrderId = evnt.AggregateRootId,
             //Version = evnt.Version - 1
         }, ConfigSettings.OrderTable);
     }));
 }
示例#3
0
 private void Handle(OrderExpiredEvent evnt)
 {
     _status = OrderStatus.Expired;
 }