protected override void OnInitialize() { base.OnInitialize(); AddressSelector.Init(); AddressSelector.Description = "Все накладные"; Bus.Listen <string>("reload").Cast <object>() .Merge(DbReloadToken) .Merge(StatusFilter.FilterChanged()) .Merge(AddressSelector.FilterChanged.Cast <object>()) .Merge(OnlyRejected.Changed()) .SelectMany(_ => RxQuery(x => { var query = x.Query <Stock>().Where(y => y.Quantity != 0 || y.ReservedQuantity != 0); if (StatusFilter.IsFiltred()) { var values = StatusFilter.GetValues(); query = query.Where(y => values.Contains(y.Status)); } if (OnlyRejected.Value) { query = query.Where(r => r.RejectStatus == RejectStatus.Defective || r.RejectStatus == RejectStatus.Perhaps); } var addresses = AddressSelector.GetActiveFilter().Select(y => y.Id); query = query.Where(y => addresses.Contains(y.Address.Id)); return(query.Fetch(y => y.Address).OrderBy(y => y.Product).ToList()); })) .Subscribe(Items, CloseCancellation.Token); }
public SearchBehavior(Env env) { SearchText = new NotifyValue <string>(); ActiveSearchTerm = new NotifyValue <string>(); dispose = SearchText.Changed() .Throttle(Consts.SearchTimeout, env.Scheduler) .ObserveOn(env.UiScheduler) .Subscribe(_ => Search()); }
protected override void OnInitialize() { base.OnInitialize(); DbReloadToken .Merge(Begin.Changed()) .Merge(End.Changed()) .Merge(IsNotOverdue.Changed()) .Merge(IsOverdue.Changed()) .SelectMany(_ => RxQuery(LoadItems)) .Subscribe(Items); }
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); }
public void Update_value_with_fallback() { var depended = new NotifyValue <int>(5); var v = new NotifyValue <int>(true, () => depended + 1, depended); var changed = v.Value; v.Changed().Subscribe(_ => changed = v.Value); depended.Value += 5; depended.Value += 5; Assert.AreEqual(v.Value, 16); Assert.AreEqual(changed, 16); }
public AddWaybillLineFromCatalog() { InitFields(); DisplayName = "Добавление из каталога"; CurrentCatalog = new NotifyValue <Catalog>(); CatalogTerm = new NotifyValue <string>(); ProducerTerm = new NotifyValue <string>(); CurrentProducer = new NotifyValue <Producer>(); WasCancelled = true; IsOkEnabled.Value = false; CurrentCatalog.Changed() .Merge(CurrentProducer.Changed()) .Merge(SupplierCost.Changed()) .Merge(Quantity.Changed()) .Subscribe(_ => IsOkEnabled.Value = CurrentCatalog.Value != null && CurrentProducer.Value != null && SupplierCost.Value > 0 && Quantity.Value > 0); }
public void Notify_value_with_fallback() { var depended = new NotifyValue <int>(5); var v = new NotifyValue <int>(true, () => depended + 1, depended); var changed = v.Value; v.Changed().Subscribe(_ => changed = v.Value); Assert.AreEqual(6, v.Value); depended.Value = 7; Assert.AreEqual(8, v.Value); Assert.AreEqual(8, changed); v.Value = 1; Assert.AreEqual(1, v.Value); Assert.AreEqual(1, changed); depended.Value = 50; Assert.AreEqual(1, v.Value); Assert.AreEqual(1, changed); }