Exemple #1
0
        public async Task <IActionResult> DeleteAsync(string userId, string boardId, [FromServices] ITableMessageQueueStorageRepository deletedBoardQueue)
        {
            // Delete the data
            var deletedEntity = await _boardRepository.RemoveAsync(userId, boardId);

            // if the user is the board owner, queue the "sync operation".
            // This will remove all cards and associations to this board.
            if (deletedEntity.OwnerId == userId) // TODO: validate/rethink/refactor this logic if needed
            {
                await deletedBoardQueue.AddMessageAsync(new TableMessage
                {
                    PartitionKey = deletedEntity.PartitionKey,
                    RowKey       = deletedEntity.RowKey
                });
            }

            // Create the return contract
            var deletedBoard = new Board
            {
                Id      = deletedEntity.RowKey,
                Name    = deletedEntity.Name,
                OwnerId = deletedEntity.OwnerId
            };

            // Return 200 OK
            return(Ok(deletedBoard));
        }
Exemple #2
0
        public async Task <Card> DeleteAsync(string boardId, string cardId)
        {
            var deletedEntity = await _cardRepository.RemoveAsync(boardId, cardId);

            var deletedCard = _mapper.Map <Card>(deletedEntity);

            return(deletedCard);
        }
        public async Task <User> DeleteAsync(string userId)
        {
            // Delete the user
            var removedEntity = await _userRepository.RemoveAsync(UserEntity.DefaultPartitionKey, userId);

            // Queue the "user deleted" message
            await _queuesService.UserDeletedQueue.AddMessageAsync(new TableMessage
            {
                PartitionKey = removedEntity.PartitionKey,
                RowKey       = removedEntity.RowKey
            });

            // Return the deleted user
            var removedUser = _mapper.Map <User>(removedEntity);

            return(removedUser);
        }