public async Task <Project> GetByIdAsync(Guid id, AuthenticatedUser currentUser) { await EnsureUserHasAccessAsync(currentUser, id, AccessType.User, nameof(GetByIdAsync)); var dbProject = await projectRepository.FindByIdAsync(id); if (dbProject == null) { throw new EntityNotFoundException(nameof(Project), id.ToString()); } return(ModelsMapper.ConvertProjectDbModelToServiceModel(dbProject)); }
public async Task <Project> CreateAsync(Project project, AuthenticatedUser currentUser) { var dbProject = await projectRepository.AddAsync(ModelsMapper.ConvertProjectServiceModelToDbModel(project)); var dbUser = await userRepository.FindByIdAsync(currentUser.Id); dbUser.ProjectsWithAdminAccess.Add(dbProject.Id.ToString()); dbUser.ProjectsWithUserAccess.Add(dbProject.Id.ToString()); await userRepository.UpdateAsync(dbUser); return(ModelsMapper.ConvertProjectDbModelToServiceModel(dbProject)); }
public async Task <Project> UpdateAsync(Project project, AuthenticatedUser currentUser) { await EnsureUserHasAccessAsync(currentUser, project.Id, AccessType.Admin, nameof(UpdateAsync)); var dbProject = await projectRepository.FindByIdAsync(project.Id); if (dbProject == null) { throw new EntityNotFoundException(nameof(Project), project.Id.ToString()); } dbProject.Name = project.Name; dbProject.GitToken = project.GitToken; dbProject.ProjectUri = project.ProjectUri; await projectRepository.UpdateAsync(dbProject); return(ModelsMapper.ConvertProjectDbModelToServiceModel(dbProject)); }