public async Task GenerateCode(IdentityGeneratorCommandLineModel commandlineModel) { if (commandlineModel == null) { throw new ArgumentNullException(nameof(commandlineModel)); } if (commandlineModel.ListFiles) { ShowFileList(); return; } var templateModelBuilder = new IdentityGeneratorTemplateModelBuilder( commandlineModel, _applicationInfo, _projectContext, _workspace, _loader, _fileSystem, _logger); var templateModel = await templateModelBuilder.ValidateAndBuild(); EnsureFolderLayout(IdentityAreaName, templateModel); await AddTemplateFiles(templateModel); await AddStaticFiles(templateModel); }
private void ValidateCommandLine(IdentityGeneratorCommandLineModel model) { var errorStrings = new List <string>(); if (!string.IsNullOrEmpty(model.UserClass) && !RoslynUtilities.IsValidNamespace(model.UserClass)) { errorStrings.Add(string.Format(MessageStrings.InvalidUserClassName, model.UserClass)); } if (!string.IsNullOrEmpty(model.DbContext) && !RoslynUtilities.IsValidNamespace(model.DbContext)) { errorStrings.Add(string.Format(MessageStrings.InvalidDbContextClassName, model.DbContext)); } if (!string.IsNullOrEmpty(model.RootNamespace) && !RoslynUtilities.IsValidNamespace(model.RootNamespace)) { errorStrings.Add(string.Format(MessageStrings.InvalidNamespaceName, model.RootNamespace)); } if (!string.IsNullOrEmpty(model.Layout) && model.GenerateLayout) { errorStrings.Add(string.Format(MessageStrings.InvalidOptionCombination, "--layout", "--generateLayout")); } if (!string.IsNullOrEmpty(model.BootstrapVersion) && !IdentityGenerator.ValidBootstrapVersions.Contains(model.BootstrapVersion)) { errorStrings.Add(string.Format(MessageStrings.InvalidBootstrapVersionForScaffolding, model.BootstrapVersion, string.Join(", ", IdentityGenerator.ValidBootstrapVersions))); } if (errorStrings.Any()) { throw new ArgumentException(string.Join(Environment.NewLine, errorStrings)); } }
public IdentityGeneratorTemplateModelBuilder( IdentityGeneratorCommandLineModel commandlineModel, IApplicationInfo applicationInfo, IProjectContext projectContext, Workspace workspace, ICodeGenAssemblyLoadContext loader, IFileSystem fileSystem, ILogger logger) { if (commandlineModel == null) { throw new ArgumentNullException(nameof(commandlineModel)); } if (applicationInfo == null) { throw new ArgumentNullException(nameof(applicationInfo)); } if (projectContext == null) { throw new ArgumentNullException(nameof(projectContext)); } if (workspace == null) { throw new ArgumentNullException(nameof(workspace)); } if (loader == null) { throw new ArgumentNullException(nameof(loader)); } if (fileSystem == null) { throw new ArgumentNullException(nameof(fileSystem)); } if (logger == null) { throw new ArgumentNullException(nameof(logger)); } _commandlineModel = commandlineModel; _applicationInfo = applicationInfo; _projectContext = projectContext; _workspace = workspace; _loader = loader; _fileSystem = fileSystem; _logger = logger; }
private void ValidateCommandLine(IdentityGeneratorCommandLineModel model) { var errorStrings = new List <string>();; if (!string.IsNullOrEmpty(model.UserClass) && !RoslynUtilities.IsValidIdentifier(model.UserClass)) { errorStrings.Add(string.Format(MessageStrings.InvalidUserClassName, model.UserClass));; } if (!string.IsNullOrEmpty(model.DbContext) && !RoslynUtilities.IsValidNamespace(model.DbContext)) { errorStrings.Add(string.Format(MessageStrings.InvalidDbContextClassName, model.DbContext));; } if (!string.IsNullOrEmpty(model.RootNamespace) && !RoslynUtilities.IsValidNamespace(model.RootNamespace)) { errorStrings.Add(string.Format(MessageStrings.InvalidNamespaceName, model.RootNamespace)); } if (errorStrings.Any()) { throw new ArgumentException(string.Join(Environment.NewLine, errorStrings)); } }