Beispiel #1
0
        private static void EnforcingUnsubscribingObservers()
        {
            Console.WriteLine();
            Demo.DisplayHeader("Enforcing The Observers Unsubscription (OnCompleted/OnError)");

            IObservable <int> errorTestObservable =
                new ErrorNumbersObservable(5);


            var consoleObserver = new ConsoleObserver <int>("errorTest");

            Console.WriteLine("the contract is not enforced in the manual observable");
            var subscription = errorTestObservable.Subscribe(consoleObserver);

            Console.WriteLine();
            Console.WriteLine("however, the Observable.Create(...) version does enforce");
            errorTestObservable =
                Observable.Create <int>(o =>
            {
                o.OnNext(1);
                o.OnError(new ApplicationException());
                o.OnNext(2);
                o.OnCompleted();
                o.OnNext(3);
                return(Disposable.Empty);
            });
            subscription = errorTestObservable.Subscribe(consoleObserver);
        }
Beispiel #2
0
        static void Main(string[] args)
        {
            var numbers = new SequenceOfNumbers();
            var observer = new ConsoleObserver<int>();
            numbers.Subscribe(observer);

            //            IEnumerable a = new List<int>()
            //            {
            //
            //                1,2,3,4
            //            };
            //
            //            Console.WriteLine("START");
            //
            //            Console.WriteLine(a.GetEnumerator().MoveNext());
            //
            //            foreach (var variable in a)
            //            {
            //                Console.WriteLine(variable);
            //            }

            //            Console.WriteLine(a.GetEnumerator());
            //
            //            Console.WriteLine(a.GetEnumerator().MoveNext());
            //
            //            Console.WriteLine(a.GetEnumerator());

            //            Console.WriteLine("End");

            Console.ReadLine();
        }
Beispiel #3
0
        public static void Run()
        {
            CodeBuilderConfiguration configuration = CodeBuilderConfiguration.Instance;

            for (int i = 0; i < configuration.Tasks.Count; i++)
            {
                TemplateGenerator generator = TemplateFactory.CreateObject(
                    configuration.Tasks[i].Name,
                    configuration.Tasks[i].Generator,
                    configuration);

                ITemplateObserver observer;

                foreach (TaskObserver item in configuration.Tasks[i].Observeres)
                {
                    switch (item.Type)
                    {
                    case "Console":
                        observer = new ConsoleObserver();
                        generator.AddObserver(observer);
                        break;

                    case "File":
                        observer = new FileObserver(configuration.Tasks[i]);
                        generator.AddObserver(observer);
                        break;

                    default:
                        break;
                    }
                }

                generator.Generate();
            }
        }
Beispiel #4
0
        public static void TheLastValueBeforeSubscription()
        {
            var subject = new BehaviorSubject <int>(-1);

            Console.WriteLine("First value");
            subject.OnNext(4);

            var consoleObserver = new ConsoleObserver <int>();

            Console.WriteLine("We're gonna subscribe once");
            var subscription = subject.Subscribe(consoleObserver);

            subject.OnNext(5);
            subject.OnNext(6);

            var consoleObserver2 = new ConsoleObserver <int>();

            Console.WriteLine("We're gonna subscribe a second time");
            var subscription2 = subject.Subscribe(consoleObserver2);

            subject.OnNext(7);
            subject.OnNext(8);

            subject.OnCompleted();

            subscription.Dispose();
            subscription2.Dispose();
        }
