예제 #1
0
        public OfferLookup(Offer offer, IEnumerable <OfferUnit> offerUnits, IUnityContainer container) : this(offer, offerUnits)
        {
            var eventAggregator = container.Resolve <IEventAggregator>();

            //реакция на изменение в ТКП
            eventAggregator.GetEvent <AfterSaveOfferEvent>().Subscribe(entity =>
            {
                if (entity.Id == this.Id)
                {
                    this.Refresh(entity);
                }
            });

            //реакция на изменение в юните ТКП
            eventAggregator.GetEvent <AfterSaveOfferUnitEvent>().Subscribe(offerUnit =>
            {
                if (this.Id != offerUnit.Offer.Id)
                {
                    return;
                }
                OfferUnits.RemoveIfContainsById(offerUnit);
                OfferUnits.Add(new OfferUnitLookup(offerUnit));
                this.Refresh();
            });


            //реакция на удаление юнита ТКП
            eventAggregator.GetEvent <AfterRemoveOfferUnitEvent>().Subscribe(offerUnit =>
            {
                if (this.Id != offerUnit.Offer.Id)
                {
                    return;
                }
                OfferUnits.RemoveById(offerUnit);
                this.Refresh();
            });
        }
예제 #2
0
 public OfferLookup(Offer offer, IEnumerable <OfferUnit> offerUnits) : base(offer)
 {
     OfferUnits.AddRange(offerUnits.Select(x => new OfferUnitLookup(x)));
 }