示例#1
0
        public override DeployActionUnitResponse ExecuteDeploy(
            ProjectState projectState,
            ActionExecution sourceActionExecution,
            List <DeployActionUnit> currentExecutionDeployActions)
        {
            try
            {
                var createRepositoryFolderDependency = GetDependencyFromSameSource <CreateRepositoriesFolder>(sourceActionExecution, currentExecutionDeployActions);
                var createGithubRepositoryDependency = GetDependencyFromSameSource <CreateGithubRepository>(sourceActionExecution, currentExecutionDeployActions);
                var pathParameter           = DeployResponseParametersDefinitions.Project.CreateRepositoriesFolder.RepositoryPath;
                var repositoriesPath        = createRepositoryFolderDependency.ResponseParameters[pathParameter] as string;
                var repositorySvnUrl        = DeployResponseParametersDefinitions.MicroServices.CreateGithubRepository.SvnUrl;
                var repositoryNameParameter = DeployResponseParametersDefinitions.MicroServices.CreateGithubRepository.Name;

                var repositoryName = createGithubRepositoryDependency.ResponseParameters[repositoryNameParameter] as string;
                var path           = FileService.ConcatDirectoryAndFileOrFolder(repositoriesPath, repositoryName);
                var repositoryUrl  = createGithubRepositoryDependency.ResponseParameters[repositorySvnUrl] as string;

                var settingGit = GetSetting(projectState, SettingsDefinitions.GitExePath);
                GitClientService.Initialize(settingGit);
                var repositoryPath = FileService.ConcatDirectoryAndFileOrFolder(repositoriesPath, repositoryName);
                if (FileService.ExistsFolder(repositoryPath))
                {
                    FileService.DeleteFolder(repositoryPath);
                }
                GitClientService.CloneRepository(repositoriesPath, repositoryUrl);
                return(new DeployActionUnitResponse()
                       .Ok(GetParameters(path)));
            }
            catch (Exception ex)
            {
                return(new DeployActionUnitResponse()
                       .Error(ex));
            }
        }
示例#2
0
        public override DeployActionUnitResponse ExecuteCheck(
            ProjectState projectState,
            ActionExecution sourceActionExecution,
            List <DeployActionUnit> currentExecutionDeployActions)
        {
            try
            {
                var cloneRepositoryFolderDependency = GetDependencyFromSameSource <CloneGitRepository>(sourceActionExecution, currentExecutionDeployActions);
                var pathParameter  = Definitions.DeployResponseParametersDefinitions.MicroServices.CloneGitRepository.Path;
                var repositoryPath = cloneRepositoryFolderDependency.ResponseParameters[pathParameter] as string;

                var settingGit = GetSetting(projectState, Definitions.SettingsDefinitions.GitExePath);
                GitClientService.Initialize(settingGit);

                var existsFolder = FileService.ExistsFolder(repositoryPath);
                if (!existsFolder)
                {
                    return(new DeployActionUnitResponse()
                           .Ok(DeployActionUnitResponse.DeployActionResponseType.NotCompletedJob));
                }
                var existsRepoInPath = GitClientService.ExistsRepositoryInFolder(repositoryPath);
                if (!existsRepoInPath)
                {
                    return(new DeployActionUnitResponse()
                           .Ok(DeployActionUnitResponse.DeployActionResponseType.NotCompletedJob));
                }
                var currentBranch = GitClientService.GetCurrentBranchRepository(repositoryPath);
                if (currentBranch != BranchDefinitions.Master)
                {
                    return(new DeployActionUnitResponse()
                           .Ok(DeployActionUnitResponse.DeployActionResponseType.NotCompletedJob));
                }
                return(new DeployActionUnitResponse()
                       .Ok(GetParameters(currentBranch), DeployActionUnitResponse.DeployActionResponseType.AlreadyCompletedJob));
            }
            catch (Exception ex)
            {
                return(new DeployActionUnitResponse()
                       .Error(ex));
            }
        }
