public virtual void Changed(SubChangedModel<T> changed) { if (!this.ContainsKey(changed.Id)) return; var item = this[changed.Id]; if (changed.Cleared != null) { foreach (string fieldName in changed.Cleared) this.Type.GetProperty(fieldName).SetValue(item, null); } foreach (PropertyInfo property in this.Type.GetProperties()) { if (changed.Object == null) continue; object value = property.GetValue(changed.Object); if (value == null) continue; property.SetValue(item, value); } }
public override void Changed(SubChangedModel <ControlDoc> changed) { base.Changed(changed); if (changed.Object.isRunning.HasValue) { this.SetTestState(changed.Object.isRunning.Value); } }
public override void Changed(SubChangedModel <ConfigDoc> changed) { base.Changed(changed); if (changed.Cleared != null && changed.Cleared.Contains("script")) { ServerManager.Instance.CreateStoryCompiler(null); } else if (changed.Object.script != null) { ServerManager.Instance.CreateStoryCompiler(changed.Object.script); } }
public void Changed(SubChangedModel <Task> changed) { throw new NotImplementedException(); }
private void HandleChanged(SubChangedModel <T> changed) { Changed?.Invoke(this, changed); Subscribers.ForEach(sub => sub.Changed(changed)); }