async Task CheckDataAndDownloadIfOutOfDate(DataFileTypeEnum dataFileType) { // Load file content and calculate hash var fileContent = ""; var filePath = Path.Combine(folderData, $"{dataFileType}.json"); if (File.Exists(filePath)) { fileContent = File.ReadAllText(filePath); } var hashLocal = new Entity.Util().To32BitFnv1aHash(fileContent); // Compare hash to server var isUpToDate = TryDownloadFromServer(() => { var raw = HttpClientGet_WithTimeoutNotification(server + $"/api/misc/filehash?id={dataFileType}&hash={hashLocal}", 15).Result; var response = TryDeserializeJson <bool>(raw); return(response); }); // Download if out of date if (isUpToDate == false) { Log.Information("Data [{dataType}] out of date, redownloading", dataFileType); await TryDownloadFromServer <Task <object> >(async() => { await HttpClientDownloadFile_WithTimeoutNotification(server + $"/api/download/{dataFileType}", 60, filePath); return(null); }); } }
internal string GetThumbnailLocal(string imageArtUrl) { var thumbnailUrl = new Entity.Util().GetThumbnailUrl(imageArtUrl); var ret = Path.GetFullPath( #if DEBUG == false Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "MTGAHelper") + "\\" + #endif thumbnailUrl .Replace("/images", "Assets")); return(ret); }