Пример #1
0
 private bool PortExistsForAnotherService(ProjectBuildContext context, string newPort)
 {
     return(ReadTyeFileContent(context).SplitToLines().Any(l => l.Contains("port") && l.Contains(newPort)));
 }
Пример #2
0
        public async Task <ProjectBuildResult> BuildAsync(ProjectBuildArgs args)
        {
            var packageInfo = await GetPackageInfoAsync(args);

            var templateFile = await SourceCodeStore.GetAsync(
                args.TemplateName,
                SourceCodeTypes.NugetPackage,
                args.Version,
                null,
                args.ExtraProperties.ContainsKey(GetSourceCommand.Options.Preview.Long)
                );

            var apiKeyResult = await ApiKeyService.GetApiKeyOrNullAsync();

            if (apiKeyResult?.ApiKey != null)
            {
                args.ExtraProperties["api-key"] = apiKeyResult.ApiKey;
            }

            if (apiKeyResult?.LicenseCode != null)
            {
                args.ExtraProperties["license-code"] = apiKeyResult.LicenseCode;
            }

            var context = new ProjectBuildContext(
                null,
                null,
                packageInfo,
                null,
                templateFile,
                args
                );

            NugetPackageProjectBuildPipelineBuilder.Build(context).Execute();

            // Exclude unwanted or known options.
            var options = args.ExtraProperties
                          .Where(x => !x.Key.Equals(CliConsts.Command, StringComparison.InvariantCultureIgnoreCase))
                          .Where(x => !x.Key.Equals(NewCommand.Options.OutputFolder.Long, StringComparison.InvariantCultureIgnoreCase) &&
                                 !x.Key.Equals(NewCommand.Options.OutputFolder.Short, StringComparison.InvariantCultureIgnoreCase))
                          .Where(x => !x.Key.Equals(NewCommand.Options.Version.Long, StringComparison.InvariantCultureIgnoreCase) &&
                                 !x.Key.Equals(NewCommand.Options.Version.Short, StringComparison.InvariantCultureIgnoreCase))
                          .Where(x => !x.Key.Equals(NewCommand.Options.TemplateSource.Short, StringComparison.InvariantCultureIgnoreCase) &&
                                 !x.Key.Equals(NewCommand.Options.TemplateSource.Long, StringComparison.InvariantCultureIgnoreCase))
                          .Select(x => x.Key).ToList();

            await CliAnalyticsCollect.CollectAsync(new CliAnalyticsCollectInputDto
            {
                Tool             = Options.ToolName,
                Command          = args.ExtraProperties.ContainsKey(CliConsts.Command) ? args.ExtraProperties[CliConsts.Command] : "",
                DatabaseProvider = null,
                IsTiered         = null,
                UiFramework      = null,
                Options          = JsonSerializer.Serialize(options),
                ProjectName      = null,
                TemplateName     = args.TemplateName,
                TemplateVersion  = templateFile.Version
            });

            return(new ProjectBuildResult(context.Result.ZipContent, args.TemplateName));
        }
Пример #3
0
 private static void RandomizeStringEncryption(ProjectBuildContext context, List <ProjectBuildPipelineStep> steps)
 {
     steps.Add(new RandomizeStringEncryptionStep());
 }
Пример #4
0
 public override void Execute(ProjectBuildContext context)
 {
     ChangeProjectReference(context);
     ChangeWebModuleUsage(context);
     ChangeConnectionString(context);
 }
Пример #5
0
 private static void SetRandomPortForHostProject(ProjectBuildContext context, List <ProjectBuildPipelineStep> steps)
 {
     steps.Add(new MicroserviceServiceRandomPortStep("44371"));
 }
Пример #6
0
 public abstract void Execute(ProjectBuildContext context);
Пример #7
0
 public override void Execute(ProjectBuildContext context)
 {
     context.Files = GetEntriesFromZipFile(context.TemplateFile.FileBytes);
 }
Пример #8
0
    protected void DeleteUnrelatedProjects(ProjectBuildContext context, List <ProjectBuildPipelineStep> steps)
    {
        switch (context.BuildArgs.UiFramework)
        {
        case UiFramework.None:
            ConfigureWithoutUi(context, steps);
            break;

        case UiFramework.Angular:
            ConfigureWithAngularUi(context, steps);
            break;

        case UiFramework.Blazor:
            ConfigureWithBlazorUi(context, steps);
            break;

        case UiFramework.BlazorServer:
            ConfigureWithBlazorServerUi(context, steps);
            break;

        case UiFramework.Mvc:
        case UiFramework.NotSpecified:
            ConfigureWithMvcUi(context, steps);
            break;
        }

        if (context.BuildArgs.UiFramework != UiFramework.Blazor && context.BuildArgs.UiFramework != UiFramework.BlazorServer)
        {
            steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor"));
        }

        if (context.BuildArgs.UiFramework != UiFramework.BlazorServer)
        {
            steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Server"));
            steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Server.Tiered"));
        }

        if (context.BuildArgs.UiFramework != UiFramework.Angular)
        {
            steps.Add(new RemoveFolderStep("/angular"));
        }

        if (context.BuildArgs.MobileApp != MobileApp.ReactNative)
        {
            steps.Add(new RemoveFolderStep(MobileApp.ReactNative.GetFolderName().EnsureStartsWith('/')));
        }

        if (!context.BuildArgs.PublicWebSite)
        {
            steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Web.Public"));
            steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Web.Public.Host"));
        }
        else
        {
            if (context.BuildArgs.ExtraProperties.ContainsKey(NewCommand.Options.Tiered.Long) || context.BuildArgs.ExtraProperties.ContainsKey("separate-identity-server"))
            {
                steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Web.Public"));
            }
            else
            {
                steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Web.Public.Host"));
            }
        }
    }
 public override void Execute(ProjectBuildContext context)
 {
     context.Files.FirstOrDefault(f => f.Name.EndsWith("MyCompanyName.MyProjectName.Domain.Shared.csproj"))?.RemoveTemplateCodeIf("CMS-KIT");
     context.Files.FirstOrDefault(f => f.Name.EndsWith("MyProjectNameDomainSharedModule.cs"))?.RemoveTemplateCodeIf("CMS-KIT");
 }
 public override void Execute(ProjectBuildContext context)
 {
     context
     .GetFile("/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/appsettings.json")
     .ReplaceText("44305", IdentityServerPort);
 }
Пример #11
0
        public override void Execute(ProjectBuildContext context)
        {
            var launchSettings = context.Files.Where(x =>
                                                     !x.IsDirectory && x.Name.EndsWith("launchSettings.json", StringComparison.InvariantCultureIgnoreCase))
                                 .ToList();

            var appSettings = context.Files.Where(x =>
                                                  !x.IsDirectory && x.Name.EndsWith("appSettings.json", StringComparison.InvariantCultureIgnoreCase))
                              .ToList();

            var angularEnvironments = context.Files.Where(x =>
                                                          !x.IsDirectory &&
                                                          (x.Name.EndsWith("environments/environment.ts", StringComparison.InvariantCultureIgnoreCase) ||
                                                           x.Name.EndsWith("environments/environment.hmr.ts", StringComparison.InvariantCultureIgnoreCase) ||
                                                           x.Name.EndsWith("environments/environment.prod.ts", StringComparison.InvariantCultureIgnoreCase))
                                                          )
                                      .ToList();

            var excludePorts = new List <string>();

            excludePorts.AddRange(_buildInSslUrls.Select(GetUrlPort).ToList());

            foreach (var buildInUrl in _buildInSslUrls)
            {
                var newPort = GetRandomPort(excludePorts);
                excludePorts.Add(newPort);

                var buildInUrlWithoutPort = GetUrlWithoutPort(buildInUrl);
                var buildInUrlPort        = GetUrlPort(buildInUrl);

                foreach (var launchSetting in launchSettings)
                {
                    launchSetting.NormalizeLineEndings();

                    var launchSettingLines = launchSetting.GetLines();
                    for (var i = 0; i < launchSettingLines.Length; i++)
                    {
                        if (launchSettingLines[i].Contains($"{buildInUrl}"))
                        {
                            launchSettingLines[i] = launchSettingLines[i].Replace($"{buildInUrl}", $"{buildInUrlWithoutPort}:{newPort}");
                        }

                        if (launchSettingLines[i].Contains($"\"sslPort\": {buildInUrlPort}"))
                        {
                            launchSettingLines[i] = launchSettingLines[i]
                                                    .Replace($"\"sslPort\": {buildInUrlPort}", $"\"sslPort\": {newPort}");
                        }
                    }
                    launchSetting.SetLines(launchSettingLines);

                    foreach (var appSetting in appSettings)
                    {
                        appSetting.NormalizeLineEndings();

                        var appSettingLines = appSetting.GetLines();
                        for (var i = 0; i < appSettingLines.Length; i++)
                        {
                            if (appSettingLines[i].Contains(buildInUrl))
                            {
                                appSettingLines[i] = appSettingLines[i].Replace(buildInUrl, $"{buildInUrlWithoutPort}:{newPort}");
                            }
                        }
                        appSetting.SetLines(appSettingLines);
                    }

                    foreach (var environment in angularEnvironments)
                    {
                        environment.NormalizeLineEndings();

                        var environmentLines = environment.GetLines();
                        for (var i = 0; i < environmentLines.Length; i++)
                        {
                            if (environmentLines[i].Contains(buildInUrl))
                            {
                                environmentLines[i] = environmentLines[i].Replace(buildInUrl, $"{buildInUrlWithoutPort}:{newPort}");
                            }
                        }
                        environment.SetLines(environmentLines);
                    }
                }
            }
        }
