private void SaveChestInventory(NWPlayer oPC, NWPlaceable oChest, bool resetTimeLock) { int chestID = oChest.GetLocalInt(SearchSiteIDVariableName); PCSearchSite entity = _db.PCSearchSites.SingleOrDefault(x => x.PlayerID == oPC.GlobalID && x.SearchSiteID == chestID); int lockHours = _random.Random(2, 5); DateTime lockTime = DateTime.UtcNow.AddHours(lockHours); if (entity != null) { if (resetTimeLock) { lockTime = entity.UnlockDateTime; } _db.PCSearchSites.Remove(entity); } entity = new PCSearchSite { PlayerID = oPC.GlobalID, SearchSiteID = chestID, UnlockDateTime = lockTime }; foreach (NWItem item in oChest.InventoryItems) { if (item.GetLocalInt("QUEST_ID") <= 0) { PCSearchSiteItem itemEntity = new PCSearchSiteItem { SearchItem = _serialization.Serialize(item), SearchSiteID = entity.SearchSiteID }; _db.PCSearchSiteItems.Add(itemEntity); } } _db.SaveChanges(); }
private static void SaveChestInventory(NWPlayer oPC, NWPlaceable oChest, bool resetTimeLock) { int chestID = oChest.GetLocalInt(SearchSiteIDVariableName); PCSearchSite entity = DataService.SingleOrDefault <PCSearchSite>(x => x.PlayerID == oPC.GlobalID && x.SearchSiteID == chestID); int lockHours = RandomService.Random(2, 5); DateTime lockTime = DateTime.UtcNow.AddHours(lockHours); if (entity != null) { if (resetTimeLock) { lockTime = entity.UnlockDateTime; } DataService.SubmitDataChange(entity, DatabaseActionType.Delete); } entity = new PCSearchSite { PlayerID = oPC.GlobalID, SearchSiteID = chestID, UnlockDateTime = lockTime }; foreach (NWItem item in oChest.InventoryItems) { if (item.GetLocalInt("QUEST_ID") <= 0) { PCSearchSiteItem itemEntity = new PCSearchSiteItem { SearchItem = SerializationService.Serialize(item), SearchSiteID = entity.SearchSiteID }; DataService.SubmitDataChange(itemEntity, DatabaseActionType.Insert); } } }