addProject: function()

in lib/solution-utils.js [54:104]


  addProject: function (solutionFileContents, options) {
    const {
      rootFolderName, projectFolderGuid, projectFolderName, projectName, projectPath, projectGuid, projectTypeGuid
    } = options;
    const originalContents = solutionFileContents;

    try {
      console.log();
      console.log(chalk.green("Adding project $ProjectName to $SolutionFile."));

      // Get root folder guid if applicable
      let rootFolderInfo = null;
      if (rootFolderName) {
        rootFolderInfo = findProject(solutionFileContents, { projectName: rootFolderName, projectTypeGuid: projectSettings.folderProject });
        if (!rootFolderInfo) {
          throw `Root folder name '${rootFolderName}' is not found`;
        }
      }

      // Find or Add module sub-folder
      let folderProjectInfo = findProject(solutionFileContents, { projectName: projectFolderName, projectGuid: projectFolderGuid, projectTypeGuid: projectSettings.folderProject });
      if (!folderProjectInfo) {
        folderProjectInfo = {
          projectTypeGuid: projectSettings.folderProject,
          projectName: projectFolderName,
          projectPath: projectFolderName,
          projectGuid: projectFolderGuid
        };

        solutionFileContents = addProject(solutionFileContents, folderProjectInfo, rootFolderInfo && rootFolderInfo.projectGuid);
      }

      // Add module project
      solutionFileContents = addProject(solutionFileContents, {
        projectTypeGuid,
        projectName,
        projectPath: projectPath,
        projectGuid
      }, folderProjectInfo.projectGuid, projectSettings.buildConfiguration);

      console.log(chalk.green.bold(`SUCCESS: Adding project (guid='${projectGuid}', name='${projectName}') was successfully requested.`));

      return solutionFileContents;
    }
    catch (err) {
      console.log(chalk.red.bold(`FAILED: Unable to add project (guid='${projectGuid}', name='${projectName}') to the solution file.`));
      console.log(chalk.red.bold(err));
    }

    return originalContents;
  },