Beispiel #1
0
        public async Task <ProjectDTO> CopyProject(ProjectDTO dto)
        {
            var existingProject = await GetProjectWithBuildSteps(dto.Id);

            dto.Repository.Id = 0;
            var newProject = new ProjectDTO
            {
                Description                   = dto.Description,
                Name                          = dto.Name,
                OwnerId                       = dto.OwnerId,
                IsPublic                      = dto.IsPublic,
                IsFavorite                    = dto.IsFavorite,
                Repository                    = dto.Repository,
                CredentialsId                 = dto.CredentialsId,
                IsAutoCancelBranchBuilds      = dto.IsAutoCancelBranchBuilds,
                IsCleanUpBeforeBuild          = dto.IsCleanUpBeforeBuild,
                IsAutoCancelPullRequestBuilds = dto.IsAutoCancelPullRequestBuilds,
                CancelAfter                   = dto.CancelAfter,
            };

            var createdProject = (await Context.AddAsync(Mapper.Map <Project>(newProject))).Entity;
            await Context.SaveChangesAsync();

            int id = createdProject.Id;

            existingProject.BuildSteps.Select(buildStep => _buildStepService.Create(new NewBuildStepDTO
            {
                ProjectId             = id,
                BuildStepName         = buildStep.BuildStepName,
                PluginCommandId       = buildStep.PluginCommand.PluginId,
                Index                 = buildStep.Index,
                BuildPluginParameters = buildStep.Parameters.ToList(),
                LoggingVerbosity      = (int)buildStep.LoggingVerbosity
            }));
            var project = await Context.Projects
                          .Include(p => p.BuildSteps)
                          .Include(p => p.Owner)
                          .FirstOrDefaultAsync(p => p.Id == id);

            return(Mapper.Map <ProjectDTO>(project));
        }
Beispiel #2
0
 public async Task <BuildStepDTO> Create(NewBuildStepDTO buildStep)
 {
     return(await _buildStepService.Create(buildStep));
 }