/// <summary> /// Async: Get a new, randomly generated UUID from the CouchDB itself for use in new documents. /// </summary> /// <returns></returns> private async Task <string> getNewUUID() { string url = _databaseurl + "_uuids"; string retrievedJSON = await HTTPRequests.getRequestAsync(url); Dictionary <string, string[]> json; string newUUID = ""; try { json = JsonConvert.DeserializeObject <Dictionary <string, string[]> >(retrievedJSON); newUUID = json["uuids"][0]; } catch { return(""); } return(newUUID); }
/// <summary> /// Async: Post a new tweet to the previously defined twitter account. /// </summary> /// <param name="tweet">The tweet to post. Max. 140 chars</param> /// <param name="latitude">Optional: latitude for geotagging</param> /// <param name="longitude">Optional: longitude for geotagging</param> public async void newStatusAsync(string tweet, string latitude = "", string longitude = "") { string url = "https://api.twitter.com/1/statuses/update.json"; var parameters = new Dictionary <string, string>(); parameters.Add("status", Utils.UrlEncodeRelaxed(tweet)); parameters.Add("display_coordinates", "true"); if (latitude != "") { parameters.Add("lat", Utils.UrlEncodeRelaxed(latitude)); } if (longitude != "") { parameters.Add("long", Utils.UrlEncodeRelaxed(longitude)); } string authorization = generateAuthorizationHeader(url, "POST", parameters); string content = string.Format("status={0}", Utils.UrlEncodeRelaxed(tweet)); content += string.Format("&display_coordinates={0}", "true"); if (latitude != "") { content += string.Format("&lat={0}", Utils.UrlEncodeRelaxed(latitude)); } if (longitude != "") { content += string.Format("&long={0}", Utils.UrlEncodeRelaxed(longitude)); } string result = await HTTPRequests.postRequestAsync(url, content, authorization); if (result == "") { _status = false; } else { _status = true; } }
/// <summary> /// Upload a new document to Couch. /// </summary> /// <param name="json">The JSON to upload as a new document</param> /// <param name="id">The ID of the new document</param> public async void uploadDocument(string json, string id = "") { if (!NetworkInterface.GetIsNetworkAvailable()) { _status = false; return; } if (id == "") { id = await getNewUUID(); } string url = _databaseurl + _databasename + "/" + id; try { string result = await HTTPRequests.putRequestAsync(url, json); Dictionary <string, object> resultJSON = JsonConvert.DeserializeObject <Dictionary <string, object> >(result); _status = (bool)resultJSON["ok"]; } catch { _status = false; } }