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)); }
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)); }
public async ValueTask <ProjectReadDto> UpdateProjectAny([FromRoute] Guid id, [FromBody] ProjectSaveDto projectSaveDto) { return(await _projectsService.UpdateProject(id, projectSaveDto, false)); }
public async ValueTask <ProjectReadDto> CreateProject([FromBody] ProjectSaveDto projectSaveDto) { return(await _projectsService.CreateNewProject(projectSaveDto)); }