/// <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);
        }
Beispiel #2
0
        /// <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; }
        }