コード例 #1
0
        public ActionResult Create(Team team)
        {
            if (ModelState.IsValid)
            {
                string          currentUserId             = User.Identity.GetUserId();
                ApplicationUser user                      = db.Users.FirstOrDefault(x => x.Id == currentUserId);
                UserManager <ApplicationUser> UserManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(db));

                if (!UserManager.GetRoles(user.Id).Contains("Manager"))
                {
                    UserManager.AddToRole(user.Id, "Manager");
                }

                UserToTeam userToTeam = new UserToTeam()
                {
                    TeamId = team.TeamId, UserId = currentUserId
                };
                team.LastUpdate = DateTime.Now;
                team.UserId     = User.Identity.GetUserId();
                try
                {
                    db.Teams.Add(team);
                    db.UsersToTeams.Add(userToTeam);
                    db.SaveChanges();
                    return(RedirectToAction("Details", new { id = team.TeamId }));
                }

                catch (Exception ex)
                {
                    Log.Error("Failed to create team. Error: " + ex.Message);
                    ModelState.AddModelError("Title", "Title should be unique. The title you chose may have already been taken");
                }
            }
            return(View(team));
        }
コード例 #2
0
        public ActionResult RemoveMember(int teamId, string memberId)
        {
            Team   team;
            string currentUserId = User.Identity.GetUserId();

            if (User.IsInRole("Administrator"))
            {
                team = db.Teams.FirstOrDefault(x => x.TeamId == teamId);
            }
            else
            {
                team = db.Teams.FirstOrDefault(x => x.TeamId == teamId && x.UserId == currentUserId);
            }
            if (team == null)
            {
                return(RedirectToAction("Index"));
            }

            UserToTeam item = db.UsersToTeams.Find(teamId, memberId);

            try
            {
                db.UsersToTeams.Remove(item);
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                Log.Error("Failed to remove member from team. Error: " + ex.Message);
            }
            return(RedirectToAction("Details", new { id = teamId }));
        }
コード例 #3
0
        public ActionResult AddMember(int teamId)
        {
            Team   team;
            string currentUserId = User.Identity.GetUserId();

            if (User.IsInRole("Administrator"))
            {
                team = db.Teams.FirstOrDefault(x => x.TeamId == teamId);
            }
            else
            {
                team = db.Teams.FirstOrDefault(x => x.TeamId == teamId && x.UserId == currentUserId);
            }
            if (team == null)
            {
                return(RedirectToAction("Index"));
            }

            UserToTeam item = new UserToTeam();

            item.TeamId = teamId;
            List <UserToTeam> currentUsersOfTeam = db.UsersToTeams.ToList().FindAll(x => x.TeamId == teamId);

            ViewBag.Members = MembersToSelectList(db.Users.ToList().FindAll(x => x.Id != currentUserId && !currentUsersOfTeam.Exists(y => y.UserId == x.Id)));
            return(View(item));
        }
コード例 #4
0
        public ActionResult ChangeManager(TeamsNewManager item)
        {
            ApplicationUser user       = db.Users.Find(item.formerManagerId);
            ApplicationUser newManager = db.Users.Find(item.newManagerId);
            UserManager <ApplicationUser> UserManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(db));

            if (user == null || newManager == null || !UserManager.GetRoles(user.Id).Contains("Manager"))
            {
                return(RedirectToAction("Index"));
            }

            List <Team> teams = db.Teams.ToList().FindAll(x => x.UserId == user.Id);

            foreach (Team team in teams)
            {
                Team actualTeam = db.Teams.Find(team.TeamId);
                if (TryUpdateModel(actualTeam))
                {
                    actualTeam.UserId = item.newManagerId;
                    db.SaveChanges();
                }
                if (!db.UsersToTeams.ToList().Exists(x => x.UserId == item.newManagerId && x.TeamId == team.TeamId))
                {
                    UserToTeam newItem = new UserToTeam()
                    {
                        UserId = newManager.Id,
                        TeamId = team.TeamId
                    };
                    db.UsersToTeams.Add(newItem);
                    db.SaveChanges();
                }
            }
            try
            {
                if (!UserManager.GetRoles(newManager.Id).Contains("Manager"))
                {
                    UserManager.AddToRole(newManager.Id, "Manager");
                }

                UserManager.RemoveFromRole(user.Id, "Manager");
            }
            catch (Exception ex)
            {
                Log.Error("Failed to process changing teams manager. Error: " + ex.Message);
            }
            return(RedirectToAction("Index"));
        }
コード例 #5
0
 public int RemoveUserFromTeam([FromBody] UserToTeam usrToTeamMap)
 {
     using (DataAccessLayer modelAccess = new DataAccessLayer())
     {
         try
         {
             LogHelper.WarnLog("Attempting to remove User with ID: " + usrToTeamMap.userID + " from Team with ID: " + usrToTeamMap.teamID);
             modelAccess.RemoveUserFromTeam(usrToTeamMap.userID, usrToTeamMap.teamID);
             return(1);
         }
         catch (Exception ex)
         {
             LogHelper.ErrorLog("Error removing user from team: " + ex.ToString());
             return(0);
         }
     }
 }
コード例 #6
0
 public int AddUserToTeam([FromBody] UserToTeam usrToTeamMap)
 {
     using (DataAccessLayer modelAccess = new DataAccessLayer())
     {
         try
         {
             LogHelper.InfoLog("Attempting to add User with ID: " + usrToTeamMap.userID + " to Team with ID: " + usrToTeamMap.teamID);
             modelAccess.AddUserToTeam(usrToTeamMap.userID, usrToTeamMap.teamID);
             return(1);
         }
         catch (Exception ex)
         {
             LogHelper.ErrorLog("Error adding user to team: " + ex.ToString());
             return(0);
         }
     }
 }
コード例 #7
0
        public ActionResult AddMember(UserToTeam item)
        {
            Team   team;
            string currentUserId = User.Identity.GetUserId();

            if (User.IsInRole("Administrator"))
            {
                team = db.Teams.FirstOrDefault(x => x.TeamId == item.TeamId);
            }
            else
            {
                team = db.Teams.FirstOrDefault(x => x.TeamId == item.TeamId && x.UserId == currentUserId);
            }
            if (team == null)
            {
                return(RedirectToAction("Index"));
            }

            if (ModelState.IsValid)
            {
                if (TryUpdateModel(item))
                {
                    try
                    {
                        db.UsersToTeams.Add(item);
                        db.SaveChanges();
                    }
                    catch (Exception ex)
                    {
                        Log.Error("Failed to add member to team. Error: " + ex.Message);
                    }
                    return(RedirectToAction("Details", new { id = team.TeamId }));
                }
            }
            List <UserToTeam> currentUsersOfTeam = db.UsersToTeams.ToList().FindAll(x => x.TeamId == team.TeamId);

            ViewBag.Members = MembersToSelectList(db.Users.ToList().FindAll(x => x.Id != currentUserId && !currentUsersOfTeam.Exists(y => y.UserId == x.Id)));

            return(View(item));
        }