public User(AgentEventRectifier rectifier) { Id = System.Guid.NewGuid().ToString(); _Ghosts = new List <Tuple <Type, object> >(); rectifier.SupplyEvent += _Add; rectifier.UnsupplyEvent += _Remove; Dispose = () => { rectifier.SupplyEvent -= _Add; rectifier.UnsupplyEvent -= _Remove; (rectifier as IDisposable).Dispose(); }; }
public System.Guid Bind(INotifierQueryable notifier) { AgentEventRectifier rectifier = new AgentEventRectifier(_WatchTypes, notifier); RectifierBinder user = new RectifierBinder(rectifier); _Users.Add(user); foreach (Tuple <Type, object> g in user.Ghosts) { _Register.Regist(g.Item1, g.Item2); } rectifier.SupplyEvent += _Register.Regist; rectifier.UnsupplyEvent += (type, obj) => { _Register.Unregist(obj); }; return(user.Id); }
public User CreateUser(INotifierQueryable notifier) { AgentEventRectifier rectifier = new AgentEventRectifier(_WatchTypes, notifier); User user = new User(rectifier); _Users.Add(user); // todo _Updater.Add(user.Agent); foreach (Tuple <Type, object> g in user.Ghosts) { _Register.Regist(g.Item1, g.Item2); } rectifier.SupplyEvent += _Register.Regist; rectifier.UnsupplyEvent += (type, obj) => { _Register.Unregist(obj); }; return(user); }