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);
                });
            }
        }
示例#2
0
        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);
        }