Пример #12
0
 public override void Execute(ProjectBuildContext context)
 {
     RenameHelper.RenameAll(context.Files, _oldProjectName, _newProjectName);
 }
Пример #13
0
    public override void Execute(ProjectBuildContext context)
    {
        //MyCompanyName.MyProjectName.Web

        ChangeProjectReference(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj",
            _hasDbMigrations ? "EntityFrameworkCore.DbMigrations" : "EntityFrameworkCore",
            "MongoDB"
            );

        ChangeNamespaceAndKeyword(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs",
            "MyCompanyName.MyProjectName.EntityFrameworkCore",
            "MyCompanyName.MyProjectName.MongoDB",
            _hasDbMigrations ? "MyProjectNameEntityFrameworkCoreDbMigrationsModule" : "MyProjectNameEntityFrameworkCoreModule",
            "MyProjectNameMongoDbModule"
            );

        ChangeConnectionStringToMongoDb(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.Web/appsettings.json"
            );

        //MyCompanyName.MyProjectName.AuthServer

        ChangeProjectReference(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyCompanyName.MyProjectName.AuthServer.csproj",
            _hasDbMigrations ? "EntityFrameworkCore.DbMigrations" : "EntityFrameworkCore",
            "MongoDB"
            );

        ChangeNamespaceAndKeyword(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyProjectNameAuthServerModule.cs",
            "MyCompanyName.MyProjectName.EntityFrameworkCore",
            "MyCompanyName.MyProjectName.MongoDB",
            _hasDbMigrations ? "MyProjectNameEntityFrameworkCoreDbMigrationsModule" : "MyProjectNameEntityFrameworkCoreModule",
            "MyProjectNameMongoDbModule"
            );

        ChangeConnectionStringToMongoDb(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/appsettings.json"
            );

        //MyCompanyName.MyProjectName.HttpApi.Host

        ChangeProjectReference(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj",
            _hasDbMigrations ? "EntityFrameworkCore.DbMigrations" : "EntityFrameworkCore",
            "MongoDB"
            );

        ChangeNamespaceAndKeyword(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs",
            "MyCompanyName.MyProjectName.EntityFrameworkCore",
            "MyCompanyName.MyProjectName.MongoDB",
            _hasDbMigrations ? "MyProjectNameEntityFrameworkCoreDbMigrationsModule" : "MyProjectNameEntityFrameworkCoreModule",
            "MyProjectNameMongoDbModule"
            );

        ChangeConnectionStringToMongoDb(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/appsettings.json"
            );

        //MyCompanyName.MyProjectName.Blazor.Server

        ChangeProjectReference(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj",
            _hasDbMigrations ? "EntityFrameworkCore.DbMigrations" : "EntityFrameworkCore",
            "MongoDB"
            );

        ChangeNamespaceAndKeyword(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameBlazorModule.cs",
            "MyCompanyName.MyProjectName.EntityFrameworkCore",
            "MyCompanyName.MyProjectName.MongoDB",
            _hasDbMigrations ? "MyProjectNameEntityFrameworkCoreDbMigrationsModule" : "MyProjectNameEntityFrameworkCoreModule",
            "MyProjectNameMongoDbModule"
            );

        ChangeConnectionStringToMongoDb(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/appsettings.json"
            );

        //MyCompanyName.MyProjectName.HttpApi.HostWithIds

        ChangeProjectReference(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj",
            _hasDbMigrations ? "EntityFrameworkCore.DbMigrations" : "EntityFrameworkCore",
            "MongoDB"
            );

        ChangeNamespaceAndKeyword(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameHttpApiHostModule.cs",
            "MyCompanyName.MyProjectName.EntityFrameworkCore",
            "MyCompanyName.MyProjectName.MongoDB",
            _hasDbMigrations ? "MyProjectNameEntityFrameworkCoreDbMigrationsModule" : "MyProjectNameEntityFrameworkCoreModule",
            "MyProjectNameMongoDbModule"
            );

        ChangeConnectionStringToMongoDb(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/appsettings.json"
            );

        //MyCompanyName.MyProjectName.DbMigrator

        ChangeProjectReference(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyCompanyName.MyProjectName.DbMigrator.csproj",
            _hasDbMigrations ? "EntityFrameworkCore.DbMigrations" : "EntityFrameworkCore",
            "MongoDB"
            );

        ChangeNamespaceAndKeyword(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyProjectNameDbMigratorModule.cs",
            "MyCompanyName.MyProjectName.EntityFrameworkCore",
            "MyCompanyName.MyProjectName.MongoDB",
            _hasDbMigrations ? "MyProjectNameEntityFrameworkCoreDbMigrationsModule" : "MyProjectNameEntityFrameworkCoreModule",
            "MyProjectNameMongoDbModule"
            );

        ChangeConnectionStringToMongoDb(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/appsettings.json"
            );

        //MyCompanyName.MyProjectName.Domain.Tests

        ChangeProjectReference(
            context,
            "/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.csproj",
            "EntityFrameworkCore.Tests",
            "MongoDB.Tests"
            );

        ChangeNamespaceAndKeyword(
            context,
            "/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyProjectNameDomainTestModule.cs",
            "MyCompanyName.MyProjectName.EntityFrameworkCore",
            "MyCompanyName.MyProjectName.MongoDB",
            "MyProjectNameEntityFrameworkCoreTestModule",
            "MyProjectNameMongoDbTestModule"
            );

        ChangeNamespaceAndKeyword(
            context,
            "/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyProjectNameDomainCollection.cs",
            "MyCompanyName.MyProjectName.EntityFrameworkCore",
            "MyCompanyName.MyProjectName.MongoDB",
            "MyProjectNameEntityFrameworkCoreCollectionFixtureBase",
            "MyProjectNameMongoDbCollectionFixtureBase"
            );

        //MyCompanyName.MyProjectName.Application.Tests

        ChangeNamespaceAndKeyword(
            context,
            "/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/MyProjectNameApplicationCollection.cs",
            "MyCompanyName.MyProjectName.EntityFrameworkCore",
            "MyCompanyName.MyProjectName.MongoDB",
            "MyProjectNameEntityFrameworkCoreCollectionFixtureBase",
            "MyProjectNameMongoDbCollectionFixtureBase"
            );

        //MyCompanyName.MyProjectName.Web.Tests

        ChangeNamespaceAndKeyword(
            context,
            "/aspnet-core/test/MyCompanyName.MyProjectName.Web.Tests/MyProjectNameWebCollection.cs",
            "MyCompanyName.MyProjectName.EntityFrameworkCore",
            "MyCompanyName.MyProjectName.MongoDB",
            "MyProjectNameEntityFrameworkCoreCollectionFixtureBase",
            "MyProjectNameMongoDbCollectionFixtureBase"
            );

        // TODO: remove this method after published 6.0.0
        ProvideIdentityServerBackwardCompatibility(context);

        if (context.BuildArgs.PublicWebSite)
        {
            ChangeProjectReference(
                context,
                "/aspnet-core/src/MyCompanyName.MyProjectName.Web.Public/MyCompanyName.MyProjectName.Web.Public.csproj",
                _hasDbMigrations ? "EntityFrameworkCore.DbMigrations" : "EntityFrameworkCore",
                "MongoDB"
                );

            ChangeNamespaceAndKeyword(
                context,
                "/aspnet-core/src/MyCompanyName.MyProjectName.Web.Public/MyProjectNameWebPublicModule.cs",
                "MyCompanyName.MyProjectName.EntityFrameworkCore",
                "MyCompanyName.MyProjectName.MongoDB",
                _hasDbMigrations ? "MyProjectNameEntityFrameworkCoreDbMigrationsModule" : "MyProjectNameEntityFrameworkCoreModule",
                "MyProjectNameMongoDbModule"
                );

            ChangeConnectionStringToMongoDb(
                context,
                "/aspnet-core/src/MyCompanyName.MyProjectName.Web.Public/appsettings.json"
                );
        }
    }
