/// <summary> /// Send request for feedback /// </summary> /// <returns></returns> public bool SendFeedback() { if (InternetController.InternetCheck()) { FeedbackResponse = new ApiResponse(); #region API Request // request host var server = new RestClient("http://api.kor.onl/"); // request relative url var request = new RestRequest("apps/updater/1.0/", Method.POST); // add important parameters request.AddOrUpdateParameter("request", "feedback"); request.AddOrUpdateParameter("type", OutputType); request.AddOrUpdateParameter("updateid", UpdateId); request.AddOrUpdateParameter("api_key", API_KEY); request.AddOrUpdateParameter("api_secret", API_SECRET); request.AddOrUpdateParameter("comment", Comment); request.AddOrUpdateParameter("point", Point); request.AddOrUpdateParameter("client", Client.Username); request.AddOrUpdateParameter("machine", Client.CPUId); // get query result var response = server.Execute(request); // get response status code FeedbackResponse.ResponseStatus = response.StatusCode; FeedbackResponse.ResponseData = response.Content; #endregion #region JSON Parsing var settings = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, MissingMemberHandling = MissingMemberHandling.Ignore, PreserveReferencesHandling = PreserveReferencesHandling.Objects, }; RespJsonObj = JsonConvert.DeserializeObject <RootobjectforFeedback>(response.Content, settings); #endregion #region Updates JSON Parsing if (response.StatusCode == HttpStatusCode.OK) { // if API code is 1 if (RespJsonObj.code == 1) { if (RespJsonObj.result == "OK") { return(true); } } FeedbackResponse.ResponseResultString = RespJsonObj.result; } else { // error message FeedbackResponse.ResponseAPIErrorMessage = (string)RespJsonObj.messages.error_message ?? ""; // warning message FeedbackResponse.ResponseAPIWarningMessage = (string)RespJsonObj.messages.warning_message ?? ""; } #endregion } return(false); }
/// <summary> /// Feecback sender /// </summary> /// <param name="status"></param> /// <returns></returns> public bool SendAppFeedback(string feedback_type, string message, string messageid, string update_id) { UpdateCheck updatecheck = new UpdateCheck(); stopwatch.Start(); bool ret = false; DateTime startedOnUtc = DateTime.UtcNow; string responseData = null; string responseHeaders = null; int responseStatusCode = 0; try { BetterWebClient webClient = new BetterWebClient(); webClient.Proxy = null; webClient.Headers.Add(HttpRequestHeader.Accept, "application/json charset=utf-8"); var webRequest = webClient.GetWebRequestX(new Uri(CreateCheckURL(feedback_type, message, messageid, update_id))); webRequest.Method = WebRequestMethods.Http.Get; using (WebResponse response = webRequest.GetResponse()) { internet.processResponse(response, out responseData, out responseHeaders, out responseStatusCode); } } catch (WebException ex) { using (ex.Response) { internet.processResponse(ex.Response, out responseData, out responseHeaders, out responseStatusCode); } // stop stopwatch stopwatch.Stop(); #region Prepare Error Log // get error log contains string errorlog = ":Date: " + DateTime.UtcNow.ToString() + Environment.NewLine; errorlog = errorlog + ":ExMessage: " + ex.Message + Environment.NewLine + Environment.NewLine; errorlog = errorlog + ":ExtentedExMEssage: " + ex.ToString() + Environment.NewLine + Environment.NewLine; errorlog = errorlog + ":HttpStatus: " + responseStatusCode + Environment.NewLine; errorlog = errorlog + ":ResponseData: " + responseData + Environment.NewLine; errorlog = errorlog + ":TimeElapsed: " + stopwatch.Elapsed; // get error log id string errorid = aes256.AES256Engine(Info.current_username + "+" + DateTime.UtcNow.ToString(), Info.current_username); #endregion // save errorlog for feedback common.saveErrorLog(errorlog, errorid, updatecheck.update_id); } Debug.WriteLine("respoınse---->>>>>>>>>>>>>>>>>>" + responseStatusCode); // All 2xx HTTP statuses are OK if (responseStatusCode >= 200 && responseStatusCode < 300) { // response json data RootobjectforFeedback jobj = JsonConvert.DeserializeObject <RootobjectforFeedback>(responseData); if (jobj.status && jobj.feed_status) { ret = true; } else { ret = false; } } return(ret); }