public DisposableFile CreateJsonFrom(DotNetTool model) { var directory = directoryBuilder.CreateFolderInCurrentDirectory(); var jsonData = jsonSerializer.Serialize(model); var fileInfo = fileService.GetFileInfo(Path.Combine(directory.FullName, fileSettings.JsonDataFileName)); fileInfo.WriteAllText(jsonData); return(new DisposableFile(fileInfo)); }
public async Task <byte[]> GetDotnetToolAsync(DotNetTool data, string consoleParameter = "") { using var jsonFile = jsonFileCreatorService.CreateJsonFrom(data); var zipName = Path.Combine(jsonFile.FileInfo.Directory.FullName, $"{data.ProjectName}s.zip"); await dotNetToolExecutor.ExecuteAsync(consoleParameter, jsonFile, zipName).ConfigureAwait(false); var file = await File.ReadAllBytesAsync(zipName).ConfigureAwait(false); cleanupService.CleanUp(data); return(file); }
public async Task <ActionResult> CreateUnsafe(DotNetTool toolData) { return(File(await dotnetToolBuilderService.GetDotnetToolAsync(toolData, "-fm").ConfigureAwait(false), MediaTypeNames.Application.Octet, toolData.ProjectName + ".zip")); }
public void CleanUp(DotNetTool data) { //To be deleted when Toolbuilder is updated Directory.Delete(Path.Combine(Directory.GetCurrentDirectory(), data.ProjectName), true); }