コード例 #1
0
        public async ValueTask <ProjectReadDto> CreateNewProject(ProjectSaveDto projectSaveDto)
        {
            var projectEntity = _mapper.Map <ProjectSaveDto, ProjectEntity>(projectSaveDto);
            var userEntity    = await _unitOfWork.UserRepository.GetById(_userContextAccessorService.UserContext.UserId);

            if (userEntity == null)
            {
                var extUserPublicReadDto =
                    await _externalUserService.GetUser(_userContextAccessorService.UserContext.UserId);

                userEntity = _mapper.Map <UserEntity>(extUserPublicReadDto);
            }
            var projectRoleEntity = new ProjectRoleEntity()
            {
                UserEntity    = userEntity,
                Role          = ProjectRoleValue.OWNER,
                PendingInvite = false
            };

            projectEntity.ProjectRoles = new List <ProjectRoleEntity>()
            {
                projectRoleEntity
            };
            await _unitOfWork.ProjectRepository.Insert(projectEntity);

            await _unitOfWork.SaveChanges();

            return(_mapper.Map <ProjectEntity, ProjectReadDto>(projectEntity));
        }
コード例 #2
0
        public async ValueTask <ProjectReadDto> UpdateProject(Guid id, ProjectSaveDto projectSaveDto, bool authorize = true)
        {
            var oldProjectEntity = await _unitOfWork.ProjectRepository.GetById(id);

            if (oldProjectEntity == null)
            {
                throw _errorService.Create(ErrorCode.ProjectIdNotFound, id);
            }
            if (authorize)
            {
                await _projectAuthorizeService.Authorize(id, _projectAuthorizeService.WriterRoles());
            }

            var projectEntityToSave = _mapper.Map(projectSaveDto, oldProjectEntity);
            await _unitOfWork.ProjectRepository.Update(projectEntityToSave);

            await _unitOfWork.SaveChanges();

            return(_mapper.Map <ProjectEntity, ProjectReadDto>(projectEntityToSave));
        }
コード例 #3
0
 public async ValueTask <ProjectReadDto> UpdateProjectAny([FromRoute] Guid id,
                                                          [FromBody] ProjectSaveDto projectSaveDto)
 {
     return(await _projectsService.UpdateProject(id, projectSaveDto, false));
 }
コード例 #4
0
 public async ValueTask <ProjectReadDto> CreateProject([FromBody] ProjectSaveDto projectSaveDto)
 {
     return(await _projectsService.CreateNewProject(projectSaveDto));
 }