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