Пример #1
0
        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++;
     }));
 }