public static void CheckServersFile() { var path = Path.Combine(App.DataPath, "servers.txt"); if (!DatabaseHashes.TryGetValue("servers.txt", out var serversHash)) { return; } if (File.Exists(path) && HashUtils.GenerateFileHash(path) == serversHash) { return; } DownloadServersFile(); }
public static void CheckDatabaseHash() { DatabaseHashes.Clear(); try { DownloadDatabaseHashes(); } catch (Exception ex) { Log.F($"Failed to download database hashes. nException: {ex.Message}\n{ex.StackTrace}"); if (App.SplashScreen.VM.AskUpdate("Failed to download database hashes. Try again?")) { CheckDatabaseHash(); } } }
private static void DownloadDatabaseHashes() { DatabaseHashes.Clear(); using var c = MiscUtils.GetDefaultWebClient(); var f = c.OpenRead(DatabaseHashFileUrl); if (f == null) { return; } using var sr = new StreamReader(f); var sHashes = sr.ReadToEnd(); var jHashes = JObject.Parse(sHashes); jHashes.Descendants().ToList().ForEach(jDesc => { if (!(jDesc is JProperty jProp)) { return; } DatabaseHashes[jProp.Name] = jProp.Value.ToString(); }); }