/// <summary> /// Check and parse update /// </summary> /// <returns></returns> public bool Check() { bool ret = false; var response = GetUpdaterResponse(); if (response != null) { try { RootobjectforUpdater jobj = JsonConvert.DeserializeObject <RootobjectforUpdater>(response); if (jobj.status && jobj.update_status) { ret = jobj.status; update_id = jobj.result.update_id; current_version = jobj.result.version; client_version = jobj.result.client_version; download_url = jobj.result.download_url; severity = jobj.result.severity; message_title = jobj.result.message_title; message_content = jobj.result.message_content; added_features = jobj.result.added_features; removed_features = jobj.result.removed_features; } else { updatestatus = false; } } catch { updatestatus = false; } } return(ret); }
/// <summary> /// Check and parse updater json response data /// </summary> /// <returns></returns> public object CheckUpdate() { if (InternetController.InternetCheck()) { UpdaterResponse = 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", "updatecheck"); request.AddOrUpdateParameter("type", OutputType); request.AddOrUpdateParameter("version", AppVersion); request.AddOrUpdateParameter("api_key", API_KEY); request.AddOrUpdateParameter("api_secret", API_SECRET); request.AddOrUpdateParameter("multiresult", MultiResult); // get query result var response = server.Execute(request); // get response status code UpdaterResponse.ResponseStatus = response.StatusCode; UpdaterResponse.ResponseData = response.Content; #endregion #region JSON Parsing var settings = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, MissingMemberHandling = MissingMemberHandling.Ignore, PreserveReferencesHandling = PreserveReferencesHandling.Objects, }; RespJsonObj = JsonConvert.DeserializeObject <RootobjectforUpdater>(response.Content, settings); #endregion #region Updates JSON Parsing if (response.StatusCode == HttpStatusCode.OK) { // if API code is 1 if (RespJsonObj.code == 1) { // possible there is/are update/s if (RespJsonObj.result is Array && RespJsonObj.result != null) { // create new updates list Updates = new List <Update>(); // get updates foreach (var update in RespJsonObj.result) { // parse update var newupdate = new Update() { AppId = update.appid, AppVersion = update.app_version, UpdateId = update.updateid, ClientVersion = update.client_version, ReasonCode = update.reason_code, ReasonTitle = update.reason_title, AddedDate = update.added_date, MessageTitle = update.message_title, MessageContent = update.message_content, DownloadUrl = update.download_url, AddedFeatures = update.added_features, RemovedFeatures = update.removed_features }; // add to list Updates.Add(newupdate); } // and then return true return(Updates.Count > 0 ? true : false); } } } else { // error message UpdaterResponse.ResponseAPIErrorMessage = (string)RespJsonObj.messages.error_message; // warning message UpdaterResponse.ResponseAPIWarningMessage = (string)RespJsonObj.messages.warning_message; } #endregion return(false); } return(null); }