BuffersAndSlidingWindows.Program.AggreagateResultInAWindow C# (CSharp) Method

AggreagateResultInAWindow() private static method

private static AggreagateResultInAWindow ( ) : void
return void
        private static void AggreagateResultInAWindow()
        {
            Demo.DisplayHeader("The Window operator - each window is an observable that can be used with an aggregation function");

            var donationsWindow1 = ObservableEx.FromValues(50M, 55, 60);
            var donationsWindow2 = ObservableEx.FromValues(49M, 48, 45);

            IObservable<decimal> donations =
                donationsWindow1.Concat(donationsWindow2.DelaySubscription(TimeSpan.FromSeconds(1.5)));

            var windows = donations.Window(TimeSpan.FromSeconds(1));

            var donationsSums =
                from window in windows.Do(_ => Console.WriteLine("New Window"))
                from sum in window.Scan((prevSum, donation) => prevSum + donation)
                select sum;

            donationsSums.RunExample("donations in shift");
        }