/// <summary> /// Reconstructs the meta data from a <see cref="JSONObject"/>. /// </summary> /// <param name="jsonObject"><see cref="JSONObject"/> containing the meta data.</param> public void FromJSONObject(JSONObject jsonObject) { var dataTypeAlias = CloudOnceUtils.GetAlias(typeof(SyncableItemMetaData).Name, jsonObject, c_aliasDataType, c_oldAliasDataType); var persistenceTypeAlias = CloudOnceUtils.GetAlias(typeof(SyncableItemMetaData).Name, jsonObject, c_aliasPersistenceType, c_oldAliasPersistenceType); if (!string.IsNullOrEmpty(jsonObject[dataTypeAlias].String)) { DataType = (DataType)Enum.Parse(typeof(DataType), jsonObject[dataTypeAlias].String); } else { DataType = (DataType)(short)jsonObject[dataTypeAlias].F; } if (!string.IsNullOrEmpty(jsonObject[persistenceTypeAlias].String)) { PersistenceType = (PersistenceType)Enum.Parse(typeof(PersistenceType), jsonObject[persistenceTypeAlias].String); } else { PersistenceType = (PersistenceType)(short)jsonObject[persistenceTypeAlias].F; } if (jsonObject.HasFields(c_aliasTimestamp)) { Timestamp = DateTime.FromBinary(Convert.ToInt64(jsonObject[c_aliasTimestamp].String)); } else if (jsonObject.HasFields(c_oldAliasTimestamp)) { Timestamp = DateTime.FromBinary(Convert.ToInt64(jsonObject[c_oldAliasTimestamp].String)); } }
/// <summary> /// Reconstructs a <see cref="CurrencyValue"/> from a <see cref="JSONObject"/>. /// </summary> /// <param name="jsonObject"><see cref="JSONObject"/> containing a <see cref="CurrencyValue"/></param> public void FromJSONObject(JSONObject jsonObject) { var addAlias = CloudOnceUtils.GetAlias(typeof(CurrencyValue).Name, jsonObject, c_aliasAdditions, c_oldAliasAdditions); var subAlias = CloudOnceUtils.GetAlias(typeof(CurrencyValue).Name, jsonObject, c_aliasSubtractions, c_oldAliasSubtractions); Additions = jsonObject[addAlias].F; Subtractions = jsonObject[subAlias].F; }
/// <summary> /// Reconstructs the item from a <see cref="JSONObject"/>. /// </summary> /// <param name="jsonObject"><see cref="JSONObject"/> containing the item data.</param> public void FromJSONObject(JSONObject jsonObject) { var valueStringAlias = CloudOnceUtils.GetAlias(typeof(SyncableItem).Name, jsonObject, aliasValueString, oldAliasValueString); var metaDataAlias = CloudOnceUtils.GetAlias(typeof(SyncableItem).Name, jsonObject, aliasMetadata, oldAliasMetadata); valueString = jsonObject[valueStringAlias].String; Metadata = new SyncableItemMetaData(jsonObject[metaDataAlias]); }
/// <summary> /// Recreates the currency from a <see cref="JSONObject"/>. /// </summary> /// <param name="jsonObject"><see cref="JSONObject"/> containing the currency data.</param> public void FromJSONObject(JSONObject jsonObject) { var idAlias = CloudOnceUtils.GetAlias(typeof(SyncableCurrency).Name, jsonObject, aliasCurrencyID, oldAliasCurrencyID); var dataAlias = CloudOnceUtils.GetAlias(typeof(SyncableCurrency).Name, jsonObject, aliasCurrencyData, oldAliasCurrencyData); CurrencyID = jsonObject[idAlias].String; DeviceCurrencyValues = JsonHelper.Convert <Dictionary <string, CurrencyValue> >(jsonObject[dataAlias]); }
public GameData(string serializedData) { if (string.IsNullOrEmpty(serializedData)) { SyncableItems = new Dictionary <string, SyncableItem>(); SyncableCurrencies = new Dictionary <string, SyncableCurrency>(); return; } var jsonObject = new JSONObject(serializedData); var itemsAlias = CloudOnceUtils.GetAlias(typeof(GameData).Name, jsonObject, c_syncableItemsKey, c_oldSyncableItemsKey); var currencyAlias = CloudOnceUtils.GetAlias(typeof(GameData).Name, jsonObject, c_syncableCurrenciesKey, c_oldSyncableCurrenciesKey); SyncableItems = JsonHelper.Convert <Dictionary <string, SyncableItem> >(jsonObject[itemsAlias]); SyncableCurrencies = JsonHelper.Convert <Dictionary <string, SyncableCurrency> >(jsonObject[currencyAlias]); }