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; }
//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; }
//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); }