Esempio n. 1
0
 public CreateOrderController(
     CreateOrderService orderService,
     IOrderDetailsRepository orderDetailsRepository
     )
 {
     this.orderService           = orderService;
     this.orderDetailsRepository = orderDetailsRepository;
 }
Esempio n. 2
0
 public CreateOrderController(
     CreateOrderService orderService,
     ILastUserOrderProvider lastUserOrders
     )
 {
     this.orderService   = orderService;
     this.lastUserOrders = lastUserOrders;
 }
Esempio n. 3
0
        public async Task <ApiResult> CreateOrder(OrderCreateDto input)
        {
            var mockUser = (await accountQueryService.GetMockAccount()).GetData <CurrentUser>();
            //申明一个创建订单领域服务实例,将远程rpc调用作为匿名函数传递进去
            var createOrderService = new CreateOrderService(GetGoodsListByIds, DeductionGoodsStock, UnDeductionGoodsStock);

            return(await ApiResult.Ok("订单创建成功!").RunAsync(async() =>
            {
                var order = await createOrderService.CreateOrder(mockUser.Id, mockUser.UserName, mockUser.Address, mockUser.Tel, input.Items.CopyTo <OrderCreateDto.OrderCreateItemDto, OrderItem>().ToList());//通过订单服务创建订单
                repository.Add(order);
                if (await new CheckOrderCanCreateSpecification(repository).IsSatisfiedBy(order))
                {
                    await unitofWork.CommitAsync();
                }
                await eventBus.SendEvent(EventTopicDictionary.Order.CreateOrderSucc, new OperateOrderSuccessEvent(order, mockUser.UserName)); //发送订单创建成功事件
            },
                                                                                                                                              //失败回滚
                                                          createOrderService.UnCreateOrder));
        }
Esempio n. 4
0
 static void Test()
 {
     var context = CreateOrderServiceTestContext.Setup();
     var sut     = new CreateOrderService(null);
 }