示例#1
0
        static void Main(string[] args)
        {
            AuctionHouse AuctionHouse = new AuctionHouse();

            AuctionHouse.CreateAuction();
            AuctionHouse.Open();
        }
示例#2
0
        public void Gavel(object item)
        {
            if (oldBid == realAuction.currentBid)
            {
                Interlocked.Increment(ref timeSinceLastBid);
                Console.WriteLine(timeSinceLastBid);
            }
            else
            {
                timeSinceLastBid = 0;
                AuctionHouse.BroadcastMessage("New Bid Accepted! - " + realAuction.bidHistory.Last());
                lock (AuctionHouse.lockKey) {
                    oldBid = realAuction.currentBid;
                }
            }
            if (realAuction.bidHistory.Count > 0)
            {
                switch (timeSinceLastBid)
                {
                case 8:
                    AuctionHouse.BroadcastMessage("Going once");
                    break;

                case 9:
                    AuctionHouse.BroadcastMessage("Going twice");
                    break;

                case 10:
                    Clock.Dispose();
                    string clientIP = realAuction.bidHistory.Last().Substring(0, realAuction.bidHistory.Last().IndexOf(':'));
                    AuctionHouse.BroadcastMessage("Sold to " + clientIP);
                    AuctionHouse.BroadcastMessage("\nHistory:" + Environment.NewLine + realAuction.PrintBidStatus());
                    break;

                default:
                    break;
                }
            }
            else if (timeSinceLastBid == 10)
            {
                timeSinceLastBid = 0;
            }
        }