protected override void OnInitialize()
        {
            base.OnInitialize();

            AddressSelector.Init();
            Env.RxQuery(s => s.Query <Supplier>().OrderBy(x => x.Name)
                        .ToList()
                        .Select(x => new Selectable <Supplier>(x)).ToList())
            .Subscribe(Suppliers);

            var supplierSelectionChanged = Suppliers.SelectMany(x => x?.Select(p => p.Changed()).Merge()
                                                                .Throttle(Consts.FilterUpdateTimeout, UiScheduler)
                                                                ?? Observable.Empty <EventPattern <PropertyChangedEventArgs> >());

            Begin.Changed()
            .Merge(End.Changed())
            .Merge(IsFilterByDocumentDate.Changed())
            .Merge(RejectFilter.Changed())
            .Merge(supplierSelectionChanged)
            .Merge(AddressSelector.FilterChanged)
            .Merge(TypeFilter.Changed())
            .Merge(Suppliers.Where(x => x != null).Cast <object>())
            .Merge(Bus.Listen <Waybill>())
            .Merge(DbReloadToken)
            .Throttle(TimeSpan.FromMilliseconds(50), Scheduler)
            .Subscribe(_ => Update(), CloseCancellation.Token);
        }
示例#2
0
        protected override void OnInitialize()
        {
            base.OnInitialize();
            RxQuery(CalcLinks).Subscribe(Link);

            Link.Changed()
            .Merge(Begin.Changed())
            .Merge(End.Changed())
            .Merge(IsPerhaps.Changed())
            .Merge(IsDefective.Changed())
            .SelectMany(_ => RxQuery(LoadItems))
            .Subscribe(Items);
        }
        protected override void OnInitialize()
        {
            base.OnInitialize();

            DbReloadToken
            .Merge(IsOpened.Changed())
            .Merge(IsClosed.Changed())
            .Merge(IsEnd.Changed())
            .Merge(Begin.Changed())
            .Merge(End.Changed())
            .SelectMany(_ => RxQuery(LoadItems))
            .Subscribe(Items);
        }