public static void AddProfile(string solutionDirectory, EnvironmentGateway env, string gatewayProjectName) { var classPath = ClassPathHelper.GatewayLaunchSettingsClassPath(solutionDirectory, $"launchSettings.json", gatewayProjectName); if (!Directory.Exists(classPath.ClassDirectory)) { Directory.CreateDirectory(classPath.ClassDirectory); } if (!File.Exists(classPath.FullClassPath)) { throw new FileNotFoundException($"The `{classPath.FullClassPath}` file could not be found."); } var tempPath = $"{classPath.FullClassPath}temp"; using (var input = File.OpenText(classPath.FullClassPath)) { using (var output = new StreamWriter(tempPath)) { string line; while (null != (line = input.ReadLine())) { var newText = $"{line}"; if (line.Contains(@$ "" "profiles" "")) { newText += GetProfileText(env); } output.WriteLine(newText); } } } // delete the old file and set the name of the new one to the original name File.Delete(classPath.FullClassPath); File.Move(tempPath, classPath.FullClassPath); GlobalSingleton.AddUpdatedFile(classPath.FullClassPath.Replace($"{solutionDirectory}{Path.DirectorySeparatorChar}", "")); }
public static void CreateLaunchSettings(string solutionDirectory, string gatewayProjectName, IFileSystem fileSystem) { try { var classPath = ClassPathHelper.GatewayLaunchSettingsClassPath(solutionDirectory, $"launchSettings.json", gatewayProjectName); if (!fileSystem.Directory.Exists(classPath.ClassDirectory)) { fileSystem.Directory.CreateDirectory(classPath.ClassDirectory); } if (fileSystem.File.Exists(classPath.FullClassPath)) { throw new FileAlreadyExistsException(classPath.FullClassPath); } using (var fs = fileSystem.File.Create(classPath.FullClassPath)) { var data = ""; data = GetLaunchSettingsText(); fs.Write(Encoding.UTF8.GetBytes(data)); } GlobalSingleton.AddCreatedFile(classPath.FullClassPath.Replace($"{solutionDirectory}{fileSystem.Path.DirectorySeparatorChar}", "")); } catch (FileAlreadyExistsException e) { WriteError(e.Message); throw; } catch (Exception e) { WriteError($"An unhandled exception occurred when running the API command.\nThe error details are: \n{e.Message}"); throw; } }