Пример #14
0
 public override void Execute(ProjectBuildContext context)
 {
     RemoveUnnecessaryDbMigratorClients(context);
     RemoveUnnecessaryHttpApiHostPorts(context);
 }
Пример #15
0
    public override IEnumerable <ProjectBuildPipelineStep> GetCustomSteps(ProjectBuildContext context)
    {
        var steps = new List <ProjectBuildPipelineStep>();

        switch (context.BuildArgs.DatabaseProvider)
        {
        case DatabaseProvider.NotSpecified:
        case DatabaseProvider.EntityFrameworkCore:
            steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Mvc.Mongo"));
            steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Host.Mongo"));
            steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Server.Mongo"));
            break;

        case DatabaseProvider.MongoDb:
            steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Mvc"));
            steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Host"));
            steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Server"));

            steps.Add(new ProjectRenameStep("MyCompanyName.MyProjectName.Mvc.Mongo", "MyCompanyName.MyProjectName.Mvc"));
            steps.Add(new ProjectRenameStep("MyCompanyName.MyProjectName.Host.Mongo", "MyCompanyName.MyProjectName.Host"));
            steps.Add(new ProjectRenameStep("MyCompanyName.MyProjectName.Blazor.Server.Mongo", "MyCompanyName.MyProjectName.Blazor.Server"));
            break;
        }

        if (context.BuildArgs.DatabaseManagementSystem == DatabaseManagementSystem.PostgreSQL)
        {
            context.Symbols.Add("dbms:PostgreSQL");
        }

        switch (context.BuildArgs.UiFramework)
        {
        case UiFramework.Angular:
            steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Mvc"));
            steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Server"));
            steps.Add(new ProjectRenameStep("MyCompanyName.MyProjectName.Host", "MyCompanyName.MyProjectName"));
            break;

        case UiFramework.None:
            steps.Add(new RemoveFolderStep("/angular"));
            steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Mvc"));
            steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Server"));
            steps.Add(new ProjectRenameStep("MyCompanyName.MyProjectName.Host", "MyCompanyName.MyProjectName"));
            break;

        case UiFramework.BlazorServer:
            steps.Add(new RemoveFolderStep("/angular"));
            steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Mvc"));
            steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Host"));
            steps.Add(new ProjectRenameStep("MyCompanyName.MyProjectName.Blazor.Server", "MyCompanyName.MyProjectName"));
            break;

        case UiFramework.NotSpecified:
        case UiFramework.Mvc:
            steps.Add(new RemoveFolderStep("/angular"));
            steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Host"));
            steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Server"));
            steps.Add(new ProjectRenameStep("MyCompanyName.MyProjectName.Mvc", "MyCompanyName.MyProjectName"));
            break;

        case UiFramework.Blazor:
            throw new AbpException("app-nolayers doesn't support blazor wasm.");
            break;
        }

        //ConfigureTenantSchema(context, steps);
        //SwitchDatabaseProvider(context, steps);
        //DeleteUnrelatedProjects(context, steps);
        steps.Add(new RemoveFolderStep("/aspnet-core/MyCompanyName.MyProjectName/Migrations"));
        //RemoveMigrations(context, steps);
        //ConfigureTieredArchitecture(context, steps);
        //ConfigurePublicWebSite(context, steps);
        //RemoveUnnecessaryPorts(context, steps);
        RandomizeSslPorts(context, steps);
        RandomizeStringEncryption(context, steps);
        UpdateNuGetConfig(context, steps);
        ChangeConnectionString(context, steps);
        //CleanupFolderHierarchy(context, steps);

        if (context.BuildArgs.UiFramework != UiFramework.Angular)
        {
            steps.Add(new MoveFolderStep("/aspnet-core/", "/"));
        }

        return(steps);
    }
Пример #16
0
        public async Task <ProjectBuildResult> BuildAsync(ProjectBuildArgs args)
        {
            var templateInfo = GetTemplateInfo(args);

            NormalizeArgs(args, templateInfo);

            var templateFile = await SourceCodeStore.GetAsync(
                args.TemplateName,
                SourceCodeTypes.Template,
                args.Version,
                args.TemplateSource
                );

            var apiKeyResult = await ApiKeyService.GetApiKeyOrNullAsync();

            if (apiKeyResult?.ApiKey != null)
            {
                args.ExtraProperties["api-key"] = apiKeyResult.ApiKey;
            }

            if (apiKeyResult?.LicenseCode != null)
            {
                args.ExtraProperties["license-code"] = apiKeyResult.LicenseCode;
            }

            var context = new ProjectBuildContext(
                templateInfo,
                null,
                templateFile,
                args
                );

            TemplateProjectBuildPipelineBuilder.Build(context).Execute();

            if (!templateInfo.DocumentUrl.IsNullOrEmpty())
            {
                Logger.LogInformation("Check out the documents at " + templateInfo.DocumentUrl);
            }

            // Exclude unwanted or known options.
            var options = args.ExtraProperties
                          .Where(x => !x.Key.Equals(CliConsts.Command, StringComparison.InvariantCultureIgnoreCase))
                          .Where(x => !x.Key.Equals("tiered", StringComparison.InvariantCultureIgnoreCase))
                          .Where(x => !x.Key.Equals(NewCommand.Options.DatabaseProvider.Long, StringComparison.InvariantCultureIgnoreCase) &&
                                 !x.Key.Equals(NewCommand.Options.DatabaseProvider.Short, StringComparison.InvariantCultureIgnoreCase))
                          .Where(x => !x.Key.Equals(NewCommand.Options.OutputFolder.Long, StringComparison.InvariantCultureIgnoreCase) &&
                                 !x.Key.Equals(NewCommand.Options.OutputFolder.Short, StringComparison.InvariantCultureIgnoreCase))
                          .Where(x => !x.Key.Equals(NewCommand.Options.UiFramework.Long, StringComparison.InvariantCultureIgnoreCase) &&
                                 !x.Key.Equals(NewCommand.Options.UiFramework.Short, StringComparison.InvariantCultureIgnoreCase))
                          .Where(x => !x.Key.Equals(NewCommand.Options.Mobile.Long, StringComparison.InvariantCultureIgnoreCase) &&
                                 !x.Key.Equals(NewCommand.Options.Mobile.Short, StringComparison.InvariantCultureIgnoreCase))
                          .Where(x => !x.Key.Equals(NewCommand.Options.Version.Long, StringComparison.InvariantCultureIgnoreCase) &&
                                 !x.Key.Equals(NewCommand.Options.Version.Short, StringComparison.InvariantCultureIgnoreCase))
                          .Where(x => !x.Key.Equals(NewCommand.Options.TemplateSource.Short, StringComparison.InvariantCultureIgnoreCase) &&
                                 !x.Key.Equals(NewCommand.Options.TemplateSource.Long, StringComparison.InvariantCultureIgnoreCase))
                          .Select(x => x.Key).ToList();

            await CliAnalyticsCollect.CollectAsync(new CliAnalyticsCollectInputDto
            {
                Tool             = Options.ToolName,
                Command          = args.ExtraProperties.ContainsKey(CliConsts.Command) ? args.ExtraProperties[CliConsts.Command] : "",
                DatabaseProvider = args.DatabaseProvider.ToProviderName(),
                IsTiered         = args.ExtraProperties.ContainsKey("tiered"),
                UiFramework      = args.UiFramework.ToFrameworkName(),
                Options          = JsonSerializer.Serialize(options),
                ProjectName      = args.SolutionName.FullName,
                TemplateName     = args.TemplateName,
                TemplateVersion  = templateFile.Version
            });

            return(new ProjectBuildResult(context.Result.ZipContent, args.SolutionName.ProjectName));
        }
