private void OnEntityCreatedHandler(EntityCreatedEventArgs args) { if (!LinqToDBForEFTools.EnableChangeTracker || !Tracking || Context.ChangeTracker.QueryTrackingBehavior == QueryTrackingBehavior.NoTracking) { return; } var type = args.Entity.GetType(); if (_lastType != type) { _lastType = type; _lastEntityType = Context.Model.FindEntityType(type); } if (_lastEntityType == null) { return; } if (_stateManager == null) { _stateManager = Context.GetService <IStateManager>(); } var entry = _stateManager.StartTrackingFromQuery(_lastEntityType, args.Entity, ValueBuffer.Empty); args.Entity = entry.Entity; }
private void OnEntityCreatedHandler(EntityCreatedEventArgs args) { if (!LinqToDBForEFTools.EnableChangeTracker || !Tracking || Context !.ChangeTracker.QueryTrackingBehavior == QueryTrackingBehavior.NoTracking) { return; } var type = args.Entity.GetType(); if (_lastType != type) { _lastType = type; _lastEntityType = Context.Model.FindEntityType(type); } if (_lastEntityType == null) { return; } if (_stateManager == null) { _stateManager = Context.GetService <IStateManager>(); } // It is a real pain to register entity in change tracker // InternalEntityEntry?entry = null; foreach (var key in _lastEntityType.GetKeys()) { //TODO: Find faster way var keyArray = key.Properties.Where(p => p.PropertyInfo != null || p.FieldInfo != null).Select(p => p.PropertyInfo != null ? p.PropertyInfo.GetValue(args.Entity) : p.FieldInfo.GetValue(args.Entity)).ToArray(); if (keyArray.Length == key.Properties.Count) { entry = _stateManager.TryGetEntry(key, keyArray); if (entry != null) { break; } } } if (entry == null) { entry = _stateManager.StartTrackingFromQuery(_lastEntityType, args.Entity, ValueBuffer.Empty); } args.Entity = entry.Entity; }
public void EntityCreated(EntityCreatedEventArgs args) { var entity = args.Entity; var type = entity.GetType(); if (!_entityDic.TryGetValue(type, out var store)) { store = (IObjectStore)Activator.CreateInstance(typeof(ObjectStore <>).MakeGenericType(type)); _entityDic.Add(type, store); } store.StoreEntity(args); }
public void StoreEntity(EntityCreatedEventArgs args) { var entity = (T)args.Entity; if (_dic.TryGetValue(entity, out var e)) { args.Entity = e; } else { _dic.Add(entity, entity); } }
void IEntityMap.MapEntity(EntityCreatedEventArgs args) { var entity = (T)args.Entity; var entry = _entities.GetOrAdd(entity, key => new EntityMapEntry <T> { Entity = key }); if (ReferenceEquals(args.Entity, entry.Entity) == false) { args.Entity = entry.Entity; } entry.IncrementDBCount(); }
void EntityCreated(EntityCreatedEventArgs args) { if (_checkEntityIdentity && args.Entity is Parent p) { if (_parents.TryGetValue(p.ParentID, out var pr)) { args.Entity = pr; return; } _parents[p.ParentID] = p; } _entitiesCreated++; }
void EntityCreated(EntityCreatedEventArgs args) { if (_checkEntityIdentity && args.Entity is Parent p) { args.TableOptions.Should().Be(TableOptions.NotSet); args.TableName.Should().Be(nameof(Parent)); if (_parents.TryGetValue(p.ParentID, out var pr)) { args.Entity = pr; return; } _parents[p.ParentID] = p; } _entitiesCreated++; }
void HandleEntityCreated(object sender, EntityCreatedEventArgs e) { // once created gets cached dragonInfo = e.EntityInfo; }
//entity public static void EntityCreated(EntityCreatedEventArgs e) => SystemEvents.InvokeEvent(null, OnEntityCreated, e, nameof(OnEntityCreated));
void HandleWeapon(object sender, EntityCreatedEventArgs e) { var equipment = weapons [e.Entity.ID]; equipment.EntityID = e.Entity.ID; equipment.Weapon = equipmentMapping [e.Class]; equipment.AmmoInMagazine = -1; e.Entity.FindProperty("m_iClip1").IntRecived += (asdasd, ammoUpdate) => { equipment.AmmoInMagazine = ammoUpdate.Value - 1; //wtf volvo y -1? }; e.Entity.FindProperty("LocalWeaponData.m_iPrimaryAmmoType").IntRecived += (asdasd, typeUpdate) => { equipment.AmmoType = typeUpdate.Value; }; if (equipment.Weapon == EquipmentElement.P2000) { e.Entity.FindProperty("m_nModelIndex").IntRecived += (sender2, e2) => { equipment.OriginalString = modelprecache[e2.Value]; if (modelprecache[e2.Value].EndsWith("_pist_223.mdl")) { equipment.Weapon = EquipmentElement.USP; //BAM } else if (modelprecache[e2.Value].EndsWith("_pist_hkp2000.mdl")) { equipment.Weapon = EquipmentElement.P2000; } else { throw new InvalidDataException("Unknown weapon model"); } }; } if (equipment.Weapon == EquipmentElement.M4A4) { e.Entity.FindProperty("m_nModelIndex").IntRecived += (sender2, e2) => { equipment.OriginalString = modelprecache[e2.Value]; if (modelprecache[e2.Value].EndsWith("_rif_m4a1_s.mdl")) { equipment.Weapon = EquipmentElement.M4A1; //BAM } else if (modelprecache[e2.Value].EndsWith("_rif_m4a1.mdl")) { equipment.Weapon = EquipmentElement.M4A4; } else { throw new InvalidDataException("Unknown weapon model"); } }; } if (equipment.Weapon == EquipmentElement.P250) { e.Entity.FindProperty("m_nModelIndex").IntRecived += (sender2, e2) => { equipment.OriginalString = modelprecache[e2.Value]; if (modelprecache[e2.Value].EndsWith("_pist_cz_75.mdl")) { equipment.Weapon = EquipmentElement.CZ; //BAM } else if (modelprecache[e2.Value].EndsWith("_pist_p250.mdl")) { equipment.Weapon = EquipmentElement.P250; } else { throw new InvalidDataException("Unknown weapon model"); } }; } }
private void OnItemCreated(object sender, EntityCreatedEventArgs args) { Item item = (Item) args.Entity; item.LocationChanged += OnItemLocationChanged; }
private void OnActorCreated(object sender, EntityCreatedEventArgs args) { Actor actor = (Actor) args.Entity; actor.LocationChanged += OnActorLocationChanged; actor.Destroyed += OnActorDestroyed; if (actor.Location.Map == this) { this[actor.Location.Position].Actor = actor; } }
void OnEntityCreated(EntityCreatedEventArgs args) { GetOrAddEntityMap(args.Entity.GetType()).MapEntity(args); }
void EventManager_EntityCreate(object sender, EntityCreatedEventArgs args) { }
private void ActorCreatedHandler(object sender, EntityCreatedEventArgs args) { Actor actor = (Actor) args.Entity; actor.Destroyed += ActorDestroyedHandler; // HACK: Get the hero in the first position. if (actor is Hero) actors.Insert (0, actor); else actors.Add (actor); }