static void Main(string[] args)
        {
            // Create a PulseGenerator object
            PulseGenerator thePulseGenerator = new PulseGenerator();

            // Create some Stock objects


            // Create some StockTrader objects


            // Update stock prices on every Pulse event


            // Make sure StockTrader objects are notified when
            // the price of a stock changes


            // Print out current stock prices on every Pulse event


            // Print out the entire Trade log on the LastPulse event


            // Start pulsing...
            thePulseGenerator.Start(200, 20);

            KeepConsoleWindowOpen();
        }
Beispiel #2
0
        static void Main(string[] args)
        {
            // [GIVEN] Create a PulseGenerator object
            PulseGenerator thePulseGenerator = new PulseGenerator();

            // Create some Stock objects
            Stock msft = new Stock("MSFT", 50, 150);
            Stock gogl = new Stock("GOGL", 200, 600);
            Stock tsla = new Stock("TSLA", 20, 100);

            // Create some StockTrader objects
            StockTrader traderA = new StockTrader("Alan", "MSFT", 110, true);
            StockTrader traderB = new StockTrader("Alan", "GOGL", 450, false);
            StockTrader traderC = new StockTrader("Bill", "MSFT", 75, false);
            StockTrader traderD = new StockTrader("Bill", "TSLA", 45, true);

            // Update stock prices on every Pulse event
            thePulseGenerator.Pulse += msft.GenerateNewPrice;
            thePulseGenerator.Pulse += gogl.GenerateNewPrice;
            thePulseGenerator.Pulse += tsla.GenerateNewPrice;

            // Make sure StockTrader objects are notified when
            // the price of a stock changes
            msft.PriceChanged += traderA.DoTrade;
            msft.PriceChanged += traderC.DoTrade;
            gogl.PriceChanged += traderB.DoTrade;
            tsla.PriceChanged += traderD.DoTrade;

            // Print out current stock prices on every Pulse event
            thePulseGenerator.Pulse += () =>
            {
                Console.SetCursorPosition(0, 0);
                Console.WriteLine("----- Current stock prices -----");
                Console.WriteLine(msft);
                Console.WriteLine(gogl);
                Console.WriteLine(tsla);
                Console.WriteLine();
            };

            // Print out the entire Trade log on the LastPulse event
            thePulseGenerator.LastPulse += () =>
            {
                Console.WriteLine("----- All stock trades -----");
                foreach (var entry in TradeLog.Log)
                {
                    Console.WriteLine(entry);
                }
            };

            // [GIVEN] Start the Pulsar
            thePulseGenerator.Start(200, 20);

            KeepConsoleWindowOpen();
        }