Пример #17
0
 public override void Execute(ProjectBuildContext context)
 {
     context.Result.ZipContent = CreateZipFileFromEntries(context.Files);
 }
        public override void Execute(ProjectBuildContext context)
        {
            //MyCompanyName.MyProjectName.Web

            ChangeProjectReference(
                context,
                "/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj",
                "EntityFrameworkCore.DbMigrations",
                "MongoDB"
                );

            ChangeNamespaceAndKeyword(
                context,
                "/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs",
                "MyCompanyName.MyProjectName.EntityFrameworkCore",
                "MyCompanyName.MyProjectName.MongoDB",
                "MyProjectNameEntityFrameworkCoreDbMigrationsModule",
                "MyProjectNameMongoDbModule"
                );

            ChangeConnectionStringToMongoDb(
                context,
                "/aspnet-core/src/MyCompanyName.MyProjectName.Web/appsettings.json"
                );

            //MyCompanyName.MyProjectName.IdentityServer

            ChangeProjectReference(
                context,
                "/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj",
                "EntityFrameworkCore.DbMigrations",
                "MongoDB"
                );

            ChangeNamespaceAndKeyword(
                context,
                "/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs",
                "MyCompanyName.MyProjectName.EntityFrameworkCore",
                "MyCompanyName.MyProjectName.MongoDB",
                "MyProjectNameEntityFrameworkCoreDbMigrationsModule",
                "MyProjectNameMongoDbModule"
                );

            ChangeConnectionStringToMongoDb(
                context,
                "/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/appsettings.json"
                );

            //MyCompanyName.MyProjectName.HttpApi.Host

            ChangeProjectReference(
                context,
                "/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj",
                "EntityFrameworkCore.DbMigrations",
                "MongoDB"
                );

            ChangeNamespaceAndKeyword(
                context,
                "/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs",
                "MyCompanyName.MyProjectName.EntityFrameworkCore",
                "MyCompanyName.MyProjectName.MongoDB",
                "MyProjectNameEntityFrameworkCoreDbMigrationsModule",
                "MyProjectNameMongoDbModule"
                );

            ChangeConnectionStringToMongoDb(
                context,
                "/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/appsettings.json"
                );

            //MyCompanyName.MyProjectName.Blazor.Server

            ChangeProjectReference(
                context,
                "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj",
                "EntityFrameworkCore.DbMigrations",
                "MongoDB"
                );

            ChangeNamespaceAndKeyword(
                context,
                "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameBlazorModule.cs",
                "MyCompanyName.MyProjectName.EntityFrameworkCore",
                "MyCompanyName.MyProjectName.MongoDB",
                "MyProjectNameEntityFrameworkCoreDbMigrationsModule",
                "MyProjectNameMongoDbModule"
                );

            ChangeConnectionStringToMongoDb(
                context,
                "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/appsettings.json"
                );

            //MyCompanyName.MyProjectName.HttpApi.HostWithIds

            ChangeProjectReference(
                context,
                "/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj",
                "EntityFrameworkCore.DbMigrations",
                "MongoDB"
                );

            ChangeNamespaceAndKeyword(
                context,
                "/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameHttpApiHostModule.cs",
                "MyCompanyName.MyProjectName.EntityFrameworkCore",
                "MyCompanyName.MyProjectName.MongoDB",
                "MyProjectNameEntityFrameworkCoreDbMigrationsModule",
                "MyProjectNameMongoDbModule"
                );

            ChangeConnectionStringToMongoDb(
                context,
                "/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/appsettings.json"
                );

            //MyCompanyName.MyProjectName.DbMigrator

            ChangeProjectReference(
                context,
                "/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyCompanyName.MyProjectName.DbMigrator.csproj",
                "EntityFrameworkCore.DbMigrations",
                "MongoDB"
                );

            ChangeNamespaceAndKeyword(
                context,
                "/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyProjectNameDbMigratorModule.cs",
                "MyCompanyName.MyProjectName.EntityFrameworkCore",
                "MyCompanyName.MyProjectName.MongoDB",
                "MyProjectNameEntityFrameworkCoreDbMigrationsModule",
                "MyProjectNameMongoDbModule"
                );

            ChangeConnectionStringToMongoDb(
                context,
                "/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/appsettings.json"
                );

            //MyCompanyName.MyProjectName.Domain.Tests

            ChangeProjectReference(
                context,
                "/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.csproj",
                "EntityFrameworkCore.Tests",
                "MongoDB.Tests"
                );

            ChangeNamespaceAndKeyword(
                context,
                "/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyProjectNameDomainTestModule.cs",
                "MyCompanyName.MyProjectName.EntityFrameworkCore",
                "MyCompanyName.MyProjectName.MongoDB",
                "MyProjectNameEntityFrameworkCoreTestModule",
                "MyProjectNameMongoDbTestModule"
                );

            ChangeNamespaceAndKeyword(
                context,
                "/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyProjectNameDomainCollection.cs",
                "MyCompanyName.MyProjectName.EntityFrameworkCore",
                "MyCompanyName.MyProjectName.MongoDB",
                "MyProjectNameEntityFrameworkCoreCollectionFixtureBase",
                "MyProjectNameMongoDbCollectionFixtureBase"
                );

            //MyCompanyName.MyProjectName.Application.Tests

            ChangeNamespaceAndKeyword(
                context,
                "/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/MyProjectNameApplicationCollection.cs",
                "MyCompanyName.MyProjectName.EntityFrameworkCore",
                "MyCompanyName.MyProjectName.MongoDB",
                "MyProjectNameEntityFrameworkCoreCollectionFixtureBase",
                "MyProjectNameMongoDbCollectionFixtureBase"
                );

            //MyCompanyName.MyProjectName.Web.Tests

            ChangeNamespaceAndKeyword(
                context,
                "/aspnet-core/test/MyCompanyName.MyProjectName.Web.Tests/MyProjectNameWebCollection.cs",
                "MyCompanyName.MyProjectName.EntityFrameworkCore",
                "MyCompanyName.MyProjectName.MongoDB",
                "MyProjectNameEntityFrameworkCoreCollectionFixtureBase",
                "MyProjectNameMongoDbCollectionFixtureBase"
                );
        }
 public override void Execute(ProjectBuildContext context)
 {
     context.Files.FirstOrDefault(f => f.Name.EndsWith("MyCompanyName.MyProjectName.Web.Public.csproj"))?.RemoveTemplateCodeIfNot("EFCORE");
     context.Files.FirstOrDefault(f => f.Name.EndsWith("MyProjectNameWebPublicModule.cs"))?.RemoveTemplateCodeIfNot("EFCORE");
 }
