private void EnsureDirectoriesExist() { if (!Neo4jDir.Exists) { Neo4jDir.Create(); } }
public async Task DownloadNeo4j() { EnsureDirectoriesExist(); var downloadFileInfo = new FileInfo($"../target/{Version}.zip"); if (downloadFileInfo.Directory != null) { if (!downloadFileInfo.Directory.Exists) { downloadFileInfo.Directory.Create(); } } bool downloadedNew = false; long expectedSize; using (var client = new WebClient()) { client.OpenRead(PackageUrl); expectedSize = Convert.ToInt64(client.ResponseHeaders["Content-Length"]); if (!downloadFileInfo.Exists || downloadFileInfo.Length != expectedSize) { client.DownloadProgressChanged += (s, e) => { Console.Write("."); }; await client.DownloadFileTaskAsync(PackageUrl, downloadFileInfo.FullName); downloadedNew = true; } } downloadFileInfo.Refresh(); if (!downloadFileInfo.Exists) { throw new IOException($"Unable to download the server from {PackageUrl}"); } if (downloadFileInfo.Length != expectedSize) { throw new IOException($"File at {PackageUrl} was downloaded, but it's size {expectedSize.BytesToMegabytes()}Mb doesn't match the size expected {expectedSize.BytesToMegabytes()}Mb"); } Neo4jDir.Refresh(); var zipFolder = GetZipFolder(downloadFileInfo.FullName); var extractedPath = Path.Combine(Neo4jDir.FullName, zipFolder); if (Directory.Exists(extractedPath)) { var dirs = Neo4jDir.GetDirectories(zipFolder); if (dirs.Length != 0) { var extractedDir = new DirectoryInfo(Path.Combine(Neo4jDir.FullName, zipFolder)); if (downloadedNew) { extractedDir.Delete(true); ExtractZip(downloadFileInfo.FullName); } } } else { ExtractZip(downloadFileInfo.FullName); } Neo4jHome = new DirectoryInfo(Path.Combine(Neo4jDir.FullName, zipFolder)); UpdateSettings(new Dictionary <string, string> { { "dbms.security.auth_enabled", "false" } }); // disable auth LoadPowershellModule(Neo4jHome.FullName); }