Beispiel #5
0
        public void RemoveObserverTest()
        {
            RegistrationUpdate regUpdate = new RegistrationUpdate("Registered", "3", "10/13/2017 10:00:00 PM", "Matt", "Morris", "M", "24");
            Athlete            athlete1  = new Athlete(regUpdate.Status, regUpdate.BibNumber, regUpdate.Timestamp.ToString(), regUpdate.LastName, regUpdate.Gender, regUpdate.Age);

            ConsoleObserver           consoleobserver     = new ConsoleObserver();
            _1DLineObserver           onedobserver        = new _1DLineObserver();
            AthleteComparisonObserver athletecompobserver = new AthleteComparisonObserver();
            ListObserver listobserver = new ListObserver();

            athlete1.RegisterObserver(consoleobserver);
            athlete1.RegisterObserver(onedobserver);
            athlete1.RegisterObserver(athletecompobserver);
            athlete1.RegisterObserver(listobserver);

            // test to see if observers are successfully removed
            try
            {
                athlete1.RemoveObserver(consoleobserver);
                athlete1.RemoveObserver(onedobserver);
                athlete1.RemoveObserver(athletecompobserver);
                athlete1.RemoveObserver(listobserver);
            }
            catch
            {
                Assert.Fail();
            }
        }
Beispiel #6
0
        private static void EnforcingUnsubscribingObservers()
        {
            Console.WriteLine();
            Demo.DisplayHeader("Enforcing The Observers Unsubscription (OnCompleted/OnError)");

            IObservable<int> errorTestObservable =
                new ErrorNumbersObservable(5);

            var consoleObserver = new ConsoleObserver<int>("errorTest");

            Console.WriteLine("the contract is not enforced in the manual observable");
            var subscription = errorTestObservable.Subscribe(consoleObserver);

            Console.WriteLine();
            Console.WriteLine("however, the Observable.Create(...) version does enforce");
            errorTestObservable =
                Observable.Create<int>(o =>
                {
                    o.OnNext(1);
                    o.OnError(new ApplicationException());
                    o.OnNext(2);
                    o.OnCompleted();
                    o.OnNext(3);
                    return Disposable.Empty;
                });
            subscription = errorTestObservable.Subscribe(consoleObserver);
        }
Beispiel #7
0
        static void ConfigureObserver()
        {
            Trace.Listeners.Add(new ConsoleTraceListener());

            var observer = new ConsoleObserver();
            SystemObserver.Swap(observer);
            Context.SwapForDebug(s => SystemObserver.Notify(s));
        }
Beispiel #8
0
        public void trace_logs_things_not_mapped_including_prefix()
        {
            var ob = new ConsoleObserver();

            using (Mapping.Trace.Subscribe(ob))
            {
                Mapping.CreateFromSource(typeof(SingleProp <string>), typeof(SingleProp <int>), "Things");
                Assert.AreEqual(1, ob.Values.Count, "count");
                Assert.IsTrue(ob.Values[0].StartsWith("Things: "), ob.Values[0]);
            }
        }
    static void Main(string[] args)
    {
        IObserver      observer = new ConsoleObserver();
        ProductService subject  = new ProductService();

        subject.Subscribe(observer);
        subject.AddProduct("Solid-state drive");
        Console.WriteLine();
        subject.Unsubscribe(observer);
        subject.AddProduct("Bluetooth mouse");
    }
Beispiel #10
0
        public static void UsingSynchronousObservables()
        {
            var consoleObserver            = new ConsoleObserver <int>();
            var synchronousObservable      = new SynchronousObservable();
            var stillSynchronousObservable = new SpacedOutButStillSynchronousObservable();

            var subscription  = synchronousObservable.Subscribe(consoleObserver);
            var subscription2 = stillSynchronousObservable.Subscribe(consoleObserver);

            subscription.Dispose();
            subscription2.Dispose();
        }
Beispiel #11
0
        public static void WorkingWithAnActualSubject()
        {
            var consoleObserver = new ConsoleObserver <int>();
            var subject         = new Subject <int>();
            var subscription    = subject.Subscribe(consoleObserver);

            subject.OnNext(4);
            subject.OnNext(5);
            subject.OnError(new Exception("Custom"));
            //This won't appear because of the contract of IObservable
            subject.OnNext(6);

            subscription.Dispose();
        }
