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,
SignalR = 10,
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");
case NuGetPackageTarget.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:
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,
ModuleClassDependcyAdder moduleClassDependcyAdder,
IRemoteServiceExceptionHandler remoteServiceExceptionHandler,
BundleCommand bundleCommand,
BundleCommand bundleCommand,
CliHttpClientFactory cliHttpClientFactory)
{
JsonSerializer = jsonSerializer;
@ -105,7 +105,7 @@ namespace Volo.Abp.Cli.ProjectModification
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);
}

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

Loading…
Cancel
Save