public async Task <GitHubSource> GetPathAsync(string path) { path = NormalizePath(path, out var lineSelection); if (_contentCache.TryGetValue(path, out var cachedFile)) { if (lineSelection is not null) { return(cachedFile switch { GitHubSourceFile cachedSourceFile => new GitHubSourceFileSelection(cachedSourceFile, lineSelection), GitHubSourceDirectory => cachedFile, _ => throw new Exception("Github source cache contains an unexpected type!") });
public GitHubSourceFileSelection(GitHubSourceFile sourceFile, IGitHubLineSelection selection) : this(sourceFile.Path, sourceFile.Filename, sourceFile.Url, sourceFile.Content, selection) { }