public void SaveTeamMember(int teamId, int memberId, int createdById) { var teamMember = new TeamMember { MemberID = memberId, TeamID = teamId, CreatedByID = createdById }; teamMember.CreatedDate = DateTime.UtcNow; db.TeamMembers.Add(teamMember); db.SaveChanges(); }
public ActionResult Add(AddTeamMemberRequestVM model) { // This method adds a user to the team // If user is new to the system, sends an email to user to signup and join, else add him to the team try { if (ModelState.IsValid) { var existingUser = repo.GetUser(model.EmailAddress); if (existingUser != null) { TeamMember teamMember = new TeamMember { MemberID = existingUser.ID, TeamID = TeamID, CreatedByID = UserID }; var result = repo.SaveTeamMember(teamMember); if (result.ID > 0) { return Json(new { Status = "Success",Message="Successfully added user to team" }); } } else { var teamMemberRequest = new TeamMemberRequest { EmailAddress = model.EmailAddress, CreatedByID = UserID }; teamMemberRequest.TeamID = model.TeamID; teamMemberRequest.ActivationCode = model.TeamID + "-" + Guid.NewGuid().ToString("n"); var resultNew = repo.SaveTeamMemberRequest(teamMemberRequest); if (resultNew.Status) { new UserService(repo,SiteBaseURL).SendJoinMyTeamEmail(teamMemberRequest); return Json(new { Status = "Success" }); } else { log.Debug(resultNew); } } } } catch (Exception ex) { log.Error(ex); } return Json(new { Status = "Error", Message = "Error adding user to team" }); }
public ActionResult Index() { try { var profiler = MiniProfiler.Current; var vm = new TeamProjectListVM(); List<Project> projectList = new List<Project>(); TeamMember teamMember = new TeamMember(); using (profiler.Step("Getting list of projects")) { projectList = repo.GetProjects(TeamID).ToList(); ; } using (profiler.Step("Getting Team member")) { teamMember = repo.GetTeamMember(UserID, TeamID); } using (profiler.Step("Mapping to ViewModels")) { foreach (var project in projectList) { var projectVM = new ProjectVM { Name = project.Name, ID = project.ID }; if (teamMember.DefaultProjectID.HasValue) projectVM.IsDefaultProject = project.ID == teamMember.DefaultProjectID.Value; vm.Projects.Add(projectVM); } } return View("~/Views/Projects/Index.cshtml",vm); } catch (Exception ex) { log.Error(ex); return View("Error"); } }
public ActionResult Create(TeamVM model) { try { if (ModelState.IsValid) { Team team = new Team { Name = model.Name, ID = model.Id }; bool isNew = (model.Id == 0); if (!isNew) { team = repo.GetTeam(model.Id); team.Name = model.Name; } else { team.CreatedByID = UserID; } var result = repo.SaveTeam(team); if (result != null) { if (isNew) { var teamMember = new TeamMember { MemberID = UserID, TeamID = team.ID, CreatedByID = UserID }; repo.SaveTeamMember(teamMember); } return Json(new { Status = "Success" }); } } return View(model); } catch(Exception ex) { log.Error("Error updating team "+model.Id, ex); } return Json(new { Status = "Error" }); }
public ActionResult JoinMyTeam(string id) { // For users who received an email with the join link to join a team. // The user must have created an account by now and coming back to this link after registration try { var teamMemberRequest = repo.GetTeamMemberRequest(id); if (teamMemberRequest != null) { var user = repo.GetUser(teamMemberRequest.EmailAddress); if (user.ID == UserID) { //Add to the team var teamMember = new TeamMember { MemberID = UserID, TeamID = teamMemberRequest.TeamID, CreatedByID = teamMemberRequest.CreatedByID }; repo.SaveTeamMember(teamMember); //Keep that team as default team for the user SetUserIDToSession(UserID, teamMemberRequest.TeamID, user.FirstName); var userService = new UserService(repo); userService.SaveActivityForNewUserJoinedTeam(teamMemberRequest, user, UserID, TeamID); //Correct user return View("WelcomeToTeam"); } } return View("NotFound"); } catch(Exception ex) { log.Error(ex); return View("Error"); } }
/* public TeamMemberRequest AddTeamMemberRequest(TeamMemberRequest request) { request.CreatedDate = DateTime.UtcNow; db.TeamMemberRequests.Add(request); db.SaveChanges(); return request; }*/ public TeamMember SaveTeamMember(TeamMember teamMember) { if (teamMember.ID == 0) { teamMember.CreatedDate = DateTime.UtcNow; db.TeamMembers.Add(teamMember); } else { db.Entry(teamMember).State = EntityState.Modified; } db.SaveChanges(); return teamMember; }