示例#3
0
        public override DeployActionUnitResponse ExecuteCheck(
            ProjectState projectState,
            ActionExecution sourceActionExecution,
            List <DeployActionUnit> currentExecutionDeployActions)
        {
            try
            {
                var createRepositoryFolderDependency = GetDependency <CreateRepositoriesFolder>(sourceActionExecution, currentExecutionDeployActions);
                var createGithubRepositoryDependency = GetDependencyFromSameSource <CreateGithubRepository>(sourceActionExecution, currentExecutionDeployActions);
                var pathParameter           = DeployResponseParametersDefinitions.Project.CreateRepositoriesFolder.RepositoryPath;
                var repositoriesPath        = createRepositoryFolderDependency.ResponseParameters[pathParameter] as string;
                var repositoryNameParameter = DeployResponseParametersDefinitions.MicroServices.CreateGithubRepository.Name;
                var repositoryName          = createGithubRepositoryDependency.ResponseParameters[repositoryNameParameter] as string;
                var path = FileService.ConcatDirectoryAndFileOrFolder(repositoriesPath, repositoryName);

                var settingGit = GetSetting(projectState, SettingsDefinitions.GitExePath);
                GitClientService.Initialize(settingGit);

                var existsFolder = FileService.ExistsFolder(path);
                if (!existsFolder)
                {
                    return(new DeployActionUnitResponse()
                           .Ok(DeployActionUnitResponse.DeployActionResponseType.NotCompletedJob));
                }
                var existsRepoInPath = GitClientService.ExistsRepositoryInFolder(path);
                if (existsRepoInPath)
                {
                    return(new DeployActionUnitResponse()
                           .Ok(GetParameters(path), DeployActionUnitResponse.DeployActionResponseType.AlreadyCompletedJob));
                }
                return(new DeployActionUnitResponse()
                       .Ok(DeployActionUnitResponse.DeployActionResponseType.NotCompletedJob));
            }
            catch (Exception ex)
            {
                return(new DeployActionUnitResponse()
                       .Error(ex));
            }
        }
示例#4
0
        private ActionManager GetActionManager()
        {
            IGithubClientService githubClientService = new GithubClientService();
            IProcessService      processService      = new ProcessService();
            IGitClientService    gitClientService    = new GitClientService(processService);
            IDotnetService       dotnetService       = new DotnetService(processService);
            IDDService           dDService           = new DDService(processService);

            var actionManager = new ActionManager(_cryptoService);

            actionManager.RegisterAction(new InitializeProject(
                                             _fileService,
                                             githubClientService,
                                             gitClientService,
                                             dotnetService,
                                             dDService));
            actionManager.RegisterAction(new AddDomain());
            actionManager.RegisterAction(new DeleteDomain());
            actionManager.RegisterAction(new DeleteSchema());
            actionManager.RegisterAction(new AddSchema());
            actionManager.RegisterAction(new ModifySchema());
            actionManager.RegisterAction(new AddSchemaProperty());
            actionManager.RegisterAction(new AddAzurePipelinesSetting(_cryptoService));
            actionManager.RegisterAction(new DeleteAzurePipelinesSetting());
            actionManager.RegisterAction(new AddGithubSetting(_cryptoService));
            actionManager.RegisterAction(new DeleteGithubSetting());
            actionManager.RegisterAction(new AddSchemaIntersection());
            actionManager.RegisterAction(new AddUseCase());
            actionManager.RegisterAction(new DeleteUseCase());
            //actionManager.RegisterAction(new AddSchemaToDomain());
            //actionManager.RegisterAction(new AddDomainInMicroService(_fileService, dotnetService));
            //actionManager.RegisterAction(new AddMicroService(_fileService, githubClientService, gitClientService, dotnetService));
            actionManager.RegisterAction(new AddEnvironment());
            actionManager.RegisterAction(new DeleteEnvironment());
            actionManager.RegisterAction(new AddSetting());
            actionManager.RegisterAction(new AddSchemaView());

            return(actionManager);
        }