コード例 #1
0
        public VersionControlSystemInfo CreateRepositoryForProject(CreateProjectRequest request)
        {
            var project = new ProjectCreate
            {
                IssuesEnabled = false,
                Description = request.Info,
                MergeRequestsEnabled = false,
                Name = request.Name,
                VisibilityLevel = request.AccessLevel == AccessLevel.Public
                    ? VisibilityLevel.Public
                    : VisibilityLevel.Private
            };

            var createdProject = _gitLabClient.Projects.Create(project);
            return new VersionControlSystemInfo(createdProject.Id, new Uri(createdProject.WebUrl));
        }
コード例 #2
0
        public RedmineProjectInfo CreateProject(CreateProjectRequest request)
        {
            Require.NotNull(request, nameof(request));

            var project = new Project
            {
                Name = request.Name,
                Identifier = GetProjectIdentifier(request.Name),
                Status = ProjectStatus.Active,
                Description = request.Info,
                IsPublic = request.AccessLevel == AccessLevel.Public
            };

            var readyProject = _redmineManager.CreateObject(project);
            return new RedmineProjectInfo(
                readyProject.Id,
                new Uri($"{_redmineSettings.RedmineHost}/projects/{readyProject.Identifier}"),
                readyProject.Identifier);
        }
コード例 #3
0
        public int CreateProject(CreateProjectRequest request)
        {
            Require.NotNull(request, nameof(request));

            var versionControlSystemInfo = _versionControlSystemGateway.CreateRepositoryForProject(request);
            var projectManagementSystemId = _projectManagerGateway.CreateProject(request);

            var project = new Project(
                request.Name,
                new HashSet<ProjectType>(request.ProjectTypes),
                request.Info,
                request.ProjectStatus,
                request.LandingImage,
                request.AccessLevel,
                versionControlSystemInfo,
                projectManagementSystemId,
                null,
                null,
                request.Screenshots != null
                ? new HashSet<Image>(request.Screenshots)
                : null );
            var projectId = _projectRepository.SaveProject(project);

            _eventSink.ConsumeEvent(new NewProjectCreated(projectId));

            return projectId;
        }
コード例 #4
0
        public IHttpActionResult CreateProject([FromBody] ProjectActionRequest createProjectRequest)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            var request = new CreateProjectRequest(
                createProjectRequest.Name,
                createProjectRequest.ProjectTypes,
                createProjectRequest.Info,
                createProjectRequest.ProjectStatus,
                createProjectRequest.AccessLevel,
                createProjectRequest.LandingImage,
                createProjectRequest.Screenshots);

            var projectId = _projectProvider.CreateProject(request);

            return Ok(projectId);
        }