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); } } }
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); }
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); }
public LightEvent(DateTime dt, LightEventType type) { DT = dt; Type = type; }