Пример #20
0
    protected void ChangeToBasicTheme(ProjectBuildContext context)
    {
        #region MyCompanyName.MyProjectName.Web

        ReplacePackageReferenceWithProjectReference(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj",
            "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite",
            @"..\..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj"
            );

        ChangeNamespaceAndKeyword(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs",
            "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite",
            "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic",
            "AbpAspNetCoreMvcUiLeptonXLiteThemeModule",
            "AbpAspNetCoreMvcUiBasicThemeModule"
            );

        ChangeNamespaceAndKeyword(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs",
            "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.Bundling",
            "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Bundling",
            "LeptonXLiteThemeBundles.Styles.Global",
            "BasicThemeBundles.Styles.Global"
            );

        #endregion

        #region MyCompanyName.MyProjectName.HttpApi.Host

        ReplacePackageReferenceWithProjectReference(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj",
            "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite",
            @"..\..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj"
            );

        ChangeNamespaceAndKeyword(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs",
            "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite",
            "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic",
            "AbpAspNetCoreMvcUiLeptonXLiteThemeModule",
            "AbpAspNetCoreMvcUiBasicThemeModule"
            );

        ChangeNamespaceAndKeyword(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs",
            "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.Bundling",
            "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Bundling",
            "LeptonXLiteThemeBundles.Styles.Global",
            "BasicThemeBundles.Styles.Global"
            );

        #endregion

        #region MyCompanyName.MyProjectName.Blazor

        ReplacePackageReferenceWithProjectReference(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj",
            "Volo.Abp.AspNetCore.Components.WebAssembly.LeptonXLiteTheme",
            @"..\..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme\Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.csproj"
            );

        ChangeNamespaceAndKeyword(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorModule.cs",
            "Volo.Abp.AspNetCore.Components.WebAssembly.LeptonXLiteTheme",
            "Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme",
            "AbpAspNetCoreComponentsWebAssemblyLeptonXLiteThemeModule",
            "AbpAspNetCoreComponentsWebAssemblyBasicThemeModule"
            );

        ChangeNamespace(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorModule.cs",
            "Volo.Abp.AspNetCore.Components.Web.LeptonXLiteTheme.Themes.LeptonXLite",
            "Volo.Abp.AspNetCore.Components.Web.BasicTheme.Themes.Basic"
            );

        #endregion

        #region MyCompanyName.MyProjectName.Blazor.Server
        ReplacePackageReferenceWithProjectReference(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj",
            "Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme",
            @"..\..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj"
            );

        ReplacePackageReferenceWithProjectReference(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj",
            "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite",
            @"..\..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Components.Server.BasicTheme\Volo.Abp.AspNetCore.Components.Server.BasicTheme.csproj"
            );

        ChangeNamespaceAndKeyword(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorModule.cs",
            "Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme",
            "Volo.Abp.AspNetCore.Components.Server.BasicTheme",
            "AbpAspNetCoreComponentsServerLeptonXLiteThemeModule",
            "AbpAspNetCoreComponentsServerBasicThemeModule"
            );

        ChangeNamespaceAndKeyword(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorModule.cs",
            "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite",
            "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic",
            "AbpAspNetCoreMvcUiLeptonXLiteThemeModule",
            "AbpAspNetCoreMvcUiBasicThemeModule"
            );

        ChangeNamespaceAndKeyword(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorModule.cs",
            "Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme.Bundling",
            "Volo.Abp.AspNetCore.Components.Server.BasicTheme.Bundling",
            "LeptonXLiteThemeBundles.Styles.Global",
            "BasicThemeBundles.Styles.Global"
            );

        ChangeNamespaceAndKeyword(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorModule.cs",
            "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.Bundling",
            "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Bundling",
            "BlazorLeptonXLiteThemeBundles.Styles.Global",
            "BlazorBasicThemeBundles.Styles.Global"
            );

        ChangeNamespaceAndKeyword(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/_Host.cshtml",
            "Volo.Abp.AspNetCore.Components.Web.LeptonXLiteTheme.Themes.LeptonXLite",
            "Volo.Abp.AspNetCore.Components.Web.BasicTheme.Themes.Basic",
            "BlazorLeptonXLiteThemeBundles.Styles.Global",
            "BlazorBasicThemeBundles.Styles.Global"
            );

        ChangeNamespaceAndKeyword(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/_Host.cshtml",
            "Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme.Bundling",
            "Volo.Abp.AspNetCore.Components.Server.BasicTheme.Bundling",
            "BlazorLeptonXLiteThemeBundles.Scripts.Global",
            "BlazorBasicThemeBundles.Scripts.Global"
            );

        #endregion

        #region MyCompanyName.MyProjectName.Blazor.Server.Tiered

        ReplacePackageReferenceWithProjectReference(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyCompanyName.MyProjectName.Blazor.Server.Tiered.csproj",
            "Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme",
            @"..\..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj"
            );

        ReplacePackageReferenceWithProjectReference(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyCompanyName.MyProjectName.Blazor.Server.Tiered.csproj",
            "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite",
            @"..\..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Components.Server.BasicTheme\Volo.Abp.AspNetCore.Components.Server.BasicTheme.csproj"
            );

        ChangeNamespaceAndKeyword(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyProjectNameBlazorModule.cs",
            "Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme",
            "Volo.Abp.AspNetCore.Components.Server.BasicTheme",
            "AbpAspNetCoreComponentsServerLeptonXLiteThemeModule",
            "AbpAspNetCoreComponentsServerBasicThemeModule"
            );

        ChangeNamespaceAndKeyword(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyProjectNameBlazorModule.cs",
            "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite",
            "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic",
            "AbpAspNetCoreMvcUiLeptonXLiteThemeModule",
            "AbpAspNetCoreMvcUiBasicThemeModule"
            );

        ChangeNamespaceAndKeyword(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyProjectNameBlazorModule.cs",
            "Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme.Bundling",
            "Volo.Abp.AspNetCore.Components.Server.BasicTheme.Bundling",
            "LeptonXLiteThemeBundles.Styles.Global",
            "BasicThemeBundles.Styles.Global"
            );

        ChangeNamespaceAndKeyword(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyProjectNameBlazorModule.cs",
            "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.Bundling",
            "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Bundling",
            "BlazorLeptonXLiteThemeBundles.Styles.Global",
            "BlazorBasicThemeBundles.Styles.Global"
            );


        ChangeNamespaceAndKeyword(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/Pages/_Host.cshtml",
            "Volo.Abp.AspNetCore.Components.Web.LeptonXLiteTheme.Themes.LeptonXLite",
            "Volo.Abp.AspNetCore.Components.Web.BasicTheme.Themes.Basic",
            "BlazorLeptonXLiteThemeBundles.Styles.Global",
            "BlazorBasicThemeBundles.Styles.Global"
            );

        ChangeNamespaceAndKeyword(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/Pages/_Host.cshtml",
            "Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme.Bundling",
            "Volo.Abp.AspNetCore.Components.Server.BasicTheme.Bundling",
            "BlazorLeptonXLiteThemeBundles.Scripts.Global",
            "BlazorBasicThemeBundles.Scripts.Global"
            );

        #endregion

        #region MyCompanyName.MyProjectName.AuthServer

        ReplacePackageReferenceWithProjectReference(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyCompanyName.MyProjectName.AuthServer.csproj",
            "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite",
            @"..\..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj"
            );

        ChangeNamespaceAndKeyword(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyProjectNameAuthServerModule.cs",
            "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite",
            "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic",
            "AbpAspNetCoreMvcUiLeptonXLiteThemeModule",
            "AbpAspNetCoreMvcUiBasicThemeModule"
            );

        ChangeNamespaceAndKeyword(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyProjectNameAuthServerModule.cs",
            "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.Bundling",
            "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Bundling",
            "LeptonXLiteThemeBundles.Styles.Global",
            "BasicThemeBundles.Styles.Global"
            );

        #endregion

        #region MyCompanyName.MyProjectName.Web.Mvc

        ReplacePackageReferenceWithProjectReference(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.Web.Mvc/MyCompanyName.MyProjectName.Web.Mvc.csproj",
            "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite",
            @"..\..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj"
            );

        ChangeNamespaceAndKeyword(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.Web.Mvc/MyProjectNameWebModule.cs",
            "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite",
            "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic",
            "AbpAspNetCoreMvcUiLeptonXLiteThemeModule",
            "AbpAspNetCoreMvcUiBasicThemeModule"
            );

        ChangeNamespaceAndKeyword(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.Web.Mvc/MyProjectNameWebModule.cs",
            "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.Bundling",
            "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Bundling",
            "LeptonXLiteThemeBundles.Styles.Global",
            "BasicThemeBundles.Styles.Global"
            );

        #endregion

        #region MyCompanyName.MyProjectName.Web.Mvc.Mongo

        ReplacePackageReferenceWithProjectReference(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.Web.Mvc.Mongo/MyCompanyName.MyProjectName.Web.Mvc.Mongo.csproj",
            "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite",
            @"..\..\..\..\..\modules\basic-theme\\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj"
            );

        ChangeNamespaceAndKeyword(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.Web.Mvc.Mongo/MyProjectNameWebModule.cs",
            "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite",
            "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic",
            "AbpAspNetCoreMvcUiLeptonXLiteThemeModule",
            "AbpAspNetCoreMvcUiBasicThemeModule"
            );

        ChangeNamespaceAndKeyword(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.Web.Mvc.Mongo/MyProjectNameWebModule.cs",
            "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.Bundling",
            "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Bundling",
            "LeptonXLiteThemeBundles.Styles.Global",
            "BasicThemeBundles.Styles.Global"
            );

        #endregion

        #region MyCompanyName.MyProjectName.Blazor.Server - (app-nolayers)

        ChangeNamespaceAndKeyword(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameModule.cs",
            "Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme",
            "Volo.Abp.AspNetCore.Components.Server.BasicTheme",
            "AbpAspNetCoreComponentsServerLeptonXLiteThemeModule",
            "AbpAspNetCoreComponentsServerBasicThemeModule"
            );

        ChangeNamespaceAndKeyword(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameModule.cs",
            "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite",
            "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic",
            "AbpAspNetCoreMvcUiLeptonXLiteThemeModule",
            "AbpAspNetCoreMvcUiBasicThemeModule"
            );

        ChangeNamespaceAndKeyword(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameModule.cs",
            "Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme.Bundling",
            "Volo.Abp.AspNetCore.Components.Server.BasicTheme.Bundling",
            "LeptonXLiteThemeBundles.Styles.Global",
            "BasicThemeBundles.Styles.Global"
            );

        ChangeNamespaceAndKeyword(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameModule.cs",
            "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.Bundling",
            "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Bundling",
            "BlazorLeptonXLiteThemeBundles.Styles.Global",
            "BlazorBasicThemeBundles.Styles.Global"
            );

        #endregion

        #region MyCompanyName.MyProjectName.Blazor.Server.Mongo

        ReplacePackageReferenceWithProjectReference(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyCompanyName.MyProjectName.Blazor.Server.Mongo.csproj",
            "Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme",
            @"..\..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj"
            );

        ReplacePackageReferenceWithProjectReference(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyCompanyName.MyProjectName.Blazor.Server.Mongo.csproj",
            "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite",
            @"..\..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Components.Server.BasicTheme\Volo.Abp.AspNetCore.Components.Server.BasicTheme.csproj"
            );

        ChangeNamespaceAndKeyword(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyProjectNameModule.cs",
            "Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme",
            "Volo.Abp.AspNetCore.Components.Server.BasicTheme",
            "AbpAspNetCoreComponentsServerLeptonXLiteThemeModule",
            "AbpAspNetCoreComponentsServerBasicThemeModule"
            );

        ChangeNamespaceAndKeyword(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyProjectNameModule.cs",
            "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite",
            "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic",
            "AbpAspNetCoreMvcUiLeptonXLiteThemeModule",
            "AbpAspNetCoreMvcUiBasicThemeModule"
            );

        ChangeNamespaceAndKeyword(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyProjectNameModule.cs",
            "Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme.Bundling",
            "Volo.Abp.AspNetCore.Components.Server.BasicTheme.Bundling",
            "LeptonXLiteThemeBundles.Styles.Global",
            "BasicThemeBundles.Styles.Global"
            );

        ChangeNamespaceAndKeyword(
            context,
            "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyProjectNameModule.cs",
            "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.Bundling",
            "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Bundling",
            "BlazorLeptonXLiteThemeBundles.Styles.Global",
            "BlazorBasicThemeBundles.Styles.Global"
            );

        #endregion

        #region Angular

        ReplaceImportPackage(
            context,
            "/angular/src/app/app.module.ts",
            "@abp/ng.theme.lepton-x",
            "@abp/ng.theme.basic"
            );

        RemoveLinesByStatement(
            context,
            "/angular/src/app/app.module.ts",
            "SideMenuLayoutModule"
            );

        ReplaceMethodNames(
            context,
            "/angular/src/app/app.module.ts",
            "ThemeLeptonXModule",
            "ThemeBasicModule"
            );

        #endregion
    }
