public IActionResult EditCardPosition([FromBody] EditCardPositionDto cardDto) { var userId = User.GetUserId(); var editedCard = _cardService.EditCardPosition(cardDto, userId); if (editedCard == null) { return(NotFound()); } return(NoContent()); }
public CardDto EditCardPosition(EditCardPositionDto cardDto, string userId) { if (!_cardRepository.IsOwner(cardDto.Id, userId)) { return(null); } if (!_listRepository.IsMember(cardDto.ListId, userId) || !_listRepository.IsMember(cardDto.NewListId, userId)) { return(null); } var cardToEdit = _cardRepository.GetCard(cardDto.Id); if (cardToEdit.ListId != cardDto.ListId) { return(null); } List <Card> cardsWithPositionToUpdate; if (cardDto.ListId != cardDto.NewListId) { cardsWithPositionToUpdate = GetCardsWithPositionToDecrease(cardToEdit.ListId, cardToEdit.Position); cardsWithPositionToUpdate.AddRange(GetCardsWithPositionToIncrease(cardDto.NewListId, cardDto.NewPosition - 1)); } else { cardsWithPositionToUpdate = GetCardsWithPositionToUpdate(cardDto.ListId, cardToEdit.Position, cardDto.NewPosition); } cardToEdit.ListId = cardDto.NewListId; cardToEdit.Position = cardDto.NewPosition; cardsWithPositionToUpdate.Add(cardToEdit); _cardRepository.UpdateCardsPosition(cardsWithPositionToUpdate); var result = _mapper.Map <CardDto>(cardToEdit); return(result); }