/** * busca en la tienda la version actual de la aplicacion y * la compara con la version actual y retorna un bandera que * indica si es necesario actualizar la aplicacion. */ public Task <VersionResult> NeedUpdateApp() { return(Task.Run(async() => { try { // si es appCurrentVersion 1, significa que aun no hay version en la tienda. double appCurrentVersion = GetVersion().RemoveAllOcurrenceToDouble("."); //if (appCurrentVersion == 1002) //{ // return VersionResult.Done(false); //} var uri = new Uri(StoreUrl()); using (var client = new HttpClient()) using (var request = new HttpRequestMessage(HttpMethod.Get, uri)) { request.Headers.TryAddWithoutValidation("Accept", "text/html"); request.Headers.TryAddWithoutValidation("User-Agent", "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0"); request.Headers.TryAddWithoutValidation("Accept-Charset", "ISO-8859-1"); using (var response = await client.SendAsync(request).ConfigureAwait(false)) { response.EnsureSuccessStatusCode(); var responseHTML = await response.Content.ReadAsStringAsync().ConfigureAwait(false); var rx = new Regex(@"(?<=""htlgb"">)(\d{1,3}\.\d{1,3}\.\d{1,3}\.{0,1}\d{0,4})(?=<\/span>)", RegexOptions.Compiled); MatchCollection matches = rx.Matches(responseHTML); string storeVersion = matches.Count > 0 ? matches[0].Value : "Unknown"; if (storeVersion == "Unknown") { return VersionResult.Done(false); } double appStoreVersion = storeVersion.RemoveAllOcurrenceToDouble("."); //double appCurrentVersion = GetVersion().RemoveAllOcurrenceToDouble("."); bool needUpdate = appCurrentVersion < appStoreVersion; return VersionResult.Done(needUpdate); } } } catch (Exception e) { var error = string.IsNullOrEmpty(e.Message) ? "ha ocurrido un error inesperado" : e.Message; Console.WriteLine(error); return VersionResult.Fail(error); } })); }
/** * busca en la tienda la version actual de la aplicacion y * compara con la version actual y retorna si es necesario actualizar * la aplicacion. */ public Task <VersionResult> NeedUpdateApp() { return(Task.Run(() => { try { // si es appCurrentVersion 1, significa que aun no hay version en la tienda. string version = GetVersion(); double appCurrentVersion = version.RemoveAllOcurrenceToDouble(token: "."); //if (appCurrentVersion == 10.4) //{ // return VersionResult.Done(false); //} using (var webClient = new System.Net.WebClient()) { string url = StoreUrl(); string jsonString = webClient.DownloadString(url); var lookup = JsonConvert .DeserializeObject <DIC_OBJ>(jsonString); if (lookup != null && lookup.Count >= 1 && lookup["resultCount"] != null ) { if (Convert.ToInt32(lookup["resultCount"].ToString()) <= 0) { return VersionResult.Done(false); } var results = JsonConvert .DeserializeObject <LIST_OBJ>(lookup[@"results"] .ToString()); if (results != null && results.Count > 0) { var values = JsonConvert .DeserializeObject <DIC_OBJ>(results[0] .ToString()); string storeVersion = values.ContainsKey("version") ? values["version"].ToString() : string.Empty; double appStoreVersion = storeVersion.RemoveAllOcurrenceToDouble(token: "."); //double appCurrentVersion = GetVersion().RemoveFirstOcurrenceToDouble(token: "."); bool needUpdate = appCurrentVersion < appStoreVersion; return VersionResult.Done(needUpdate); } } } return VersionResult.Fail("No se ha podido procesar la respuesta del servidor."); } catch (Exception ex) { var error = string.IsNullOrEmpty(ex.Message) ? "ha ocurrido un error inesperado": ex.Message; Console.WriteLine(error); return VersionResult.Fail(error); } })); }