Ejemplo n.º 1
0
        public UsersProjectResponse AttachUsers(UsersProjectRequest item)
        {
            var result = new UsersProjectResponse();

            var usersID  = db.ProjectUsers.Where(p => p.ProjectID == item.ProjectID).Select(p => p.UserID).ToList();
            var overlaps = usersID.Intersect(item.UsersID);

            foreach (var id in overlaps)
            {
                item.UsersID.Remove(id);
                result.NotAdded.Add(id);
            }

            var usersAdded = new List <ProjectUser>();

            foreach (var id in item.UsersID)
            {
                usersAdded.Add(new ProjectUser()
                {
                    ProjectID = item.ProjectID,
                    UserID    = id
                });
            }

            if (usersAdded.Count > 0)
            {
                db.ProjectUsers.AddRange(usersAdded);
                Save();
                result.Message = "Пользователи успешно прикреплены к проекту.";
            }

            if (result.NotAdded.Count > 0)
            {
                result.Message = "Часть пользователей уже прикреплены к проекту.";
            }
            return(result);
        }
Ejemplo n.º 2
0
 public ActionResult AttachUsers(UsersProjectRequest request)
 {
     return(Ok(repository.AttachUsers(request)));
 }