예제 #1
0
        public bool AcceptBid(Seller inputSeller, Buyer inputBuyer, int auctionNo)
        {
            if(ForSale.ContainsKey(auctionNo) && inputSeller == ForSale[auctionNo].VehicleSeller) {
                int key = inputBuyer.GetHashCode();
                int fee = 0;
                //The chosen biders balance is reduced and all the bidders reserved balance is decreased
                inputBuyer.Balance -= ForSale[auctionNo].Bids[key];
                foreach(Buyer b in ForSale[auctionNo].Biders) {
                    b.ReservedBalance -= ForSale[auctionNo].Bids[b.GetHashCode()];
                }

                if(ForSale[auctionNo].Bids[key] < 10000)
                    fee = 1900;
                else if(ForSale[auctionNo].Bids[key] < 50000)
                    fee = 2250;
                else if(ForSale[auctionNo].Bids[key] < 100000)
                    fee = 2550;
                else if(ForSale[auctionNo].Bids[key] < 150000)
                    fee = 2850;
                else if(ForSale[auctionNo].Bids[key] < 200000)
                    fee = 3400;
                else if(ForSale[auctionNo].Bids[key] < 300000)
                    fee = 3700;
                else
                    fee = 4400;

                _balance += fee;
                ForSale[auctionNo].VehicleSeller.Balance += ForSale[auctionNo].Bids[key] - fee;
                Sold.Add(ForSale[auctionNo]);
                ForSale.Remove(auctionNo);
                return true;
            }
            return false;
        }
예제 #2
0
 //A function to set a car for sale
 public int SetSale(Vehicle v, Seller s, Action<Vehicle, decimal> notificationMethod)
 {
     int AuctionNumber = v.RegNumber.GetHashCode();
     ForSale.Add(AuctionNumber, v);
     v.VehicleSeller = s;
     v.notify = notificationMethod;
     return AuctionNumber;
 }
예제 #3
0
 //A function to make the next function take the standard notification method is nothing else is specified
 public int SetSale(Vehicle v, Seller s)
 {
     return SetSale(v, s, s.RecieveNotification);
 }