public async Task <IActionResult> RemoveStartupTeamMember([Required] EditTeamMemberRequest requestBody) { try { int contextUserId = int.Parse(HttpContext.User.Identity.Name); var contextUser = await userService.GetByIdAsync(contextUserId); startupService.EditTeamMember(requestBody, contextUser); return(Ok()); } catch (Exception ex) { return(BadRequest(new { message = ex.Message })); } }
public async Task EditTeamMember(EditTeamMemberRequest editTeamMemberRequest, User editor) { var teamMembers = await GetTeamMembers(editTeamMemberRequest.StartupId); var editorAsTeamMember = teamMembers.FirstOrDefault(x => x.UserId == editor.UserId); if (!editorAsTeamMember.EditAccess && !editor.Admin) throw new ArgumentException("NO_EDIT_ACCESS"); var userAsTeamMember = editorAsTeamMember; if (editor.UserId != editTeamMemberRequest.UserId) { userAsTeamMember = teamMembers.FirstOrDefault(x => x.UserId == editTeamMemberRequest.UserId); } userAsTeamMember.Role = editTeamMemberRequest.Role; userAsTeamMember.EditAccess = editTeamMemberRequest.HasEditAccess; _dbcontext.SaveChanges(); }