static void RunEmitation(BussinesService bussinesService, Interfaces.ILoggable loggerService) { var shareholders = bussinesService.GetAllShareholders(); List <Shareholder> shareholdersList = new List <Shareholder>(); foreach (var shareholder in shareholders) { shareholdersList.Add(shareholder); } Random random = new Random(); var randomShareholderIndex = random.Next(0, shareholdersList.Count()); var randomShareholderA = shareholdersList[randomShareholderIndex]; shareholdersList.RemoveAt(randomShareholderIndex); randomShareholderIndex = random.Next(0, shareholdersList.Count()); var randomShareholderB = shareholdersList[randomShareholderIndex]; var arrayOfSharesTypes = Enum.GetValues(typeof(SharesTypes)); var randomSharesType = (SharesTypes)arrayOfSharesTypes.GetValue(random.Next(arrayOfSharesTypes.Length)); var trade = new Trade { ShareholderId = randomShareholderA.Id, BuyerId = randomShareholderB.Id, Value = random.Next(1, 30), ValueType = randomSharesType }; bussinesService.RegisterNewTrade( trade, randomShareholderA, randomShareholderB); Console.ForegroundColor = ConsoleColor.Green; Console.Write("log info: "); loggerService.Info($"->{trade.ToString()}<-"); Console.ForegroundColor = ConsoleColor.Gray; Console.WriteLine(trade); Console.ForegroundColor = ConsoleColor.DarkGray; Console.WriteLine($"Shareholder's " + $"\n\tbalance value: {bussinesService.GetMostWantedBalanceById(randomShareholderA.Id).BalanceValue.ToString()}" + $"\n\tbalance zone: {bussinesService.GetMostWantedBalanceById(randomShareholderA.Id).BalanceZone.ToString()}"); Console.WriteLine($"Buyer's " + $"\n\tbalance value: {bussinesService.GetMostWantedBalanceById(randomShareholderB.Id).BalanceValue.ToString()}" + $"\n\tbalance zone: {bussinesService.GetMostWantedBalanceById(randomShareholderB.Id).BalanceZone.ToString()}"); }