Browse Source

Cli add-module: support for blazor-server improvements

pull/8157/head
Yunus Emre Kalkan 6 years ago
parent
commit
3f8ee06af9
  1. 14
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/BlazorProjectTypeChecker.cs
  2. 4
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NuGetPackageTarget.cs
  3. 6
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectFinder.cs
  4. 4
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNugetPackageAdder.cs
  5. 19
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs

14
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/BlazorProjectTypeChecker.cs

@ -0,0 +1,14 @@
using System.IO;
namespace Volo.Abp.Cli.ProjectModification
{
public static class BlazorProjectTypeChecker
{
public static bool IsBlazorServerProject(string blazorProjectPath)
{
var blazorProjectCsprojContent = File.ReadAllText(blazorProjectPath);
return !blazorProjectCsprojContent.Contains("Microsoft.NET.Sdk.BlazorWebAssembly");
}
}
}

4
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NuGetPackageTarget.cs

@ -14,6 +14,8 @@
MongoDB = 9, MongoDB = 9,
SignalR = 10, SignalR = 10,
Blazor = 11, Blazor = 11,
IdentityServer = 12 IdentityServer = 12,
BlazorServer = 13,
BlazorWebAssembly = 14
} }
} }

6
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectFinder.cs

@ -49,6 +49,12 @@ namespace Volo.Abp.Cli.ProjectModification
FindProjectEndsWith(projectFiles, assemblyNames, ".HttpApi.Host"); FindProjectEndsWith(projectFiles, assemblyNames, ".HttpApi.Host");
case NuGetPackageTarget.Blazor: case NuGetPackageTarget.Blazor:
return FindProjectEndsWith(projectFiles, assemblyNames, ".Blazor"); return FindProjectEndsWith(projectFiles, assemblyNames, ".Blazor");
case NuGetPackageTarget.BlazorWebAssembly:
var BlazorWebAssemblyTargetProject = FindProjectEndsWith(projectFiles, assemblyNames, ".Blazor");
return !BlazorProjectTypeChecker.IsBlazorServerProject(BlazorWebAssemblyTargetProject) ? BlazorWebAssemblyTargetProject : null;
case NuGetPackageTarget.BlazorServer:
var BlazorServerTargetProject = FindProjectEndsWith(projectFiles, assemblyNames, ".Blazor");
return BlazorProjectTypeChecker.IsBlazorServerProject(BlazorServerTargetProject) ? BlazorServerTargetProject : null;
default: default:
return null; return null;
} }

4
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNugetPackageAdder.cs

@ -37,7 +37,7 @@ namespace Volo.Abp.Cli.ProjectModification
DerivedClassFinder moduleClassFinder, DerivedClassFinder moduleClassFinder,
ModuleClassDependcyAdder moduleClassDependcyAdder, ModuleClassDependcyAdder moduleClassDependcyAdder,
IRemoteServiceExceptionHandler remoteServiceExceptionHandler, IRemoteServiceExceptionHandler remoteServiceExceptionHandler,
BundleCommand bundleCommand, BundleCommand bundleCommand,
CliHttpClientFactory cliHttpClientFactory) CliHttpClientFactory cliHttpClientFactory)
{ {
JsonSerializer = jsonSerializer; JsonSerializer = jsonSerializer;
@ -105,7 +105,7 @@ namespace Volo.Abp.Cli.ProjectModification
ModuleClassDependcyAdder.Add(moduleFiles.First(), package.ModuleClass); ModuleClassDependcyAdder.Add(moduleFiles.First(), package.ModuleClass);
} }
if (package.Target == NuGetPackageTarget.Blazor) if (package.Target == NuGetPackageTarget.Blazor || package.Target == NuGetPackageTarget.BlazorServer || package.Target == NuGetPackageTarget.BlazorWebAssembly)
{ {
await RunBundleForBlazorAsync(projectFile); await RunBundleForBlazorAsync(projectFile);
} }

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

@ -159,19 +159,21 @@ namespace Volo.Abp.Cli.ProjectModification
if (blazorProject == null) if (blazorProject == null)
{ {
await RemoveProjectByTarget(module, moduleSolutionFile, NuGetPackageTarget.Blazor, isProjectTiered); await RemoveProjectByTarget(module, moduleSolutionFile, NuGetPackageTarget.Blazor, isProjectTiered);
await RemoveProjectByTarget(module, moduleSolutionFile, NuGetPackageTarget.BlazorServer, isProjectTiered);
await RemoveProjectByTarget(module, moduleSolutionFile, NuGetPackageTarget.BlazorWebAssembly, isProjectTiered);
await RemoveProjectByPostFix(module, moduleSolutionFile, "src", ".Blazor"); await RemoveProjectByPostFix(module, moduleSolutionFile, "src", ".Blazor");
} }
else else
{ {
var isBlazorServer = IsBlazorServerProject(blazorProject); var isBlazorServer = BlazorProjectTypeChecker.IsBlazorServerProject(blazorProject);
if (isBlazorServer) if (isBlazorServer)
{ {
await RemoveProjectByPostFix(module, moduleSolutionFile, "src", ".Blazor.WebAssembly"); await RemoveProjectByTarget(module, moduleSolutionFile, NuGetPackageTarget.BlazorWebAssembly, isProjectTiered);
} }
else else
{ {
await RemoveProjectByPostFix(module, moduleSolutionFile, "src", ".Blazor.Server"); await RemoveProjectByTarget(module, moduleSolutionFile, NuGetPackageTarget.BlazorServer, isProjectTiered);
} }
} }
@ -195,13 +197,6 @@ 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)
{ {
@ -589,13 +584,13 @@ namespace Volo.Abp.Cli.ProjectModification
{ {
Name = $"{module.Name}.Blazor.WebAssembly", Name = $"{module.Name}.Blazor.WebAssembly",
ModuleClass = $"{module.Name}.Blazor.{moduleProjectName}BlazorWebAssemblyModule", ModuleClass = $"{module.Name}.Blazor.{moduleProjectName}BlazorWebAssemblyModule",
Target = NuGetPackageTarget.Blazor Target = NuGetPackageTarget.BlazorWebAssembly
}, },
new NugetPackageInfo new NugetPackageInfo
{ {
Name = $"{module.Name}.Blazor.Server", Name = $"{module.Name}.Blazor.Server",
ModuleClass = $"{module.Name}.Blazor.{moduleProjectName}BlazorServerModule", ModuleClass = $"{module.Name}.Blazor.{moduleProjectName}BlazorServerModule",
Target = NuGetPackageTarget.Blazor Target = NuGetPackageTarget.BlazorServer
}, },
new NugetPackageInfo new NugetPackageInfo
{ {

Loading…
Cancel
Save