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");
}