Browse Source

Cli add-module: support for blazor-server

pull/8157/head
Yunus Emre Kalkan 6 years ago
parent
commit
bca646f2d4
  1. 38
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs

38
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs

@ -12,6 +12,7 @@ using Volo.Abp.Cli.Commands;
using Volo.Abp.Cli.Commands.Services; using Volo.Abp.Cli.Commands.Services;
using Volo.Abp.Cli.Http; using Volo.Abp.Cli.Http;
using Volo.Abp.Cli.ProjectBuilding; using Volo.Abp.Cli.ProjectBuilding;
using Volo.Abp.Cli.ProjectBuilding.Files;
using Volo.Abp.Cli.ProjectBuilding.Templates.MvcModule; using Volo.Abp.Cli.ProjectBuilding.Templates.MvcModule;
using Volo.Abp.Cli.Utils; using Volo.Abp.Cli.Utils;
using Volo.Abp.DependencyInjection; using Volo.Abp.DependencyInjection;
@ -101,8 +102,7 @@ namespace Volo.Abp.Cli.ProjectModification
if (withSourceCode || newTemplate || newProTemplate) if (withSourceCode || newTemplate || newProTemplate)
{ {
var modulesFolderInSolution = Path.Combine(Path.GetDirectoryName(solutionFile), "modules"); var modulesFolderInSolution = Path.Combine(Path.GetDirectoryName(solutionFile), "modules");
await DownloadSourceCodesToSolutionFolder(module, modulesFolderInSolution, version, newTemplate, await DownloadSourceCodesToSolutionFolder(module, modulesFolderInSolution, version, newTemplate, newProTemplate);
newProTemplate);
await RemoveUnnecessaryProjectsAsync(Path.GetDirectoryName(solutionFile), module, projectFiles); await RemoveUnnecessaryProjectsAsync(Path.GetDirectoryName(solutionFile), module, projectFiles);
if (addSourceCodeToSolutionFile) if (addSourceCodeToSolutionFile)
@ -155,9 +155,24 @@ namespace Volo.Abp.Cli.ProjectModification
var moduleSolutionFile = Directory.GetFiles(moduleDirectory, "*.sln", SearchOption.TopDirectoryOnly).First(); var moduleSolutionFile = Directory.GetFiles(moduleDirectory, "*.sln", SearchOption.TopDirectoryOnly).First();
var isProjectTiered = await IsProjectTiered(projectFiles); var isProjectTiered = await IsProjectTiered(projectFiles);
if (!projectFiles.Any(p => p.EndsWith(".Blazor.csproj"))) var blazorProject = projectFiles.FirstOrDefault(p => p.EndsWith(".Blazor.csproj"));
if (blazorProject == null)
{ {
await RemoveProjectByTarget(module, moduleSolutionFile, NuGetPackageTarget.Blazor, isProjectTiered); await RemoveProjectByTarget(module, moduleSolutionFile, NuGetPackageTarget.Blazor, isProjectTiered);
await RemoveProjectByPostFix(module, moduleSolutionFile, "src", ".Blazor");
}
else
{
var isBlazorServer = IsBlazorServerProject(blazorProject);
if (isBlazorServer)
{
await RemoveProjectByPostFix(module, moduleSolutionFile, "src", ".Blazor.WebAssembly");
}
else
{
await RemoveProjectByPostFix(module, moduleSolutionFile, "src", ".Blazor.Server");
}
} }
if (!projectFiles.Any(p => p.EndsWith(".Web.csproj"))) if (!projectFiles.Any(p => p.EndsWith(".Web.csproj")))
@ -180,6 +195,13 @@ namespace Volo.Abp.Cli.ProjectModification
} }
} }
private bool IsBlazorServerProject(string blazorProjectPath)
{
var blazorProjectCsprojContent = File.ReadAllText(blazorProjectPath);
return !blazorProjectCsprojContent.Contains("Microsoft.NET.Sdk.BlazorWebAssembly");
}
private async Task RemoveProjectByTarget(ModuleWithMastersInfo module, string moduleSolutionFile, private async Task RemoveProjectByTarget(ModuleWithMastersInfo module, string moduleSolutionFile,
NuGetPackageTarget target, bool isTieredProject) NuGetPackageTarget target, bool isTieredProject)
{ {
@ -565,8 +587,14 @@ namespace Volo.Abp.Cli.ProjectModification
}, },
new NugetPackageInfo new NugetPackageInfo
{ {
Name = $"{module.Name}.Blazor", Name = $"{module.Name}.Blazor.WebAssembly",
ModuleClass = $"{module.Name}.Blazor.{moduleProjectName}BlazorModule", ModuleClass = $"{module.Name}.Blazor.{moduleProjectName}BlazorWebAssemblyModule",
Target = NuGetPackageTarget.Blazor
},
new NugetPackageInfo
{
Name = $"{module.Name}.Blazor.Server",
ModuleClass = $"{module.Name}.Blazor.{moduleProjectName}BlazorServerModule",
Target = NuGetPackageTarget.Blazor Target = NuGetPackageTarget.Blazor
}, },
new NugetPackageInfo new NugetPackageInfo

Loading…
Cancel
Save