Ejemplo n.º 1
0
        public async Task <ActionResult <Board> > CreateBoard([FromBody] NewBoard newBoard)
        {
            var team = await _timelineContext.Teams.Include(x => x.TeamBoards)
                       .FirstOrDefaultAsync(x => x.Id == newBoard.TeamId);

            var user = await _timelineContext.Users.Include(x => x.BoardAffiliations)
                       .FirstOrDefaultAsync(x => x.Id == newBoard.UserId);

            if (team == null || user == null)
            {
                return(BadRequest());
            }

            Board board = new Board();

            board = newBoard.Board;

            await _timelineContext.Board.AddAsync(board);

            await _timelineContext.SaveChangesAsync();

            TeamBoard teamBoard = new TeamBoard {
                BoardId = board.Id, TeamId = newBoard.TeamId
            };
            BoardAffiliation boardAffiliation = new BoardAffiliation {
                BoardId = board.Id, UserId = newBoard.UserId
            };

            Console.WriteLine($"Creating team board {board.Id} : {newBoard.TeamId}");
            Console.WriteLine($"Creating board affiliation {board.Id} : {newBoard.UserId}");

            team.TeamBoards.Add(teamBoard);
            user.BoardAffiliations.Add(boardAffiliation);

            await _timelineContext.SaveChangesAsync();

            return(Ok(board));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> JoinBoard([FromBody] JoinBoard joinBoard)
        {
            var board = await _timelineContext.Board.Where(x => x.InviteToken == joinBoard.InviteToken)
                        .Include(x => x.BoardMembers).FirstOrDefaultAsync();

            var user = await _timelineContext.Users.Where(x => x.Id == joinBoard.UserId).FirstOrDefaultAsync();

            if (board == null || user == null)
            {
                return(BadRequest());
            }

            var boardAffiliation = new BoardAffiliation()
            {
                UserId = joinBoard.UserId, BoardId = board.Id
            };

            board.BoardMembers.Add(boardAffiliation);

            Audit audit = new Audit
            {
                Action    = AuditAction.UserJoinedBoard,
                Log       = ($"{boardAffiliation.UserId} joined board {boardAffiliation.BoardId}"),
                Origin    = AuditOrigin.BoardController,
                Team      = null,
                TimeStamp = DateTime.Now,
                User      = user
            };
            await _auditService.CreateAudit(audit);

            await _timelineContext.SaveChangesAsync();

            Console.WriteLine($"board affiliation {boardAffiliation.UserId} : {boardAffiliation.BoardId}");
            _log.LogInformation("Creating board affiliation {userId} : {TeamId}", boardAffiliation.UserId,
                                boardAffiliation.BoardId);

            return(Ok(board));
        }