public void EventBusRabbitMQProducer_Publish_Success()
        {
            OrderCreateEvent eventMessage = new OrderCreateEvent();

            eventMessage.AuctionId      = "dummy1";
            eventMessage.ProductId      = "dummy_product_1";
            eventMessage.Price          = 10;
            eventMessage.Quantity       = 100;
            eventMessage.SellerUserName = "******";

            var factory = new ConnectionFactory()
            {
                HostName = "localhost"
            };

            factory.UserName = "******";

            factory.Password = "******";



            _defaultRabbitMQPersistentConnection.TryConnect();

            //_eventBusRabbitMQProducer.Publish("orderCreateQueue", eventMessage);
        }
예제 #2
0
        public async Task <IActionResult> DraftOrderAsync([FromBody] CreateOrderInput input)
        {
            var sumamount          = input.ListItem.Sum(p => p.Amount);
            List <OrderItem> items = new List <OrderItem>();

            input.ListItem.ForEach(p =>
            {
                OrderItem temp     = new OrderItem();
                temp.Amount        = p.Amount;
                temp.Count         = p.Count;
                temp.OrderItemName = p.OrderItemName;
                items.Add(temp);
            });
            Address address = new Address {
                City = "南通", Country = "正余", State = "青正", Street = "测试", ZipCode = "20033"
            };

            MainOrder order = new MainOrder(input.OrderId, input.OrderName, sumamount, address, 0, 0, DateTime.Now, DateTime.MinValue, 1, items);


            using (var transaction = _orderDbContext.Database.BeginTransaction())
            {
                try
                {
                    OrderCreateEvent eventdata = new OrderCreateEvent
                    {
                        OrderId    = order.OrderId,
                        PayDecimal = order.OrderSumAmount,
                        PayedDesc  = "支付描述",
                        Payer      = "Shawn"
                    };
                    _capBus.Publish("Order.services.Payed", eventdata);


                    await _orderDbContext.AddAsync(order);

                    var result = await _orderDbContext.SaveChangesAsync();



                    transaction.Commit();
                }
                catch (Exception e)
                {
                    await transaction.RollbackAsync();

                    return(BadRequest());
                }

                return(Ok());
            }
        }
        public async Task <ActionResult> CompleteAuction(string id)
        {
            Auction auction = await _auctionRepository.GetAuction(id);

            if (auction == null)
            {
                return(NotFound());
            }

            if (auction.Status != (int)Status.Active)
            {
                _logger.LogError("Auction can not completed");
                return(BadRequest());
            }

            Bid bid = await _bidRepository.GetWinnerBid(id);

            if (bid == null)
            {
                return(NotFound());
            }

            OrderCreateEvent eventMessage = _mapper.Map <OrderCreateEvent>(bid);

            eventMessage.Quantity = auction.Quantity;

            auction.Status = (int)Status.Closed;
            bool updateResp = await _auctionRepository.Update(auction);

            if (!updateResp)
            {
                _logger.LogError("Auction can not updated");
                return(BadRequest());
            }

            try
            {
                _eventBus.Publish(EventBusConstants.OrderCreateQueue, eventMessage);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "ERROR Publishing integration event: {EventId} from {AppName}", eventMessage.Id, "Sourcing");
                throw;
            }

            return(Accepted());
        }
        public ActionResult <OrderCreateEvent> TestEvent()
        {
            OrderCreateEvent eventMessage = new OrderCreateEvent();

            eventMessage.AuctionId      = "dummy1";
            eventMessage.ProductId      = "dummy_product_1";
            eventMessage.Price          = 10;
            eventMessage.Quantity       = 100;
            eventMessage.SellerUserName = "******";

            try
            {
                _eventBus.Publish(EventBusConstants.OrderCreateQueue, eventMessage);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "ERROR Publishing integration event: {EventId} from {AppName}", eventMessage.Id, "Sourcing");
                throw;
            }

            return(Accepted(eventMessage));
        }
예제 #5
0
 void Order_handle_Create(OrderCreateEvent obj)
 {
     new SendEmailEventHandler().Handle(obj);
 }
예제 #6
0
 public void Handle(OrderCreateEvent e)
 {
     throw new NotImplementedException();
 }
예제 #7
0
 public void Action(OrderCreateEvent t)
 {
     throw new NotImplementedException();
 }