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)); }
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)); }