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(); }); }
public OfferLookup(Offer offer, IEnumerable <OfferUnit> offerUnits) : base(offer) { OfferUnits.AddRange(offerUnits.Select(x => new OfferUnitLookup(x))); }