Ejemplo n.º 1
0
        public void WhenAny()
        {
            var testScheduler = new TestScheduler();

            var subject1 = new Subject <int>();
            var subject2 = new Subject <int>();

            var result = false;

            var disposable = ObservableEx.WhenAny(subject1, subject2)
                             .ObserveOn(testScheduler)
                             .Subscribe(x => result = true);

            subject1.OnNext(1);
            subject2.OnNext(2);

            testScheduler.AdvanceBy(1);

            disposable.Dispose();

            Assert.That(result, Is.True);
        }
Ejemplo n.º 2
0
        public ClientModel(IDispatcherSchedulerProvider scheduler, IValidationAsync <ClientModel, ClientValidator> validation)
            : base(scheduler, validation)
        {
            _firstName.ConnectINPCProperty(this, () => FirstName, scheduler).AddDisposable(Disposables);
            _firstName.AddValidation(Validation, scheduler, () => FirstName).AddDisposable(Disposables);

            _lastName.ConnectINPCProperty(this, () => LastName, scheduler).AddDisposable(Disposables);
            _lastName.AddValidation(Validation, scheduler, () => LastName).AddDisposable(Disposables);

            _fullName.ConnectINPCProperty(this, () => FullName, scheduler).AddDisposable(Disposables);

            _gender.ConnectINPCProperty(this, () => Gender, scheduler).AddDisposable(Disposables);
            _gender.AddValidation(Validation, scheduler, () => Gender).AddDisposable(Disposables);

            _addressLine1.ConnectINPCProperty(this, () => AddressLine1, scheduler).AddDisposable(Disposables);
            _addressLine1.AddValidation(Validation, scheduler, () => AddressLine1).AddDisposable(Disposables);

            _addressLine2.ConnectINPCProperty(this, () => AddressLine2, scheduler).AddDisposable(Disposables);
            _addressLine2.AddValidation(Validation, scheduler, () => AddressLine2).AddDisposable(Disposables);

            _postCode.ConnectINPCProperty(this, () => PostCode, scheduler).AddDisposable(Disposables);
            _postCode.AddValidation(Validation, scheduler, () => PostCode).AddDisposable(Disposables);

            _country.ConnectINPCProperty(this, () => Country, scheduler).AddDisposable(Disposables);
            _country.AddValidation(Validation, scheduler, () => Country).AddDisposable(Disposables);

            _dateOfBirth.ConnectINPCProperty(this, () => DateOfBirth, scheduler).AddDisposable(Disposables);
            _dateOfBirth.AddValidation(Validation, scheduler, () => DateOfBirth).AddDisposable(Disposables);

            ObservableEx.WhenAny(_firstName.ValueChanged, _lastName.ValueChanged)
            .Subscribe(x => FullName = string.Format("{0} {1}", x.Item1, x.Item2))
            .AddDisposable(Disposables);

            FirstName = string.Empty;
            LastName  = string.Empty;
        }