public override void Update() { if (Session == null) { return; } var prices = Session.Query <Price>().OrderBy(c => c.Name).ToList(); if (Address != null) { Price.LoadOrderStat(Env, prices, Address).LogResult(); prices.Each(p => p.Order = Address.Orders.Where(o => !o.Frozen).FirstOrDefault(o => o.Price == p)); prices.Each(p => p.MinOrderSum = Address.Rules.FirstOrDefault(r => r.Price == p)); } prices.Select(p => p.ObservableForProperty(x => x.Active)) .Merge() .Throttle(TimeSpan.FromMilliseconds(1000), UiScheduler) .Subscribe(_ => ResultsSink.OnNext(MessageResult.Warn("Изменение настроек прайс-листов будет применено при следующем обновлении.")), CloseCancellation.Token); Prices.Value = prices; if (CurrentPrice.Value != null) { CurrentPrice.Value = Prices.Value.Where(p => p.Id == CurrentPrice.Value.Id) .DefaultIfEmpty(Prices.Value.FirstOrDefault()) .First(); } }
public void BindOffers(List <Offer> offers) { Calculate(offers); LoadOrderItems(offers); PriceOffers = offers; FillProducerFilter(PriceOffers); Filter(false); SelectOffer(); Price.Value = PriceOffers.Select(o => o.Price).FirstOrDefault() ?? Price.Value; IsLoading.Value = false; if (PriceOffers.Count == 0) { ResultsSink.OnNext(MessageResult.Warn("Выбранный прайс-лист отсутствует")); TryClose(); } }
public void Raise() { ResultsSink.OnNext(new ViewModelHelperFixture.ActionResult(() => { ProcessedCount++; })); }