public ACE.Entity.Models.Weenie GetScrollWeenie(uint spellID) { if (!scrollsBySpellID.TryGetValue(spellID, out var weenie)) { if (!weenieSpecificCachesPopulated) { using (var context = new WorldDbContext()) { var query = from weenieRecord in context.Weenie join did in context.WeeniePropertiesDID on weenieRecord.ClassId equals did.ObjectId where weenieRecord.Type == (int)WeenieType.Scroll && did.Type == (ushort)PropertyDataId.Spell && did.Value == spellID select weenieRecord; var result = query.FirstOrDefault(); if (result == null) { return(null); } weenie = WeenieConverter.ConvertToEntityWeenie(result); scrollsBySpellID[spellID] = weenie; } } } return(weenie); }
/// <summary> /// This will populate all sub collections except the following: LandblockInstances, PointsOfInterest<para /> /// This will also update the weenie cache. /// </summary> public override List <Weenie> GetAllWeenies() { var weenies = base.GetAllWeenies(); // Add the weenies to the cache foreach (var weenie in weenies) { weenieCache[weenie.ClassId] = WeenieConverter.ConvertToEntityWeenie(weenie); weenieClassNameToClassIdCache[weenie.ClassName.ToLower()] = weenie.ClassId; } return(weenies); }
/// <summary> /// This will populate all sub collections except the following: LandblockInstances, PointsOfInterest<para /> /// This will also update the weenie cache. /// </summary> public override Weenie GetWeenie(WorldDbContext context, uint weenieClassId) { var weenie = base.GetWeenie(context, weenieClassId); // If the weenie doesn't exist in the cache, we'll add it. if (weenie != null) { weenieCache[weenieClassId] = WeenieConverter.ConvertToEntityWeenie(weenie); weenieClassNameToClassIdCache[weenie.ClassName.ToLower()] = weenie.ClassId; } else weenieCache[weenieClassId] = null; return weenie; }