Пример #21
0
    public override void Execute(ProjectBuildContext context)
    {
        var projectFile = context.Files.FirstOrDefault(f => f.Name.EndsWith("MyCompanyName.MyProjectName.csproj"));

        projectFile?.SetContent(projectFile.Content.Replace("27317750-B571-4690-B433-B358B2480E01", Guid.NewGuid().ToString()));
    }
Пример #22
0
        public override void Execute(ProjectBuildContext context)
        {
            //MyCompanyName.MyProjectName.Web

            ChangeProjectReference(
                context,
                "/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj",
                "EntityFrameworkCore.DbMigrations",
                "MongoDB"
                );

            ChangeModuleDependency(
                context,
                "/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs",
                "MyCompanyName.MyProjectName.EntityFrameworkCore",
                "MyCompanyName.MyProjectName.MongoDb",
                "MyProjectNameEntityFrameworkCoreDbMigrationsModule",
                "MyProjectNameMongoDbModule"
                );

            ChangeConnectionStringToMongoDb(
                context,
                "/src/MyCompanyName.MyProjectName.Web/appsettings.json"
                );

            //MyCompanyName.MyProjectName.IdentityServer

            ChangeProjectReference(
                context,
                "/src/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj",
                "EntityFrameworkCore.DbMigrations",
                "MongoDB"
                );

            ChangeModuleDependency(
                context,
                "/src/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs",
                "MyCompanyName.MyProjectName.EntityFrameworkCore",
                "MyCompanyName.MyProjectName.MongoDb",
                "MyProjectNameEntityFrameworkCoreDbMigrationsModule",
                "MyProjectNameMongoDbModule"
                );

            ChangeConnectionStringToMongoDb(
                context,
                "/src/MyCompanyName.MyProjectName.IdentityServer/appsettings.json"
                );

            //MyCompanyName.MyProjectName.HttpApi.Host

            ChangeProjectReference(
                context,
                "/src/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj",
                "EntityFrameworkCore.DbMigrations",
                "MongoDB"
                );

            ChangeModuleDependency(
                context,
                "/src/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs",
                "MyCompanyName.MyProjectName.EntityFrameworkCore",
                "MyCompanyName.MyProjectName.MongoDb",
                "MyProjectNameEntityFrameworkCoreDbMigrationsModule",
                "MyProjectNameMongoDbModule"
                );

            ChangeConnectionStringToMongoDb(
                context,
                "/src/MyCompanyName.MyProjectName.HttpApi.Host/appsettings.json"
                );

            //MyCompanyName.MyProjectName.DbMigrator

            ChangeProjectReference(
                context,
                "/src/MyCompanyName.MyProjectName.DbMigrator/MyCompanyName.MyProjectName.DbMigrator.csproj",
                "EntityFrameworkCore.DbMigrations",
                "MongoDB"
                );

            ChangeModuleDependency(
                context,
                "/src/MyCompanyName.MyProjectName.DbMigrator/MyProjectNameDbMigratorModule.cs",
                "MyCompanyName.MyProjectName.EntityFrameworkCore",
                "MyCompanyName.MyProjectName.MongoDb",
                "MyProjectNameEntityFrameworkCoreDbMigrationsModule",
                "MyProjectNameMongoDbModule"
                );

            ChangeConnectionStringToMongoDb(
                context,
                "/src/MyCompanyName.MyProjectName.DbMigrator/appsettings.json"
                );

            //MyCompanyName.MyProjectName.Domain.Tests

            ChangeProjectReference(
                context,
                "/test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.csproj",
                "EntityFrameworkCore.Tests",
                "MongoDB.Tests"
                );

            ChangeModuleDependency(
                context,
                "/test/MyCompanyName.MyProjectName.Domain.Tests/MyProjectNameDomainTestModule.cs",
                "MyCompanyName.MyProjectName.EntityFrameworkCore",
                "MyCompanyName.MyProjectName.MongoDb",
                "MyProjectNameEntityFrameworkCoreDbMigrationsModule",
                "MyProjectNameMongoDbTestModule"
                );
        }
Пример #23
0
 public virtual IEnumerable <ProjectBuildPipelineStep> GetCustomSteps(ProjectBuildContext context)
 {
     return(Array.Empty <ProjectBuildPipelineStep>());
 }
