public async Task Consume(ConsumeContext <CreateOrderMessageCommand> context) { var newAddress = new Domain.OrderAggregate.Address(context.Message.Province, context.Message.District, context.Message.Street, context.Message.ZipCode, context.Message.Line); Domain.OrderAggregate.Order order = new Domain.OrderAggregate.Order(context.Message.BuyerId, newAddress); context.Message.OrderItems.ForEach(x => { order.AddOrderItem(x.ProductId, x.ProductName, x.Price, x.PictureUrl); }); await _orderDbContext.Orders.AddAsync(order); await _orderDbContext.SaveChangesAsync(); }
public OrderDto(Domain.OrderAggregate.Order order) { OrderItems = new List <OrderItemDto>(); foreach (var orderGoodItem in order.GoodItems) { var orderItemDto = new OrderItemDto { Quantity = orderGoodItem.GetUnits(), Name = orderGoodItem.Details.Name, Type = GoodItemTypeEnum.From(orderGoodItem.GetItemType()).Name, IsImported = orderGoodItem.GetImportStatus(), UnitPrice = orderGoodItem.GetTotalPrice() }; OrderItems.Add(orderItemDto); } TotalPrice = order.GetTotalPrice().ToString("C"); TotalSalesTax = order.GetTotalSalesTax().ToString("C"); }
public async Task <Response <CreatedOrderDto> > Handle(CreateOrderCommand request, CancellationToken cancellationToken) { var newAddress = new Address(request.Address.Province, request.Address.District, request.Address.Street, request.Address.ZipCode, request.Address.Line); Domain.OrderAggregate.Order newOrder = new Domain.OrderAggregate.Order(request.BuyerId, newAddress); request.OrderItems.ForEach(x => { newOrder.AddOrderItem(x.ProductId, x.ProductName, x.Price, x.PictureUrl); }); await _context.Orders.AddAsync(newOrder); await _context.SaveChangesAsync(); return(Response <CreatedOrderDto> .Success(new CreatedOrderDto { OrderId = newOrder.Id }, 200)); }
public async Task <IDataResult <CreatedOrderDto> > Handle(CreateOrderCommand request, CancellationToken cancellationToken) { var newAddress = new Address(request.Address.Province, request.Address.District, request.Address.Street, request.Address.ZipCode, request.Address.Line); Domain.OrderAggregate.Order newOrder = new Domain.OrderAggregate.Order(request.BuyerId, newAddress); request.OrderItems.ForEach(x => { newOrder.AddOrderItem(x.ProductId, x.ProductName, x.Price, x.PictureUrl); }); await _orderRepository.AddAsync(newOrder); return(new SuccessDataResult <CreatedOrderDto>(new CreatedOrderDto { OrderId = newOrder.Id })); }
public async Task <CreateOrderCommandResponse> Handle(CreateOrderCommand request, CancellationToken cancellationToken) { var productsList = request ?.Products .Select(x => new Product() { ProductType = x.ProductType, Quantity = x.Quantity }).ToList(); var newOrder = new Domain.OrderAggregate.Order(request.OrderId, productsList); await _orderRepository.CreateAsync(newOrder); return(new CreateOrderCommandResponse(newOrder.RequiredBinWidth)); }