public async Task <IActionResult> Index(string teamName) { var teamId = userSessionHelper.TeamId; var vm = new DashBoardVm { }; if (!string.IsNullOrEmpty(teamName)) { var team = teamManager.GetTeam(teamName); if (team != null) { //If the current user who is accessing is already a member of this team, if (teamManager.DoesCurrentUserBelongsToTeam(this.userSessionHelper.UserId, team.Id)) { vm.IsCurrentUserTeamMember = true; //userSessionHelper.SetTeamId(team.Id); //await userAccountManager.SetDefaultTeam(userSessionHelper.UserId, teamId); } else { // He is either accessing a public dashboard or TRYING to peep into a private dashboard if (team.IsPublic) { teamId = team.Id; vm.TeamKey = teamId.GetHashCode(); } else { return(View("NotFound")); } } } else { return(View("NotFound")); } } vm.TeamId = teamId; if (userSessionHelper.TeamId > 0) { if (teamManager.DoesCurrentUserBelongsToTeam(this.userSessionHelper.UserId, teamId)) { vm.IsCurrentUserTeamMember = true; var myIssues = await issueManager.GetIssuesAssignedToUser(this.userSessionHelper.UserId); vm.IssuesAssignedToMe = myIssues; } } var issues = this.issueManager.GetIssuesGroupedByStatusGroup(teamId, 25).SelectMany(f => f.Issues).OrderByDescending(s => s.CreatedDate).ToList(); vm.RecentIssues = issues; vm.Projects = this.projectManager.GetProjects(teamId).ToList(); return(View(vm)); }
public async Task <JsonResult> SwitchTeam(int id) { if (!teamManager.DoesCurrentUserBelongsToTeam(this.userSessionHelper.UserId, id)) { return(Json(new { Status = "Error", Message = "You do not belong to this team!" })); } userSessionHelper.SetTeamId(id); await userAccountManager.SetDefaultTeam(userSessionHelper.UserId, id); return(Json(new { Status = "Success" })); }
public async Task <JsonResult> SwitchTeam(int id) { try { if (!_teamManager.DoesCurrentUserBelongsToTeam(this._userSessionHelper.UserId, id)) { tc.TrackEvent("Trying to access some one else's team"); return(Json(new { Status = "Error", Message = "You do not belong to this team!" })); } _userSessionHelper.SetTeamId(id); await _userAccountManager.SetDefaultTeam(_userSessionHelper.UserId, id); return(Json(new { Status = "Success" })); } catch (Exception ex) { tc.TrackException(ex); return(Json(new { Status = "Error", Message = "Error processing your request" })); } }
public async Task <IActionResult> Index(string teamName) { tc.TrackEvent("Dashboard view"); var vm = new DashBoardVm { }; try { var teamId = _userSessionHelper.TeamId; if (!string.IsNullOrEmpty(teamName)) { var team = _teamManager.GetTeam(teamName); if (team != null) { //If the current user who is accessing is already a member of this team, if (_teamManager.DoesCurrentUserBelongsToTeam(this._userSessionHelper.UserId, team.Id)) { vm.IsCurrentUserTeamMember = true; //userSessionHelper.SetTeamId(team.Id); //await userAccountManager.SetDefaultTeam(userSessionHelper.UserId, teamId); } else { // He is either accessing a public dashboard or TRYING to peep into a private dashboard if (team.IsPublic) { teamId = team.Id; vm.TeamKey = teamId.GetHashCode(); tc.TrackEvent("Public dashboard view-" + team.Name.ToLower()); } else { return(View("NotFound")); } } } else { return(View("NotFound")); } } vm.TeamId = teamId; if (_userSessionHelper.TeamId > 0) { if (_teamManager.DoesCurrentUserBelongsToTeam(this._userSessionHelper.UserId, teamId)) { vm.IsCurrentUserTeamMember = true; var myIssues = await _issueManager.GetIssuesAssignedToUser(this._userSessionHelper.UserId); vm.OverDueIssuesAssignedToMe = myIssues .Where(d => d.DueDate != null && d.DueDate.Value < DateTime.Now) .Where(c => c.Status.Code != "Completed" || c.Status.Code != "Closed").OrderBy(f => f.DueDate); vm.IssuesAssignedToMe = myIssues; } } var issues = this._issueManager.GetIssuesGroupedByStatusGroup(teamId, 25) .SelectMany(f => f.Issues) .OrderByDescending(s => s.CreatedDate) .ToList(); vm.RecentIssues = issues; vm.Projects = this._projectManager.GetProjects(teamId).ToList(); } catch (Exception ex) { tc.TrackException(ex); } return(View(vm)); }