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)); }
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 })); }
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)); }
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")); }
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); } } }
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); } } }
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)); }