﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace GenerateObservables
{
    class Program
    {
        static void Main(string[] args)
        {
            IObservable<int> obs;
            
            
            obs = Observable.Empty<int>();


            
            
            
            
            
            //obs = Observable.Empty<int>().StartWith(10);














            //obs = Observable.Return(5);

            
            
            
            







            
            
            //obs = Observable.Throw<int>(new Exception("Kaabooom"));


            
            
            
            
            
            
            
            
            
            
            
            //obs = Observable.Throw<int>(new Exception("Kaabooom")).StartWith(10);


















            //int start = 1;
            //int count = 10;
            //obs = Observable.Range(start, count);





















            //IObservable<int> obs1 = Observable.Range(1, 10);
            //IObservable<int> obs2 = Observable.Range(21, 10);

            //obs = Observable.Concat<int>(obs1, obs2);












            //obs = Observable.Range(1, 5).Repeat(2);



















            //obs = Observable.Generate<string, int>("hello world",   //Initial Value
            //                                        (str) => str.Length > 0, //Until
            //                                        (str) => str.Length, // Return
            //                                        (str) => str.Substring(0, str.Length - 1)); // Iterate



            try
            {
                obs.Subscribe(Console.WriteLine);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: " + ex.Message);
            }
            Console.WriteLine("\r\n\r\nFinished Demo");
            Console.ReadLine();
        }
    }
}
