예제 #1
0
        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();
            }
        }
예제 #2
0
        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.");
                    }
                }
            }
        }