コード例 #1
0
        public void FinaliseAuction(string itemId)
        {
            var bids = _auctionBidRepository.GetListByItemId(itemId);

            var @event = new Event <AuctionFinaliseEventData>()
            {
                Data = new AuctionFinaliseEventData()
                {
                    ItemId = itemId
                }, EventName = AuctionFinaliseEventData.EventName
            };

            @event.TargetQueues.Add(QueueConstants.AuctionEndFinalise);


            if (bids.Any())
            {
                var highestBid = bids.OrderByDescending(x => x.BidPrice).First();
                @event.Data.HighestBiderId = highestBid.UserId;
                @event.Data.HighestPrice   = highestBid.BidPrice;
            }
            else
            {
                @event.Data.HighestBiderId = null;
                @event.Data.HighestPrice   = 0;
            }

            _jobService.PublishEvent(@event);
        }
コード例 #2
0
        public void Should_Finalise_Auction_With_Null_Value_If_No_Bids()
        {
            var testItemId = "TEST_ITEM_ID";

            _bidService.FinaliseAuction(testItemId);
            _mockAuctionBidRepository.GetListByItemId(Arg.Any <string>()).Returns(new List <AuctionBid>());

            _mockJobService.Received(1).PublishEvent(Arg.Is <Event <AuctionFinaliseEventData> >(
                                                         e => e.EventName == AuctionFinaliseEventData.EventName &&
                                                         e.Data.ItemId == testItemId &&
                                                         e.Data.HighestBiderId == null &&
                                                         e.Data.HighestPrice == 0));
        }