public CreateOrderController( CreateOrderService orderService, IOrderDetailsRepository orderDetailsRepository ) { this.orderService = orderService; this.orderDetailsRepository = orderDetailsRepository; }
public CreateOrderController( CreateOrderService orderService, ILastUserOrderProvider lastUserOrders ) { this.orderService = orderService; this.lastUserOrders = lastUserOrders; }
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)); }
static void Test() { var context = CreateOrderServiceTestContext.Setup(); var sut = new CreateOrderService(null); }