Exemplo n.º 1
0
        public async Task <ActionResult <BoardAdminViewModel> > Admin(int id)
        {
            var user = await Mediator.Send(new GetAuthenticatedUserQuery());

            var board = await Mediator.Send(new GetBoardQuery(id));

            bool userCreatedBoard = board.CreatorId == user.Id;

            if (userCreatedBoard || user.BoardsModerating.Contains(id))
            {
                var moderatorPagingParams = new PagingParams {
                    PageNumber = 1, PageSize = 5
                };
                var moderators = await Mediator.Send(new GetPublicUsersByIdsQuery(board.ModeratorIds, moderatorPagingParams));

                var viewModel = new BoardAdminViewModel
                {
                    Board            = board,
                    ModeratorPage    = new FrontendPage <GetPublicUserModel>(moderators),
                    UserCreatedBoard = board.CreatorId == user.Id
                };

                return(View(viewModel));
            }
            else
            {
                // Redirect if not creator or moderator of board
                return(RedirectToAction("Details", new { id }));
            }
        }
Exemplo n.º 2
0
        public async Task <ActionResult> AddModerator(BoardAdminViewModel model)
        {
            try
            {
                var toAddModerator = await Mediator.Send(new GetUserByUsernameQuery(model.ModeratorAddedUsername));

                var updatedBoard = await Mediator.Send(new AddModeratorCommand(model.Board.Id, toAddModerator.Id));

                return(RedirectToAction("Admin", new { id = updatedBoard.Id }));
            }
            catch (NotFoundException)
            {
                return(RedirectToAction("Admin", new { id = model.Board.Id }));
            }
        }