Browse Source

Check microservice project version when adding a new microservice project

resolves https://github.com/abpframework/abp/issues/9287
pull/10770/head
Yunus Emre Kalkan 5 years ago
parent
commit
37a6c72107
  1. 3
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs
  2. 24
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs

3
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs

@ -36,8 +36,9 @@ public class NewCommand : ProjectCreationCommandBase, IConsoleCommand, ITransien
public NewCommand(TemplateProjectBuilder templateProjectBuilder public NewCommand(TemplateProjectBuilder templateProjectBuilder
, ITemplateInfoProvider templateInfoProvider, , ITemplateInfoProvider templateInfoProvider,
ConnectionStringProvider connectionStringProvider, ConnectionStringProvider connectionStringProvider,
SolutionPackageVersionFinder solutionPackageVersionFinder,
ICmdHelper cmdHelper) ICmdHelper cmdHelper)
: base(connectionStringProvider, cmdHelper) : base(connectionStringProvider, solutionPackageVersionFinder, cmdHelper)
{ {
TemplateProjectBuilder = templateProjectBuilder; TemplateProjectBuilder = templateProjectBuilder;
TemplateInfoProvider = templateInfoProvider; TemplateInfoProvider = templateInfoProvider;

24
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs

@ -5,6 +5,7 @@ using ICSharpCode.SharpZipLib.Core;
using ICSharpCode.SharpZipLib.Zip; using ICSharpCode.SharpZipLib.Zip;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Abstractions; using Microsoft.Extensions.Logging.Abstractions;
using Volo.Abp.Cli.ProjectModification;
using Volo.Abp.Cli.Args; using Volo.Abp.Cli.Args;
using Volo.Abp.Cli.Commands.Services; using Volo.Abp.Cli.Commands.Services;
using Volo.Abp.Cli.ProjectBuilding; using Volo.Abp.Cli.ProjectBuilding;
@ -18,12 +19,14 @@ namespace Volo.Abp.Cli.Commands;
public abstract class ProjectCreationCommandBase public abstract class ProjectCreationCommandBase
{ {
public ConnectionStringProvider ConnectionStringProvider { get; } public ConnectionStringProvider ConnectionStringProvider { get; }
public SolutionPackageVersionFinder SolutionPackageVersionFinder { get; }
public ICmdHelper CmdHelper { get; } public ICmdHelper CmdHelper { get; }
public ILogger<NewCommand> Logger { get; set; } public ILogger<NewCommand> Logger { get; set; }
public ProjectCreationCommandBase(ConnectionStringProvider connectionStringProvider, ICmdHelper cmdHelper) public ProjectCreationCommandBase(ConnectionStringProvider connectionStringProvider, SolutionPackageVersionFinder solutionPackageVersionFinder, ICmdHelper cmdHelper)
{ {
ConnectionStringProvider = connectionStringProvider; ConnectionStringProvider = connectionStringProvider;
SolutionPackageVersionFinder = solutionPackageVersionFinder;
CmdHelper = cmdHelper; CmdHelper = cmdHelper;
Logger = NullLogger<NewCommand>.Instance; Logger = NullLogger<NewCommand>.Instance;
@ -108,13 +111,16 @@ public abstract class ProjectCreationCommandBase
SolutionName solutionName; SolutionName solutionName;
if (MicroserviceServiceTemplateBase.IsMicroserviceServiceTemplate(template)) if (MicroserviceServiceTemplateBase.IsMicroserviceServiceTemplate(template))
{ {
var microserviceSolutionName = FindMicroserviceSolutionName(outputFolderRoot); var slnFile = Directory.GetFiles(outputFolderRoot, "*.sln").FirstOrDefault();
if (microserviceSolutionName == null) if (slnFile == null)
{ {
throw new CliUsageException("This command should be run inside a folder that contains a microservice solution!"); throw new CliUsageException("This command should be run inside a folder that contains a microservice solution!");
} }
var microserviceSolutionName = Path.GetFileName(slnFile).RemovePostFix(".sln");
version ??= SolutionPackageVersionFinder.Find(slnFile);
solutionName = SolutionName.Parse(microserviceSolutionName, projectName); solutionName = SolutionName.Parse(microserviceSolutionName, projectName);
outputFolder = MicroserviceServiceTemplateBase.CalculateTargetFolder(outputFolderRoot, projectName); outputFolder = MicroserviceServiceTemplateBase.CalculateTargetFolder(outputFolderRoot, projectName);
uiFramework = uiFramework == UiFramework.NotSpecified ? FindMicroserviceSolutionUiFramework(outputFolderRoot) : uiFramework; uiFramework = uiFramework == UiFramework.NotSpecified ? FindMicroserviceSolutionUiFramework(outputFolderRoot) : uiFramework;
@ -221,18 +227,6 @@ public abstract class ProjectCreationCommandBase
} }
} }
protected string FindMicroserviceSolutionName(string outputFolderRoot)
{
var slnFile = Directory.GetFiles(outputFolderRoot, "*.sln").FirstOrDefault();
if (slnFile == null)
{
return null;
}
return Path.GetFileName(slnFile).RemovePostFix(".sln");
}
protected UiFramework FindMicroserviceSolutionUiFramework(string outputFolderRoot) protected UiFramework FindMicroserviceSolutionUiFramework(string outputFolderRoot)
{ {
if (Directory.Exists(Path.Combine(outputFolderRoot, "apps", "blazor"))) if (Directory.Exists(Path.Combine(outputFolderRoot, "apps", "blazor")))

Loading…
Cancel
Save