Ejemplo n.º 1
0
        public async Task <IActionResult> AddList(string userId, string boardId, ListForCreationDto listForCreationDto)
        {
            if (userId != User.FindFirst(ClaimTypes.NameIdentifier).Value)
            {
                return(Unauthorized());
            }

            var currentUser = await _userManager.FindByIdAsync(userId);

            if (currentUser == null)
            {
                return(Unauthorized());
            }

            var board = await _repo.GetBoard(boardId);

            if (board == null)
            {
                return(BadRequest("board not found, refresh the page."));
            }

            if (!await _repo.UserInBoard(userId, boardId))
            {
                return(Unauthorized());
            }

            List list = _mapper.Map <List>(listForCreationDto);

            string listId = DateTime.Now.ToFileTime().ToString();

            listId = listId.Substring(listId.Length / 2, listId.Length / 4);

            list.Order  = board.Lists.Count;
            list.ListId = boardId + listId;

            var listToReturn = _mapper.Map <ListToReturnDto>(list);

            board.Lists.Add(list);

            if (await _repo.SaveAll())
            {
                return(Ok(new { list = listToReturn }));
            }

            return(BadRequest("Couldn't add the list. try refreshing the page."));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> Create(string userId, BoardForCreationDto boardForCreation)
        {
            if (userId != User.FindFirst(ClaimTypes.NameIdentifier).Value)
            {
                return(Unauthorized());
            }

            var currentUser = await _userManager.FindByIdAsync(userId);

            if (currentUser == null)
            {
                return(Unauthorized());
            }

            string boardId = DateTime.Now.ToFileTime().ToString();

            boardId = boardId.Substring(boardId.Length / 2, boardId.Length / 4) + userId.Substring(2, 4);

            Board board = new Board
            {
                OwnerId   = userId,
                BoardName = boardForCreation.Name,
                BoardId   = boardId
            };

            currentUser.UserBoards = new List <UserBoards>
            {
                new UserBoards
                {
                    User  = currentUser,
                    Board = board
                }
            };

            _repo.Add(board);

            if (await _repo.SaveAll())
            {
                var boardToReturn = _mapper.Map <BoardToReturnDto>(board);
                return(Ok(new { board = boardToReturn }));
            }

            return(BadRequest("Something is wrong, please try again."));
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> AddCard([FromRoute] CardsControllerParamsDto paramsDto, CardToAddDto cardDto)
        {
            if (paramsDto.UserId != User.FindFirst(ClaimTypes.NameIdentifier).Value)
            {
                return(Unauthorized());
            }

            if (!await _repo.UserInBoard(paramsDto.UserId, paramsDto.BoardId))
            {
                return(Unauthorized());
            }

            var list = await _repo.GetList(paramsDto.BoardId, paramsDto.ListId);

            if (list == null)
            {
                return(BadRequest("Board or list not found, refresh the page."));
            }

            Card card = _mapper.Map <Card>(cardDto);

            string cardId = DateTime.Now.ToFileTime().ToString();

            cardId = cardId.Substring(cardId.Length / 2, cardId.Length / 4);

            card.Order  = list.Cards.Count;
            card.CardId = paramsDto.ListId + cardId;

            list.Cards.Add(card);

            if (await _repo.SaveAll())
            {
                var cardToReturn = _mapper.Map <CardToReturnDto>(card);
                cardToReturn.ListId = paramsDto.ListId;

                return(Ok(cardToReturn));
            }

            return(BadRequest("Couldn't add the card. try refreshing the page."));
        }