Exemplo n.º 1
0
 protected virtual void OnBayChanged(DriveBayChangedEvent evt)
 {
     if (this.BayChanged != null)
     {
         this.BayChanged(this, evt);
     }
 }
Exemplo n.º 2
0
        protected virtual void Update()
        {
            List <DriveBay>             bayStatuses = this.GetBayStatuses();
            List <DriveBayChangedEvent> events      = new List <DriveBayChangedEvent>();

            lock (this.syncObject)
            {
                ListComparer <DriveBay> listComparer = new ListComparer <DriveBay>();
                listComparer.Compare(this.bays, bayStatuses, new Func <DriveBay, DriveBay, bool>(DriveBay.CompareStatus));
                listComparer.changedItems.ForEach(delegate(ListComparer <DriveBay> .ItemData d)
                {
                    DriveBayChangedEvent driveBayChangedEvent = new DriveBayChangedEvent();
                    driveBayChangedEvent.oldBay = (DriveBay)d.oldItem.Clone();
                    d.oldItem.Power             = d.newItem.Power;
                    d.oldItem.Present           = d.newItem.Present;
                    driveBayChangedEvent.bay    = d.oldItem;
                    events.Add(driveBayChangedEvent);
                });
                foreach (DriveBayChangedEvent evt in events)
                {
                    this.OnBayChanged(evt);
                }
            }
        }