public string LoadUserInventory() { string query = $"SELECT * FROM dbo.PlayerInventory WHERE UserAccount = '{UserInfoProvider.Instance.UserAccount}'"; DataSet dataSet = ConnectDB_GetDataSet("PlayerInfo_DB", query); if (dataSet == null) { return("서버에 연결할 수 없습니다."); } object[] dataArray = dataSet.Tables[0].Rows[0].ItemArray; string inventoryJSON = dataArray[1].ToString(); InventoryJSON jsonObject = JsonUtility.FromJson <InventoryJSON>(inventoryJSON); InventoryJSONUnit[] inventoryItemJSONInfos = jsonObject.ItemUnits; if (inventoryItemJSONInfos.Length == 0) { UserInventoryProvider.Instance.Initialize(null); } else { InventoryItem[] inventoryItems = new InventoryItem[inventoryItemJSONInfos.Length]; for (int i = 0; i < inventoryItems.Length; ++i) { ItemData data = ItemDB.Instance.GetItemData(inventoryItemJSONInfos[i].ItemCode); inventoryItems[i] = new InventoryItem(data, inventoryItemJSONInfos[i].ItemCount); } UserInventoryProvider.Instance.Initialize(inventoryItems); } return("Success"); }
public void TestGetKeysFromJsonObject() { var dictionary = InventoryJSON.ToDictionary(); var keys = InventoryJSON.Keys(); Assert.AreEqual(InventoryJSON.Keys().Count, 5); foreach (var key in keys) { Assert.IsTrue(dictionary.ContainsKey(key)); } }
public void Save_PlayerInventory() { InventoryItem[] userItems = UserInventoryProvider.Instance.InventoryItems; InventoryJSON inventoryJSON = new InventoryJSON(); inventoryJSON.ItemUnits = new InventoryJSONUnit[userItems.Length]; for (int i = 0; i < userItems.Length; ++i) { inventoryJSON.ItemUnits[i] = new InventoryJSONUnit(); inventoryJSON.ItemUnits[i].ItemCode = userItems[i].OriginalItemData.ItemCode; inventoryJSON.ItemUnits[i].ItemCount = userItems[i].ItemCount; } string jsonSTR = JsonUtility.ToJson(inventoryJSON); string sql = $"UPDATE dbo.PlayerInventory SET InventoryJSON='{jsonSTR}' WHERE UserAccount='{UserInfoProvider.Instance.UserAccount}'"; ConnectDB_ExecuteNonQuery("PlayerInfo_DB", sql); }