Пример #1
0
        /// <summary>
        /// Send null messages in all channels
        /// </summary>
        void SendNullMessages()
        {
            ToShopEvent?.Invoke(this, new BankEventArgs(EventType.Null, threadTime));
            log.WriteLine((threadTime / 1000.0).ToString() + " | message | bank => shop | Null");

            ToBuyerEvent?.Invoke(this, new BankEventArgs(EventType.Null, threadTime));
            log.WriteLine((threadTime / 1000.0).ToString() + " | message | bank => buyer | Null");
        }
Пример #2
0
        /// <summary>
        /// Create and send random message
        /// </summary>
        void SendNewRandomMessage()
        {
            if (NextMessageCreation < DateTime.Now)
            {
                int addTime = gen.Next(100, 2000);
                NextMessageCreation = DateTime.Now.AddMilliseconds(addTime);
                threadTime         += addTime;

                if (gen.Next(0, 2) == 0)
                {
                    //buyer buys goods
                    ToShopEvent?.Invoke(this, new BuyerEventArgs(EventType.BuyInCredit, threadTime));
                    log.WriteLine((threadTime / 1000.0).ToString() + " | message | buyer => shop | BuyInCredit");
                }
                else
                {
                    //buyer wants to withdraw money from bank
                    ToBankEvent?.Invoke(this, new BuyerEventArgs(EventType.WithdrawMoney, threadTime));
                    log.WriteLine((threadTime / 1000.0).ToString() + " | message | buyer => bank | WithdrawMoney");
                }
            }
        }