protected Task <AnalyzerProviderBaseRuleData?> ReadFromGithub( AnalyzerProviderBaseRuleData data) { ArgumentNullException.ThrowIfNull(data); var url = GitRawAtcAnalyzerProviderBaseRulesBasePath + data.Name + ".json"; var displayName = url.Replace(Constants.GitRawContentUrl, Constants.GitHubPrefix, StringComparison.Ordinal); try { var rawGitData = HttpClientHelper.GetAsString( logger, url, displayName); return(Task.FromResult(string.IsNullOrEmpty(rawGitData) ? null : JsonSerializer.Deserialize <AnalyzerProviderBaseRuleData>(rawGitData, AnalyzerProviderSerialization.JsonOptions) !)); } catch (HttpRequestException ex) { if (ex.StatusCode == HttpStatusCode.NotFound) { return(Task.FromResult <AnalyzerProviderBaseRuleData?>(null)); } throw; } }
protected static Task WriteToTempFolder( AnalyzerProviderBaseRuleData data) { ArgumentNullException.ThrowIfNull(data); if (!string.IsNullOrEmpty(data.ExceptionMessage)) { return(Task.CompletedTask); } if (data.Rules.Count == 0) { data.ExceptionMessage = "No rules found"; return(Task.CompletedTask); } var tempFolder = Path.Combine(Path.GetTempPath(), "AtcAnalyzerProviderBaseRules"); if (!Directory.Exists(tempFolder)) { Directory.CreateDirectory(tempFolder); } var tempFile = Path.Combine(tempFolder, data.Name + ".json"); var json = JsonSerializer.Serialize(data, AnalyzerProviderSerialization.JsonOptions); return(File.WriteAllTextAsync(tempFile, json)); }
protected static async Task <AnalyzerProviderBaseRuleData?> ReadFromTempFolder( AnalyzerProviderBaseRuleData data) { ArgumentNullException.ThrowIfNull(data); var tempFolder = Path.Combine(Path.GetTempPath(), "AtcAnalyzerProviderBaseRules"); if (!Directory.Exists(tempFolder)) { Directory.CreateDirectory(tempFolder); } var tempFile = Path.Combine(tempFolder, data.Name + ".json"); var fileInfo = new FileInfo(tempFile); if (!fileInfo.Exists) { return(null); } var fileAsJson = await File.ReadAllTextAsync(tempFile); return(JsonSerializer.Deserialize <AnalyzerProviderBaseRuleData>(fileAsJson, AnalyzerProviderSerialization.JsonOptions)); }
protected abstract Task ReCollect(AnalyzerProviderBaseRuleData data);