public void Run() { var traders = _businessService.GetAllTraders().ToList(); while (KeepRunning) { var buyer = traders.GetRandomElement(); var seller = traders.GetRandomElement(); var share = seller.SharesCollection.GetRandomElement(); if (share == null) { _loggerService.Error(new NullReferenceException($"The seller is {seller} has no sellable stock")); } else { _businessService.AddDeal(buyer, seller, share); } Thread.Sleep(10000); } }