public static PFObject ToPfObject(this object obj) { var type = obj.GetType(); var pfObj = PFObject.FromName(type.Name); var properties = type.GetProperties(); foreach (var prop in properties) { if (Attribute.IsDefined(prop, typeof(IgnoreDataMemberAttribute))) { continue; } string keyName = Attribute.IsDefined(prop, typeof(DataMemberAttribute)) ? ((DataMemberAttribute)Attribute.GetCustomAttribute(prop, typeof(DataMemberAttribute))).Name : prop.Name; if (keyName == "UpdatedAt" || keyName == "CreatedAt" || keyName == "ObjectId") { continue; } var val = prop.GetValue(obj, null); NSString valString; if (val is DateTime) { valString = new NSString(((DateTime)val).ToString("s")); } else { valString = new NSString(val.ToString()); } pfObj.SetObjectforKey(valString, keyName); } return(pfObj); }
private void FoundResults(PFObject[] array, NSError error) { var easySection = new Section("Easy"); var mediumSection = new Section("Medium"); var hardSection = new Section("Hard"); var objects = array.Select(x=> x.ToObject<GameScore>()).OrderByDescending(x=> x.Score).ToList(); foreach(var score in objects) { var element = new StringElement(score.Player,score.Score.ToString("#,###")); switch(score.Dificulty) { case GameDificulty.Easy: easySection.Add(element); break; case GameDificulty.Medium: mediumSection.Add(element); break; case GameDificulty.Hard: hardSection.Add (element); break; } } Root = new RootElement("High Scores") { easySection, mediumSection, hardSection, }; }
public IEnumerator Load(string pobjectid, string classname) { var pobject = new PFObject(); pobject.ObjectId = pobjectid; pobject.ClassName = classname; string url; WWWForm post; Playtomic_Request.Prepare(SECTION, LOAD, ObjectPostData(pobject), out url, out post); WWW www = new WWW(url, post); yield return(www); var response = Playtomic_Request.Process(www); if (response.Success) { var data = response.JSON; var po = new PFObject(); po.ClassName = (string)data["classname"]; po.ObjectId = (string)data["id"]; po.Password = (string)data["password"]; po.CreatedAt = DateTime.Parse((string)data["created"]); po.UpdatedAt = DateTime.Parse((string)data["updated"]); var fields = (Hashtable)data["fields"]; foreach (var key in fields.Keys) { po.Data.Add((string)key, (string)fields[key]); } var pointers = (Hashtable)data["pointers"]; foreach (var key in pointers.Keys) { var pdata = (ArrayList)pointers[key]; var pchild = new PFObject(); pchild.ObjectId = (string)pdata[0]; pchild.ClassName = (string)pdata[1]; po.Pointers.Add(new PFPointer((string)key, pchild)); } response.PObject = po; } SetResponse(response, "Load"); }
public IEnumerator Delete(PFObject pobject) { string url; WWWForm post; Playtomic_Request.Prepare(SECTION, DELETE, ObjectPostData(pobject), out url, out post); WWW www = new WWW(url, post); yield return www; var response = Playtomic_Request.Process(www); SetResponse(response, "Delete"); }
public static T ToObject <T> (this PFObject pfObj) where T : new () { T obj = new T(); var type = obj.GetType(); var keys = pfObj.AllKeys; foreach (var prop in type.GetProperties()) { string keyName = Attribute.IsDefined(prop, typeof(DataMemberAttribute)) ? ((DataMemberAttribute)Attribute.GetCustomAttribute(prop, typeof(DataMemberAttribute))).Name : prop.Name; if (!keys.Contains(keyName) && keyName != "UpdatedAt" && keyName != "CreatedAt" && keyName != "ObjectId") { continue; } if (keyName == "UpdatedAt") { prop.SetValue(obj, (DateTime)(pfObj.UpdatedAt ?? DateTime.MinValue), null); continue; } else if (keyName == "CreatedAt") { prop.SetValue(obj, (DateTime)(pfObj.CreatedAt ?? DateTime.MinValue), null); continue; } else if (keyName == "ObjectId") { prop.SetValue(obj, pfObj.ObjectId, null); continue; } if (prop.PropertyType == typeof(DateTime)) { prop.SetValue(obj, DateTime.ParseExact(pfObj.ObjectForKey(keyName).ToString(), "s", CultureInfo.InvariantCulture), null); } else if (prop.PropertyType.IsEnum) { prop.SetValue(obj, Enum.Parse(prop.PropertyType, pfObj.ObjectForKey(keyName).ToString()), null); } else if (prop.PropertyType == typeof(String)) { prop.SetValue(obj, pfObj.ObjectForKey(keyName).ToString(), null); } else { prop.SetValue(obj, Convert.ChangeType(pfObj.ObjectForKey(keyName).ToString(), prop.PropertyType), null); } } return(obj); }
public IEnumerator Delete(PFObject pobject) { string url; WWWForm post; Playtomic_Request.Prepare(SECTION, DELETE, ObjectPostData(pobject), out url, out post); WWW www = new WWW(url, post); yield return(www); var response = Playtomic_Request.Process(www); SetResponse(response, "Delete"); }
//ParseStarterProjectViewController viewController; // // This method is invoked when the application has loaded and is ready to run. In this // method you should instantiate the window, load the UI into it and then make the window // visible. // // You have 17 seconds to return from this method, or iOS will terminate your application. // public override bool FinishedLaunching(UIApplication app, NSDictionary options) { NSUrlResponse url; window = new UIWindow(UIScreen.MainScreen.Bounds); Parse.Parse.SetApplicationId("appid", "clientkey"); NSError error = new NSError(); PFObject testObject = PFObject.FromName("TestObject"); testObject.SetObjectforKey(new NSString("bar"), "foo"); testObject.Save(out error); //viewController = new ParseStarterProjectViewController (); //window.RootViewController = viewController; window.MakeKeyAndVisible(); return(true); }
// Parse IEnumerator SaveParseObject() { Debug.Log("Saving Parse Object"); var po = new PFObject(); po.ClassName = "unity"; po.Data.Add("param", "value"); yield return(StartCoroutine(Playtomic.Parse.Save(po))); var response = Playtomic.Parse.GetResponse("Save"); if (response.Success) { Debug.Log("Object saved: " + response.PObject.ObjectId); } else { Debug.Log("Object failed to save because of " + response.ErrorCode + ": " + response.ErrorDescription); } }
/** * Turns a ParseObject into data to be POST'd for saving, finding * @param pobject The ParseObject */ private static Dictionary <String, String> ObjectPostData(PFObject pobject) { var postobject = new Dictionary <String, String>(); postobject.Add("classname", pobject.ClassName); postobject.Add("id", (pobject.ObjectId == null ? "" : pobject.ObjectId)); postobject.Add("password", (pobject.Password == null ? "" : pobject.Password)); foreach (var key in pobject.Data.Keys) { postobject.Add("data" + key, pobject.Data[key]); } for (var i = pobject.Pointers.Count - 1; i > -1; i--) { postobject.Add("pointer" + i + "fieldname", pobject.Pointers[i].FieldName); postobject.Add("pointer" + i + "classname", pobject.Pointers[i].PObject.ClassName); postobject.Add("pointer" + i + "id", pobject.Pointers[i].PObject.ObjectId); } return(postobject); }
public IEnumerator Save(PFObject pobject) { string url; WWWForm post; Playtomic_Request.Prepare(SECTION, SAVE, ObjectPostData(pobject), out url, out post); WWW www = new WWW(url, post); yield return(www); var response = Playtomic_Request.Process(www); if (response.Success) { var data = (Hashtable)response.JSON; pobject.ObjectId = (string)data["id"]; pobject.CreatedAt = DateTime.Parse((string)data["created"]); pobject.UpdatedAt = DateTime.Parse((string)data["updated"]); response.PObject = pobject; } SetResponse(response, "Save"); }
/** * Turns a ParseObject into data to be POST'd for saving, finding * @param pobject The ParseObject */ private static Dictionary<String, String> ObjectPostData(PFObject pobject) { var postobject = new Dictionary<String, String>(); postobject.Add("classname", pobject.ClassName); postobject.Add("id", (pobject.ObjectId == null ? "" : pobject.ObjectId)); postobject.Add("password", (pobject.Password == null ? "" : pobject.Password)); foreach(var key in pobject.Data.Keys) postobject.Add("data" + key, pobject.Data[key]); for(var i=pobject.Pointers.Count-1; i>-1; i--) { postobject.Add("pointer" + i + "fieldname", pobject.Pointers[i].FieldName); postobject.Add("pointer" + i + "classname", pobject.Pointers[i].PObject.ClassName); postobject.Add("pointer" + i + "id", pobject.Pointers[i].PObject.ObjectId); } return postobject; }
public IEnumerator Save(PFObject pobject) { string url; WWWForm post; Playtomic_Request.Prepare(SECTION, SAVE, ObjectPostData(pobject), out url, out post); WWW www = new WWW(url, post); yield return www; var response = Playtomic_Request.Process(www); if (response.Success) { var data = (Hashtable)response.JSON; pobject.ObjectId = (string)data["id"]; pobject.CreatedAt = DateTime.Parse((string)data["created"]); pobject.UpdatedAt = DateTime.Parse((string)data["updated"]); response.PObject = pobject; } SetResponse(response, "Save"); }
public IEnumerator Load(string pobjectid, string classname) { var pobject = new PFObject(); pobject.ObjectId = pobjectid; pobject.ClassName = classname; string url; WWWForm post; Playtomic_Request.Prepare(SECTION, LOAD, ObjectPostData(pobject), out url, out post); WWW www = new WWW(url, post); yield return www; var response = Playtomic_Request.Process(www); if(response.Success) { var data = response.JSON; var po = new PFObject(); po.ClassName = (string)data["classname"]; po.ObjectId = (string)data["id"]; po.Password = (string)data["password"]; po.CreatedAt = DateTime.Parse((string)data["created"]); po.UpdatedAt = DateTime.Parse((string)data["updated"]); var fields = (Hashtable)data["fields"]; foreach(var key in fields.Keys) { po.Data.Add((string)key, (string)fields[key]); } var pointers = (Hashtable)data["pointers"]; foreach(var key in pointers.Keys) { var pdata = (ArrayList)pointers[key]; var pchild = new PFObject(); pchild.ObjectId = (string)pdata[0]; pchild.ClassName = (string)pdata[1]; po.Pointers.Add(new PFPointer((string)key, pchild)); } response.PObject = po; } SetResponse(response, "Load"); }
public PFPointer(string fieldname, PFObject po) { FieldName = fieldname; PObject = po; }
public IEnumerator Find(PFQuery pquery) { var postdata = new Dictionary <String, String>(); postdata.Add("classname", pquery.ClassName); postdata.Add("limit", pquery.Limit.ToString()); postdata.Add("order", !string.IsNullOrEmpty(pquery.Order) ? pquery.Order : "created_at"); foreach (var key in pquery.WhereData.Keys) { postdata.Add("data" + key, pquery.WhereData[key]); } for (var i = pquery.WherePointers.Count - 1; i > -1; i--) { postdata["pointer" + i + "fieldname"] = pquery.WherePointers[i].FieldName; postdata["pointer" + i + "classname"] = pquery.WherePointers[i].PObject.ClassName; postdata["pointer" + i + "id"] = pquery.WherePointers[i].PObject.ObjectId; } string url; WWWForm post; Playtomic_Request.Prepare(SECTION, FIND, postdata, out url, out post); WWW www = new WWW(url, post); yield return(www); var response = Playtomic_Request.Process(www); if (response.Success) { response.PObjects = new List <PFObject>(); var array = response.ARRAY; foreach (Hashtable data in array) { var po = new PFObject(); po.ClassName = (string)data["classname"]; po.ObjectId = (string)data["id"]; po.Password = (string)data["password"]; po.CreatedAt = DateTime.Parse((string)data["created"]); po.UpdatedAt = DateTime.Parse((string)data["updated"]); var fields = (Hashtable)data["fields"]; foreach (var key in fields.Keys) { po.Data.Add((string)key, (string)fields[key]); } var pointers = (Hashtable)data["pointers"]; foreach (var key in pointers.Keys) { var pdata = (ArrayList)pointers[key]; var pchild = new PFObject(); pchild.ObjectId = (string)pdata[0]; pchild.ClassName = (string)pdata[1]; po.Pointers.Add(new PFPointer((string)key, pchild)); } response.PObjects.Add(po); } } SetResponse(response, "Find"); }
public IEnumerator Find(PFQuery pquery) { var postdata = new Dictionary<String, String>(); postdata.Add("classname", pquery.ClassName); postdata.Add("limit", pquery.Limit.ToString()); postdata.Add("order", !string.IsNullOrEmpty(pquery.Order) ? pquery.Order : "created_at"); foreach(var key in pquery.WhereData.Keys) postdata.Add("data" + key, pquery.WhereData[key]); for(var i=pquery.WherePointers.Count-1; i>-1; i--) { postdata["pointer" + i + "fieldname"] = pquery.WherePointers[i].FieldName; postdata["pointer" + i + "classname"] = pquery.WherePointers[i].PObject.ClassName; postdata["pointer" + i + "id"] = pquery.WherePointers[i].PObject.ObjectId; } string url; WWWForm post; Playtomic_Request.Prepare(SECTION, FIND, postdata, out url, out post); WWW www = new WWW(url, post); yield return www; var response = Playtomic_Request.Process(www); if(response.Success) { response.PObjects = new List<PFObject>(); var array = response.ARRAY; foreach(Hashtable data in array) { var po = new PFObject(); po.ClassName = (string)data["classname"]; po.ObjectId = (string)data["id"]; po.Password = (string)data["password"]; po.CreatedAt = DateTime.Parse((string)data["created"]); po.UpdatedAt = DateTime.Parse((string)data["updated"]); var fields = (Hashtable)data["fields"]; foreach(var key in fields.Keys) { po.Data.Add((string)key, (string)fields[key]); } var pointers = (Hashtable)data["pointers"]; foreach(var key in pointers.Keys) { var pdata = (ArrayList)pointers[key]; var pchild = new PFObject(); pchild.ObjectId = (string)pdata[0]; pchild.ClassName = (string)pdata[1]; po.Pointers.Add(new PFPointer((string)key, pchild)); } response.PObjects.Add(po); } } SetResponse(response, "Find"); }
// Parse private IEnumerator SaveParseObject() { Debug.Log("Saving Parse Object"); var po = new PFObject(); po.ClassName = "unity"; po.Data.Add("param", "value"); yield return StartCoroutine(Playtomic.Parse.Save(po)); var response = Playtomic.Parse.GetResponse("Save"); if(response.Success) { Debug.Log("Object saved: " + response.PObject.ObjectId); } else { Debug.Log("Object failed to save because of " + response.ErrorCode + ": " + response.ErrorDescription); } }