Beispiel #12
0
        public static void NotCompletingAnAsyncSubject_WillNotPushAnyValueOut()
        {
            var subject         = new AsyncSubject <int>();
            var consoleObserver = new ConsoleObserver <int>();
            var subscription    = subject.Subscribe(consoleObserver);

            var consoleObserver2 = new ConsoleObserver <int>();
            var subscription2    = subject.Subscribe(consoleObserver2);

            subject.OnNext(9);

            subscription.Dispose();
            subscription2.Dispose();
        }
Beispiel #13
0
        public static void ObservableObserverPair()
        {
            var consoleObserver       = new ConsoleObserver <int>();
            var synchronousObservable = new SynchronousObservable();

            //always get the subscription
            var subscription = synchronousObservable.Subscribe(consoleObserver);

            //can't do something in the mean time (while subscribed to a synchronous observable)
            Console.WriteLine("This is executed only after the whole subscription fiasco");

            //remeber to dispose of the subscription => See LifetimeManagement
            subscription.Dispose();
        }
Beispiel #14
0
        public static void TheLastValueBeforeCompletion()
        {
            var subject         = new AsyncSubject <int>();
            var consoleObserver = new ConsoleObserver <int>();
            var subscription    = subject.Subscribe(consoleObserver);

            var observer2     = new ConsoleObserver <int>();
            var subscription2 = subject.Subscribe(observer2);

            subject.OnNext(9);
            subject.OnCompleted();

            subscription.Dispose();
            subscription2.Dispose();
        }
Beispiel #15
0
        public static void UnlessThereIsNone_ButAtLeastItFinishes()
        {
            var subject         = new AsyncSubject <int>();
            var consoleObserver = new ConsoleObserver <int>();
            var subscription    = subject.Subscribe(consoleObserver);

            var consoleObserver2 = new ConsoleObserver <int>();
            var subscription2    = subject.Subscribe(consoleObserver2);

            subject.OnCompleted();
            //This won't appear because of the contract of IObservable
            subject.OnNext(9);

            subscription.Dispose();
            subscription2.Dispose();
        }
Beispiel #16
0
        public static void NaiveSubjectImplementation()
        {
            var consoleObserver = new ConsoleObserver <int>();
            var naiveSubject    = new NaiveSubject <int>();
            var subscription    = naiveSubject.Subscribe(consoleObserver);

            naiveSubject.OnNext(4);
            naiveSubject.OnNext(5);
            naiveSubject.OnError(new Exception("Custom"));
            //This shouldn't happen in a proper implementation (no more values after OnError / OnCompleted)
            naiveSubject.OnNext(6);

            subscription.Dispose();
            //This shouldn't happen in a proper implementation either.
            naiveSubject.OnNext(7);
        }
Beispiel #17
0
        public static void CacheItEvenAfterCompletion()
        {
            var consoleObserver = new ConsoleObserver <int>();
            var replaySubject   = new ReplaySubject <int>();
            var subscription    = replaySubject.Subscribe(consoleObserver);

            replaySubject.OnNext(4);
            replaySubject.OnNext(5);
            replaySubject.OnNext(6);
            replaySubject.OnCompleted();

            var consoleObserver2 = new ConsoleObserver <int>();
            var subscription2    = replaySubject.Subscribe(consoleObserver2);

            subscription.Dispose();
            subscription2.Dispose();
        }
Beispiel #18
0
        public void Reporting_ConsoleObserverTest()
        {
            List <LogEntry> infoLogs  = GetExampleInfoLogs();
            List <LogEntry> warnLogs  = GetExampleWarnLogs();
            List <LogEntry> errorLogs = GetExampleErrorLogs();

            var observer = new ConsoleObserver();

            infoLogs.ForEach(o => { observer.Info(o); });
            warnLogs.ForEach(o => { observer.Info(o); });
            errorLogs.ForEach(o => { observer.Info(o); });

            observer.Flush(); //Does nothing

            //Note: Look for the Output link on the unit test

            Assert.Inconclusive(TestCommon.InconclusiveNoAutomatedChecksMessage);
        }
