public virtual async Task AddAsync( [NotNull] string solutionFile, [NotNull] string moduleName, string startupProject, string version, bool skipDbMigrations = false, bool withSourceCode = false) { Check.NotNull(solutionFile, nameof(solutionFile)); Check.NotNull(moduleName, nameof(moduleName)); var module = await FindModuleInfoAsync(moduleName); Logger.LogInformation($"Installing module '{module.Name}' to the solution '{Path.GetFileNameWithoutExtension(solutionFile)}'"); var projectFiles = ProjectFinder.GetProjectFiles(solutionFile); await AddNugetAndNpmReferences(module, projectFiles); if (withSourceCode) { var modulesFolderInSolution = Path.Combine(Path.GetDirectoryName(solutionFile), "modules"); await DownloadSourceCodesToSolutionFolder(module, modulesFolderInSolution, version); await SolutionFileModifier.AddModuleToSolutionFileAsync(module, solutionFile); await NugetPackageToLocalReferenceConverter.Convert(module, solutionFile); await HandleAngularProject(modulesFolderInSolution, solutionFile); } ModifyDbContext(projectFiles, module, startupProject, skipDbMigrations); }
public virtual async Task AddAsync( [NotNull] string solutionFile, [NotNull] string moduleName, string version, bool skipDbMigrations = false, bool withSourceCode = false, bool addSourceCodeToSolutionFile = false, bool newTemplate = false, bool newProTemplate = false) { Check.NotNull(solutionFile, nameof(solutionFile)); Check.NotNull(moduleName, nameof(moduleName)); var module = await GetModuleInfoAsync(moduleName, newTemplate, newProTemplate); module = RemoveIncompatiblePackages(module, version); Logger.LogInformation( $"Installing module '{module.Name}' to the solution '{Path.GetFileNameWithoutExtension(solutionFile)}'"); var projectFiles = ProjectFinder.GetProjectFiles(solutionFile); await AddNugetAndNpmReferences(module, projectFiles, !(newTemplate || newProTemplate)); if (withSourceCode || newTemplate || newProTemplate) { var modulesFolderInSolution = Path.Combine(Path.GetDirectoryName(solutionFile), "modules"); await DownloadSourceCodesToSolutionFolder(module, modulesFolderInSolution, version, newTemplate, newProTemplate); await RemoveUnnecessaryProjectsAsync(Path.GetDirectoryName(solutionFile), module, projectFiles); if (addSourceCodeToSolutionFile) { await SolutionFileModifier.AddModuleToSolutionFileAsync(module, solutionFile); } if (newTemplate || newProTemplate) { await NugetPackageToLocalReferenceConverter.Convert(module, solutionFile, $"{module.Name}."); } else { await NugetPackageToLocalReferenceConverter.Convert(module, solutionFile); } await AddAngularSourceCode(modulesFolderInSolution, solutionFile, module.Name, newTemplate || newProTemplate); } else { await AddAngularPackages(solutionFile, module); } await RunBundleForBlazorAsync(projectFiles, module); ModifyDbContext(projectFiles, module, skipDbMigrations); }