Cache default values

This commit is contained in:
Michael Bucari-Tovo 2023-01-09 15:28:36 -07:00 committed by Mbucari
parent ece93cb4d7
commit 10de241d53
2 changed files with 14 additions and 6 deletions

View File

@ -261,6 +261,10 @@ namespace AppScaffolding
if (!Version.TryParse(latestVersionString, out var latestRelease)) if (!Version.TryParse(latestVersionString, out var latestRelease))
return null; return null;
// we're up to date
if (latestRelease <= BuildVersion)
return null;
// we have an update // we have an update
var zipUrl = zip?.BrowserDownloadUrl; var zipUrl = zip?.BrowserDownloadUrl;
@ -296,7 +300,6 @@ namespace AppScaffolding
var repoName = "Libation"; var repoName = "Libation";
var gitHubClient = new Octokit.GitHubClient(new Octokit.ProductHeaderValue(repoName)); var gitHubClient = new Octokit.GitHubClient(new Octokit.ProductHeaderValue(repoName));
gitHubClient.Credentials = new("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");
//Download the release index //Download the release index
var bts = await gitHubClient.Repository.Content.GetRawContent(ownerAccount, repoName, ".releaseindex.json"); var bts = await gitHubClient.Repository.Content.GetRawContent(ownerAccount, repoName, ".releaseindex.json");

View File

@ -38,9 +38,10 @@ namespace FileManager
if (!stringCache.ContainsKey(propertyName)) if (!stringCache.ContainsKey(propertyName))
{ {
var jObject = readFile(); var jObject = readFile();
if (!jObject.ContainsKey(propertyName)) if (jObject.ContainsKey(propertyName))
return defaultValue;
stringCache[propertyName] = jObject[propertyName].Value<string>(); stringCache[propertyName] = jObject[propertyName].Value<string>();
else
stringCache[propertyName] = defaultValue;
} }
return stringCache[propertyName]; return stringCache[propertyName];
@ -50,12 +51,16 @@ namespace FileManager
{ {
var obj = GetObject(propertyName); var obj = GetObject(propertyName);
if (obj is null) return defaultValue; if (obj is null)
{
objectCache[propertyName] = defaultValue;
return defaultValue;
}
if (obj.GetType().IsAssignableTo(typeof(T))) return (T)obj; if (obj.GetType().IsAssignableTo(typeof(T))) return (T)obj;
if (obj is JObject jObject) return jObject.ToObject<T>(); if (obj is JObject jObject) return jObject.ToObject<T>();
if (obj is JValue jValue) if (obj is JValue jValue)
{ {
if (jValue.Type == JTokenType.String && typeof(T).IsAssignableTo(typeof(Enum))) if (typeof(T).IsAssignableTo(typeof(Enum)))
{ {
return return
Enum.TryParse(typeof(T), jValue.Value<string>(), out var enumVal) Enum.TryParse(typeof(T), jValue.Value<string>(), out var enumVal)