Beispiel #19
0
    static void Main()
    {
        // This allows EventSources to listen to notifications.
        // TODO this seems counterintuitive/unnecessary.
        TelemetryEventSource.LogForDefaultNotificationHub.Touch();

        // To set up a sink for notifications IObserver and hook up.
        var consoleObserver = new ConsoleObserver("Default");

        using (var subscription = TelemetryListener.Default.Subscribe(consoleObserver, consoleObserver.IsEnabled))
        {
            // This simulates an application that is creating Dispatcher/Notifier pairs for instantiable in-process contexts.
            // The child hubs each cross-talk with the default hub, but do not cross-talk with each other
            using (var island1 = new TelemetryListener("Island1"))
                using (var island2 = new TelemetryListener("Island2"))
                    using (island1.Subscribe(new ConsoleObserver(island1.Name)))
                        using (island2.Subscribe(new ConsoleObserver(island2.Name)))
                        {
                            // Here we simulate what might happen in the class library where we don't use dependency injection.
                            // You can also get you iNotifier by asking IServiceProvider which might make one per tenant.
                            TelemetrySource defaultSource = TelemetrySource.Default;
                            TelemetrySource islandSource1 = island1;
                            TelemetrySource islandSource2 = island2;

                            // Normally this would be in code that was receiving the HttpRequestResponse
                            HttpRequestMessage message = new HttpRequestMessage(HttpMethod.Get, "http://localhost/");

                            // Here we log for simple cases as show below we don't need to do the ShuldNotify, but we are
                            // showing the general case where there might be significant work setting up the payload.
                            if (defaultSource.IsEnabled("OutgoingHttpRequestReturns"))
                            {
                                // Here we are assuming we would like to log both to EventSource and direct subscribers to
                                // NotificationHub.   Because of this the payload class contains both serializable fields (like
                                // ReqeustUri which we resolve to a string), as well as rich objects (like Message) that are
                                // stripped from EventSource serialization.
                                defaultSource.WriteTelemetry("OutgoingHttpRequestReturns", new { RequestUri = message.RequestUri.ToString(), Message = message });
                            }

                            islandSource1.WriteTelemetry("TalkingOnIsland", "Island One");
                            islandSource2.WriteTelemetry("TalkingOnIsland", "Island Two");
                        }
        }
    }
Beispiel #20
0
        public static void TimeOfSubscriptionActuallyMattersForSubjects()
        {
            var consoleObserver = new ConsoleObserver <int>();
            var subject         = new Subject <int>();
            var subscription    = subject.Subscribe(consoleObserver);

            subject.OnNext(4);
            subject.OnNext(5);
            subject.OnNext(6);

            var consoleObserver2 = new ConsoleObserver <int>();
            var subscription2    = subject.Subscribe(consoleObserver2);

            subject.OnNext(7);
            subject.OnNext(8);

            subject.OnCompleted();

            subscription.Dispose();
            subscription2.Dispose();
        }
Beispiel #21
0
        static void Main(string[] args)
        {
            var numbers  = new SequenceOfNumbers();
            var observer = new ConsoleObserver <int>();

            numbers.Subscribe(observer);


//            IEnumerable a = new List<int>()
//            {
//
//                1,2,3,4
//            };
//
//            Console.WriteLine("START");
//
//            Console.WriteLine(a.GetEnumerator().MoveNext());
//
//            foreach (var variable in a)
//            {
//                Console.WriteLine(variable);
//            }


//            Console.WriteLine(a.GetEnumerator());
//
//            Console.WriteLine(a.GetEnumerator().MoveNext());
//
//            Console.WriteLine(a.GetEnumerator());

//            Console.WriteLine("End");



            Console.ReadLine();
        }