예제 #1
0
        /// <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));
            }
        }
예제 #2
0
        /// <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;
        }
예제 #3
0
        /// <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]);
        }
예제 #4
0
        /// <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]);
        }
예제 #5
0
        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]);
        }