/// <summary> /// Create new memry node or update if exists /// </summary> /// <param name="actor"></param> public void Remember(Actor actor) { var entity = actor.GetEntity(); if (_memory.ContainsKey(entity)) { _memory[entity].Remember(actor); } else { var entityInfo = new EntityInfo(entity); entity.SetEntity(entityInfo); entityInfo.Remember(actor); _memory.Add(entity, entityInfo); } //TODO: сделать подобное рекурсивно для всех включенных парентов if (entity.Parent != null) { if (_memory.ContainsKey(entity.Parent)) { _memory[entity.Parent].Remember(actor); } else { var parentInfo = new EntityInfo(entity.Parent); entity.Parent.SetEntity(parentInfo); parentInfo.Remember(actor); _memory.Add(entity.Parent, parentInfo); } } }
public void SetEntity(EntityInfo entityInfo) { EntityInfo = entityInfo; EntityInfo.Updated += EntityInfoUpdated; }