/// <summary>
        /// Performs an API Write (HTTP POST) request, with an optional callback to add extra request params
        /// </summary>
        /// <param name="postJson"></param>
        /// <param name="fileUploadInfo"></param>
        /// <returns></returns>
        protected virtual string GetPostResponseJson(string postJson, FileUploadInfo fileUploadInfo)
        {
            // Build the URL
            string url = Configuration.ApiWriteUrl;

            Debug.WriteLine(String.Format("POSTing request to URL '{0}' with json: {1} ", url, postJson));

            // build our post parameters
            NameValueCollection postParameters = new NameValueCollection();

            postParameters.Add("json", postJson);

            HttpWebRequest request;

            if (fileUploadInfo != null)
            {
                request = RequestBuilder.BuildMultipartFormDataPostRequest(url, postParameters, fileUploadInfo);
            }
            else
            {
                request = RequestBuilder.BuildPostFormRequest(url, postParameters);
            }

            string json = PerformRequest(request);

            Debug.WriteLine(String.Format("JSON Response: \n{0}", json));

            return(json);
        }