public override IEnumerable <Team> Execute(GetUserConfirmedTeamsQuery query,
                                            ICommandAndQueryDispatcher dispatcher)
 {
     return(db.Teams
            .Include(x => x.Owner)
            .Include(x => x.Members.Select(m => m.User))
            .Where(
                x =>
                x.Owner.Id == query.UserId ||
                x.Members.Where(m => m.Status == MembershipStatus.Confimed)
                .Select(m => m.User.Id)
                .Contains(query.UserId))
            .ToList());
 }
Esempio n. 2
0
        //
        // GET: /Team/Details/5
        public ActionResult Details(int id)
        {
            var  query = new GetUserConfirmedTeamsQuery(HttpContext.User.Identity.GetUserId());
            Team team  = dispatcher.ExecuteQuery(query).FirstOrDefault(t => t.Id == id);

            if (team != null)
            {
                TeamDetailsViewModel teamViewModel = Mapper.Map <Team, TeamDetailsViewModel>(team);
                ApplicationUser      currentUser   =
                    dispatcher.ExecuteQuery(new GetUserByIdQuery(HttpContext.User.Identity.GetUserId()));
                teamViewModel.IsEditable = CurrentUserIsOwnerOrTeamManager(currentUser, teamViewModel);
                return(View(teamViewModel));
            }
            ViewBag.ErrorMessage = "You are not authorized to view this teams details";
            return(View("NotAMemberOfATeam"));
        }