Ejemplo n.º 1
0
        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()}");
        }