public void AddUser([FromBody] UserProjectPair inc) { User user = context.Users.Where(u => u.Id == inc.UserId).Include(u => u.Projects).Single(); Project project = context.Projects.Where(p => p.Id == inc.ProjectId).Include(u => u.Users).Single(); if (user != null && project != null) { var projectUser = new ProjectUser { UserId = user.Id, ProjectId = project.Id }; project.Users.Add(projectUser); user.Projects.Add(projectUser); context.SaveChanges(); } }
public void RemoveUser([FromBody] UserProjectPair inc) { User user = context.Users.Where(u => u.Id == inc.UserId).Include(u => u.Projects).Single(); if (user != null) { foreach (var connection in user.Projects) { if (inc.ProjectId == connection.ProjectId) { Project projectToDeleteUserFrom = context.Projects.Where(p => p.Id == inc.ProjectId).Include(p => p.Users).Single(); user.Projects.Remove(connection); projectToDeleteUserFrom.Users.Remove(connection); } else { throw new InvalidOperationException("Selected user is not a member of selected project."); } } } }