Пример #24
0
    public override void Execute(ProjectBuildContext context)
    {
        var launchSettings = context.Files.Where(x =>
                                                 !x.IsDirectory && x.Name.EndsWith("launchSettings.json", StringComparison.InvariantCultureIgnoreCase))
                             .ToList();

        var appSettings = context.Files.Where(x =>
                                              !x.IsDirectory && x.Name.EndsWith("appSettings.json", StringComparison.InvariantCultureIgnoreCase))
                          .ToList();

        var angularEnvironments = context.Files.Where(x =>
                                                      !x.IsDirectory &&
                                                      (x.Name.EndsWith("environments/environment.ts", StringComparison.InvariantCultureIgnoreCase) ||
                                                       x.Name.EndsWith("environments/environment.hmr.ts", StringComparison.InvariantCultureIgnoreCase) ||
                                                       x.Name.EndsWith("environments/environment.prod.ts", StringComparison.InvariantCultureIgnoreCase))
                                                      )
                                  .ToList();

        var reactNativeEnvironments = context.Files.Where(x =>
                                                          !x.IsDirectory &&
                                                          x.Name.EndsWith($"{MobileApp.ReactNative.GetFolderName()}/Environment.js", StringComparison.InvariantCultureIgnoreCase)
                                                          )
                                      .ToList();

        if (AppTemplateBase.IsAppTemplate(context.Template.Name))
        {
            // no tiered
            if (launchSettings.Count == 1 &&
                launchSettings.First().Name
                .Equals("/aspnet-core/src/MyCompanyName.MyProjectName.Web/Properties/launchSettings.json", StringComparison.InvariantCultureIgnoreCase))
            {
                var dbMigrator = appSettings.FirstOrDefault(x =>
                                                            x.Name.Equals("/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/appsettings.json", StringComparison.InvariantCultureIgnoreCase));
                dbMigrator?.SetContent(dbMigrator.Content.Replace("https://localhost:44302", "https://localhost:44303"));

                var web = appSettings.FirstOrDefault(x =>
                                                     x.Name.Equals("/aspnet-core/src/MyCompanyName.MyProjectName.Web/appsettings.json", StringComparison.InvariantCultureIgnoreCase));
                web?.SetContent(web.Content.Replace("https://localhost:44301", "https://localhost:44303"));

                var consoleTestApp = appSettings.FirstOrDefault(x =>
                                                                x.Name.Equals("/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/appsettings.json", StringComparison.InvariantCultureIgnoreCase));
                consoleTestApp?.SetContent(consoleTestApp.Content.Replace("https://localhost:44300", "https://localhost:44303"));
                consoleTestApp?.SetContent(consoleTestApp.Content.Replace("https://localhost:44301", "https://localhost:44303"));
            }
        }

        var excludePorts = new List <string>();

        excludePorts.AddRange(_buildInSslUrls.Select(GetUrlPort).ToList());

        foreach (var buildInUrl in _buildInSslUrls)
        {
            var newPort = GetRandomPort(excludePorts);
            excludePorts.Add(newPort);

            var buildInUrlWithoutPort = GetUrlWithoutPort(buildInUrl);
            var buildInUrlPort        = GetUrlPort(buildInUrl);

            foreach (var launchSetting in launchSettings)
            {
                launchSetting.NormalizeLineEndings();

                var launchSettingLines = launchSetting.GetLines();
                for (var i = 0; i < launchSettingLines.Length; i++)
                {
                    if (launchSettingLines[i].Contains($"{buildInUrl}"))
                    {
                        launchSettingLines[i] = launchSettingLines[i].Replace($"{buildInUrl}", $"{buildInUrlWithoutPort}:{newPort}");
                    }

                    if (launchSettingLines[i].Contains($"\"sslPort\": {buildInUrlPort}"))
                    {
                        launchSettingLines[i] = launchSettingLines[i]
                                                .Replace($"\"sslPort\": {buildInUrlPort}", $"\"sslPort\": {newPort}");
                    }
                }
                launchSetting.SetLines(launchSettingLines);

                foreach (var appSetting in appSettings)
                {
                    appSetting.NormalizeLineEndings();

                    var appSettingLines = appSetting.GetLines();
                    for (var i = 0; i < appSettingLines.Length; i++)
                    {
                        if (appSettingLines[i].Contains(buildInUrl))
                        {
                            appSettingLines[i] = appSettingLines[i].Replace(buildInUrl, $"{buildInUrlWithoutPort}:{newPort}");
                        }
                    }
                    appSetting.SetLines(appSettingLines);
                }

                foreach (var environment in angularEnvironments)
                {
                    environment.NormalizeLineEndings();

                    var environmentLines = environment.GetLines();
                    for (var i = 0; i < environmentLines.Length; i++)
                    {
                        if (environmentLines[i].Contains(buildInUrl))
                        {
                            environmentLines[i] = environmentLines[i].Replace(buildInUrl, $"{buildInUrlWithoutPort}:{newPort}");
                        }
                    }
                    environment.SetLines(environmentLines);
                }

                foreach (var environment in reactNativeEnvironments)
                {
                    environment.NormalizeLineEndings();

                    var buildInUrlHttp            = buildInUrl.Replace("https://", "http://");
                    var buildInUrlWithoutPortHttp = buildInUrlWithoutPort.Replace("https://", "http://");

                    var environmentLines = environment.GetLines();
                    for (var i = 0; i < environmentLines.Length; i++)
                    {
                        if (environmentLines[i].Contains(buildInUrlHttp))
                        {
                            environmentLines[i] = environmentLines[i].Replace(buildInUrlHttp, $"{buildInUrlWithoutPortHttp}:{newPort}");
                        }
                    }
                    environment.SetLines(environmentLines);
                }
            }
        }
    }
 public override void Execute(ProjectBuildContext context)
 {
     new ConfigureAwaitPropsReplacer(context.Files).Run();
 }
Пример #26
0
    public async Task <ProjectBuildResult> BuildAsync(ProjectBuildArgs args)
    {
        var templateInfo = await GetTemplateInfoAsync(args);

        NormalizeArgs(args, templateInfo);

        await EventBus.PublishAsync(new ProjectCreationProgressEvent {
            Message = "Fetching the solution template"
        }, false);

        var templateFile = await SourceCodeStore.GetAsync(
            args.TemplateName,
            SourceCodeTypes.Template,
            args.Version,
            args.TemplateSource,
            args.ExtraProperties.ContainsKey(NewCommand.Options.Preview.Long)
            );

        DeveloperApiKeyResult apiKeyResult = null;

#if DEBUG
        try
        {
            var apiKeyResultSection = _configuration.GetSection("apiKeyResult");
            if (apiKeyResultSection.Exists())
            {
                apiKeyResult = apiKeyResultSection.Get <DeveloperApiKeyResult>(); //you can use user secrets
            }
        }
        catch (Exception e)
        {
            Console.WriteLine(e);
        }

        if (apiKeyResult == null)
        {
            apiKeyResult = await ApiKeyService.GetApiKeyOrNullAsync();
        }
#else
        apiKeyResult = await ApiKeyService.GetApiKeyOrNullAsync();
#endif

        if (apiKeyResult != null)
        {
            if (apiKeyResult.ApiKey != null)
            {
                args.ExtraProperties["api-key"] = apiKeyResult.ApiKey;
            }
            else if (templateInfo.Name == AppProTemplate.TemplateName)
            {
                throw new UserFriendlyException(apiKeyResult.ErrorMessage);
            }
        }

        if (apiKeyResult?.LicenseCode != null)
        {
            args.ExtraProperties["license-code"] = apiKeyResult.LicenseCode;
        }

        var context = new ProjectBuildContext(
            templateInfo,
            null,
            null,
            null,
            templateFile,
            args
            );

        if (context.Template is AppTemplateBase appTemplateBase)
        {
            appTemplateBase.HasDbMigrations = SemanticVersion.Parse(templateFile.Version) < new SemanticVersion(4, 3, 99);
        }

        await EventBus.PublishAsync(new ProjectCreationProgressEvent {
            Message = "Preparing the solution according to preferences"
        }, false);

        TemplateProjectBuildPipelineBuilder.Build(context).Execute();

        if (!templateInfo.DocumentUrl.IsNullOrEmpty())
        {
            Logger.LogInformation("Check out the documents at " + templateInfo.DocumentUrl);
        }

        // Exclude unwanted or known options.
        var options = args.ExtraProperties
                      .Where(x => !x.Key.Equals(CliConsts.Command, StringComparison.InvariantCultureIgnoreCase))
                      .Where(x => !x.Key.Equals(NewCommand.Options.Tiered.Long, StringComparison.InvariantCultureIgnoreCase))
                      .Where(x => !x.Key.Equals(NewCommand.Options.Preview.Long, StringComparison.InvariantCultureIgnoreCase))
                      .Where(x => !x.Key.Equals(NewCommand.Options.DatabaseProvider.Long, StringComparison.InvariantCultureIgnoreCase) &&
                             !x.Key.Equals(NewCommand.Options.DatabaseProvider.Short, StringComparison.InvariantCultureIgnoreCase))
                      .Where(x => !x.Key.Equals(NewCommand.Options.OutputFolder.Long, StringComparison.InvariantCultureIgnoreCase) &&
                             !x.Key.Equals(NewCommand.Options.OutputFolder.Short, StringComparison.InvariantCultureIgnoreCase))
                      .Where(x => !x.Key.Equals(NewCommand.Options.UiFramework.Long, StringComparison.InvariantCultureIgnoreCase) &&
                             !x.Key.Equals(NewCommand.Options.UiFramework.Short, StringComparison.InvariantCultureIgnoreCase))
                      .Where(x => !x.Key.Equals(NewCommand.Options.Mobile.Long, StringComparison.InvariantCultureIgnoreCase) &&
                             !x.Key.Equals(NewCommand.Options.Mobile.Short, StringComparison.InvariantCultureIgnoreCase))
                      .Where(x => !x.Key.Equals(NewCommand.Options.Version.Long, StringComparison.InvariantCultureIgnoreCase) &&
                             !x.Key.Equals(NewCommand.Options.Version.Short, StringComparison.InvariantCultureIgnoreCase))
                      .Where(x => !x.Key.Equals(NewCommand.Options.TemplateSource.Short, StringComparison.InvariantCultureIgnoreCase) &&
                             !x.Key.Equals(NewCommand.Options.TemplateSource.Long, StringComparison.InvariantCultureIgnoreCase))
                      .Select(x => x.Key).ToList();

        await CliAnalyticsCollect.CollectAsync(new CliAnalyticsCollectInputDto
        {
            Tool             = Options.ToolName,
            Command          = args.ExtraProperties.ContainsKey(CliConsts.Command) ? args.ExtraProperties[CliConsts.Command] : "",
            DatabaseProvider = args.DatabaseProvider.ToProviderName(),
            IsTiered         = args.ExtraProperties.ContainsKey(NewCommand.Options.Tiered.Long),
            UiFramework      = args.UiFramework.ToFrameworkName(),
            Options          = JsonSerializer.Serialize(options),
            ProjectName      = args.SolutionName.FullName,
            TemplateName     = args.TemplateName,
            TemplateVersion  = templateFile.Version
        });

        return(new ProjectBuildResult(context.Result.ZipContent, args.SolutionName.ProjectName));
    }
