public async Task <ActionResult> Update(PostBoardViewModel model, int boardId) { bool boardExists = await _boardRepository.Exists(boardId); if (!boardExists) { return(V1NotFound("Board not found")); } int userId = int.Parse(HttpContext.User.Identity.Name); BoardMember member = await _memberRepository.GetByBoardIdAndUserId(boardId, userId); if (member is null || !member.IsAdmin) { return(Forbid()); } Board board = new Board { Id = boardId, Title = model.Title, ModifiedOn = _dateTimeProvider.UtcNow() }; await _boardRepository.Update(board); return(NoContent()); }
public async Task <IActionResult> PostBoard([FromBody] PostBoardViewModel model) { var board = new Board { ParentId = model.ParentId, Link = model.Link, Maker = model.Maker, Title = model.Title, Cells = model.Cells }; _database.Boards.Add(board); await _database.SaveChangesAsync(); return(Ok(new { board.Id })); }
public async Task <ActionResult <BoardViewModel> > Create(PostBoardViewModel model) { DateTime createdDate = _dateTimeProvider.UtcNow(); int userId = int.Parse(HttpContext.User.Identity.Name); var user = new User { Id = userId }; var board = new Board { Title = model.Title, CreatedBy = user, CreatedOn = createdDate, ModifiedOn = createdDate }; Board createdBoard = await _boardRepository.Insert(board); var boardAdmin = new BoardMember { Board = createdBoard, User = user, IsAdmin = true }; await _memberRepository.Insert(boardAdmin); object routeValues = new { version = "1", boardId = createdBoard.Id }; var boardViewModel = new BoardViewModel { Id = createdBoard.Id, Title = createdBoard.Title, CreatedOn = createdBoard.CreatedOn, ModifiedOn = createdBoard.ModifiedOn }; return(CreatedAtAction(actionName: nameof(Show), routeValues, value: boardViewModel)); }