public async Task <IActionResult> CreateBoard(BoardCreateModel boardModel)
        {
            var board = _mapper.Map <Board>(boardModel);

            if (_context.Boards.Any(b => b.UrlName.Equals(board.UrlName)))
            {
                return(BadRequest("Friendly name is already taken"));
            }

            var regUser = await _context.RegisteredUsers.FindAsync(User.GetUserId());

            board.OwnerId = regUser.Id;

            var boardUser = new BoardUser
            {
                RegisteredUserId = board.OwnerId,
                Name             = boardModel.UserDisplayName
            };

            board.Users = new List <BoardUser>
            {
                boardUser
            };

            await _context.Boards.AddAsync(board);

            await _context.SaveChangesAsync();

            return(CreatedAtAction(nameof(Board), new { id = board.Id }, _mapper.Map <BoardModel>(board)));
        }
        public ViewResult Create()
        {
            var model = new BoardCreateModel {
                Board = new PostBoardModel()
            };

            return(View(model));
        }
        public async Task <ActionResult> Create(BoardCreateModel boardCreateModel)
        {
            if (!ModelState.IsValid)
            {
                return(View(boardCreateModel));
            }

            GetBoardModel addedBoard = await Mediator.Send(new AddBoardCommand(boardCreateModel.Board));

            var file = Request.Form.Files.FirstOrDefault();

            if (file != null)
            {
                PostImageModel imageModel = _imageFileReader.ConvertImageFileToImageModel(file);
                await Mediator.Send(new AddBoardImageCommand(imageModel, addedBoard.Id));
            }

            return(RedirectToAction("Details", new { id = addedBoard.Id }));
        }