示例#1
0
        private void LightEvent_PropertyChanged(object sender, PropertyChangedExEventArgs e)
        {
            ILightEvent lightEvent = (ILightEvent)sender;

            if (e.PropertyName.Equals(nameof(LightEventConfig.Type)))
            {
                LightEventType old    = (LightEventType)e.OldValue;
                LightEventType newVal = (LightEventType)e.NewValue;

                if (!old.Equals(newVal))
                {
                    InsertLightEvent(lightEvent, old);
                }
            }
        }
示例#2
0
        private bool InsertLightEvent(ILightEvent lightEvent, LightEventType?old = null)
        {
            LightEventType type = lightEvent.Config.Type ?? LightEventType.Normal;

            lightEvent.Config.Type = type;

            if (old == null)
            {
                lightEvent.Config.PropertyChanged += LightEvent_PropertyChanged;
            }
            else
            {
                var oldEvents = GetEventTable((LightEventType)old);
                oldEvents.Remove(lightEvent.Config.ID);
            }

            var events = GetEventTable(type);

            events.Add(lightEvent.Config.ID);

            return(true);
        }
示例#3
0
        private List <string> GetEventTable(LightEventType type)
        {
            List <string> events;

            switch (type)
            {
            case LightEventType.Normal:
                events = Normal;
                break;

            case LightEventType.Overlay:
                events = Overlays;
                break;

            case LightEventType.Underlay:
                events = Underlays;
                break;

            default:
                throw new NotImplementedException();
            }
            return(events);
        }
示例#4
0
 public LightEvent(DateTime dt, LightEventType type)
 {
     DT = dt;
     Type = type;
 }