private static string GetOfflineDocumentationUrl(IOProxy IOProxy, UpmPackageVersion version) { if (version?.isAvailableOnDisk ?? false) { var docsFolder = Path.Combine(version.packageInfo.resolvedPath, "Documentation~"); if (!IOProxy.DirectoryExists(docsFolder)) { docsFolder = Path.Combine(version.packageInfo.resolvedPath, "Documentation"); } if (IOProxy.DirectoryExists(docsFolder)) { var mdFiles = IOProxy.DirectoryGetFiles(docsFolder, "*.md", SearchOption.TopDirectoryOnly); var docsMd = mdFiles.FirstOrDefault(d => Path.GetFileName(d).ToLower() == "index.md") ?? mdFiles.FirstOrDefault(d => Path.GetFileName(d).ToLower() == "tableofcontents.md") ?? mdFiles.FirstOrDefault(); if (!string.IsNullOrEmpty(docsMd)) { return(new Uri(docsMd).AbsoluteUri); } } } return(string.Empty); }
public virtual void SaveImage(long productId, string url, Texture2D texture) { if (string.IsNullOrEmpty(url) || texture == null) { return; } var path = Paths.Combine(m_Application.userAppDataPath, "Asset Store", "Cache", "Images", productId.ToString()); if (!m_IOProxy.DirectoryExists(path)) { m_IOProxy.CreateDirectory(path); } var hash = Hash128.Compute(url); path = Paths.Combine(path, hash.ToString()); m_IOProxy.FileWriteAllBytes(path, texture.EncodeToJPG()); }