예제 #1
0
 public bool UpdateBet(AgentBet bet)
 {
     lock (_lockUpdateBet)
     {
         if ((bet.NewPrice >= CurrentPrice + MinimunPriceJump))
         {
             if (BetHolder == null)
             {
                 CurrentPrice = bet.NewPrice;
                 BetHolder    = bet.BettingAgent;
                 return(true);
             }
             else
             {
                 if (bet.BettingAgent.Name != BetHolder.Name)
                 {
                     CurrentPrice = bet.NewPrice;
                     BetHolder    = bet.BettingAgent;
                     return(true);
                 }
             }
         }
         return(false);
     }
 }
예제 #2
0
 public void MakeBet(AgentBet bet)
 {
     lock (_lockMakeBet)
     {
         if (!auction.IsActive)
         {
             return;
         }
         else
         {
             if (auction.CurrentBet.UpdateBet(bet))
             {
                 _notifier.NotifyChange($"{bet.BettingAgent.Name} is now leading the auction over {auction.Item.Name} with price tag of {bet.NewPrice}$");
             }
         }
     }
 }