public static async Task <object> RPC(string name, object parameters = null) { string path = $"call/{name}"; object encodeParams = ParseEncoder.Encode(parameters); Dictionary <string, object> response = await ParseClient.HttpClient.Post <Dictionary <string, object> >(path, data : encodeParams); return(ParseDecoder.Decode(response["result"])); }
public static ParseObjectData Decode(IDictionary dict) { if (dict == null) { return(null); } ParseObjectData objectData = new ParseObjectData(); foreach (DictionaryEntry kv in dict) { string key = kv.Key.ToString(); object value = kv.Value; if (key == "className") { objectData.ClassName = value.ToString(); } else if (key == "objectId") { objectData.ObjectId = value.ToString(); } else if (key == "createdAt" && DateTime.TryParse(value.ToString(), out DateTime createdAt)) { objectData.CreatedAt = createdAt.ToLocalTime(); } else if (key == "updatedAt" && DateTime.TryParse(value.ToString(), out DateTime updatedAt)) { objectData.UpdatedAt = updatedAt.ToLocalTime(); } else { if (key == "ACL" && value is Dictionary <string, object> dic) { objectData.CustomPropertyDict[key] = ParseDecoder.DecodeACL(dic); } else { objectData.CustomPropertyDict[key] = ParseDecoder.Decode(value); } } } return(objectData); }