Пример #27
0
 private static void RemoveUnnecessaryPorts(ProjectBuildContext context, List <ProjectBuildPipelineStep> steps)
 {
     steps.Add(new RemoveUnnecessaryPortsStep());
 }
Пример #28
0
 private void CleanupFolderHierarchy(ProjectBuildContext context, List <ProjectBuildPipelineStep> steps)
 {
     steps.Add(new MoveFolderStep("/aspnet-core/", "/"));
 }
Пример #29
0
 private static void UpdateNuGetConfig(ProjectBuildContext context, List <ProjectBuildPipelineStep> steps)
 {
     steps.Add(new UpdateNuGetConfigStep("/aspnet-core/NuGet.Config"));
 }
Пример #30
0
    private static void DeleteUnrelatedProjects(ProjectBuildContext context, List <ProjectBuildPipelineStep> steps)
    {
        //TODO: move common tasks to methods
        switch (context.BuildArgs.UiFramework)
        {
        case UiFramework.None:
            steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Web", null,
                                                        "/apps/web/src/MyCompanyName.MyProjectName.Web"));
            steps.Add(new RemoveFolderStep("/apps/web"));
            steps.Add(new RemoveProjectFromTyeStep("web"));
            steps.Add(new RemoveProjectFromPrometheusStep("web"));

            steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor", null,
                                                        "/apps/blazor/src/MyCompanyName.MyProjectName.Blazor"));
            steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.ProductService.Blazor",
                                                        "/services/product/MyCompanyName.MyProjectName.ProductService.sln",
                                                        "/services/product/src/MyCompanyName.MyProjectName.ProductService.Blazor"));
            steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Server", null,
                                                        "/apps/blazor/src/MyCompanyName.MyProjectName.Blazor.Server"));
            steps.Add(new RemoveFolderStep("/apps/blazor"));
            steps.Add(new RemoveProjectFromTyeStep("blazor"));
            steps.Add(new RemoveProjectFromTyeStep("blazor-server"));

            steps.Add(new RemoveFolderStep("/apps/angular"));
            break;

        case UiFramework.Angular:
            steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Web", null,
                                                        "/apps/web/src/MyCompanyName.MyProjectName.Web"));
            steps.Add(new RemoveFolderStep("/apps/web"));
            steps.Add(new RemoveProjectFromTyeStep("web"));
            steps.Add(new RemoveProjectFromPrometheusStep("web"));

            steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor", null,
                                                        "/apps/blazor/src/MyCompanyName.MyProjectName.Blazor"));
            steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.ProductService.Blazor",
                                                        "/services/product/MyCompanyName.MyProjectName.ProductService.sln",
                                                        "/services/product/src/MyCompanyName.MyProjectName.ProductService.Blazor"));
            steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Server", null,
                                                        "/apps/blazor/src/MyCompanyName.MyProjectName.Blazor.Server"));
            steps.Add(new RemoveFolderStep("/apps/blazor"));
            steps.Add(new RemoveProjectFromTyeStep("blazor"));
            steps.Add(new RemoveProjectFromTyeStep("blazor-server"));
            break;

        case UiFramework.Blazor:
            steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Web", null,
                                                        "/apps/web/src/MyCompanyName.MyProjectName.Web"));
            steps.Add(new RemoveFolderStep("/apps/web"));
            steps.Add(new RemoveFolderStep("/apps/angular"));
            steps.Add(new RemoveProjectFromTyeStep("web"));
            steps.Add(new RemoveProjectFromPrometheusStep("web"));

            steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Server",
                                                        "/apps/blazor/MyCompanyName.MyProjectName.Blazor.sln",
                                                        "/apps/blazor/src/MyCompanyName.MyProjectName.Blazor.Server"));
            steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Server",
                                                        null,
                                                        "/apps/blazor/src/MyCompanyName.MyProjectName.Blazor.Server"));
            steps.Add(new RemoveProjectFromTyeStep("blazor-server"));

            break;

        case UiFramework.BlazorServer:
            steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Web", null,
                                                        "/apps/web/src/MyCompanyName.MyProjectName.Web"));
            steps.Add(new RemoveFolderStep("/apps/web"));
            steps.Add(new RemoveFolderStep("/apps/angular"));
            steps.Add(new RemoveProjectFromTyeStep("web"));
            steps.Add(new RemoveProjectFromPrometheusStep("web"));

            steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor",
                                                        "/apps/blazor/MyCompanyName.MyProjectName.Blazor.sln",
                                                        "/apps/blazor/src/MyCompanyName.MyProjectName.Blazor"));
            steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor",
                                                        null,
                                                        "/apps/blazor/src/MyCompanyName.MyProjectName.Blazor"));
            steps.Add(new RemoveProjectFromTyeStep("blazor"));

            steps.Add(new TemplateProjectRenameStep("MyCompanyName.MyProjectName.Blazor.Server",
                                                    "MyCompanyName.MyProjectName.Blazor"));
            steps.Add(new RenameProjectInTyeStep("blazor-server", "blazor"));

            break;

        case UiFramework.Mvc:
        case UiFramework.NotSpecified:
            steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor", null,
                                                        "/apps/blazor/src/MyCompanyName.MyProjectName.Blazor"));
            steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Server", null,
                                                        "/apps/blazor/src/MyCompanyName.MyProjectName.Blazor.Server"));
            steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.ProductService.Blazor",
                                                        "/services/product/MyCompanyName.MyProjectName.ProductService.sln",
                                                        "/services/product/src/MyCompanyName.MyProjectName.ProductService.Blazor"));
            steps.Add(new RemoveFolderStep("/apps/blazor"));
            steps.Add(new RemoveProjectFromTyeStep("blazor"));
            steps.Add(new RemoveProjectFromTyeStep("blazor-server"));

            steps.Add(new RemoveFolderStep("/apps/angular"));
            break;
        }

        steps.Add(new RemoveFolderStep("/services/template"));
    }