public async Task <User> InsertAsync(User user)
        {
            // Generate an arbitrary Id if the user id was not provided.
            if (string.IsNullOrWhiteSpace(user.Id))
            {
                user.Id = Guid.NewGuid().ToString();
            }

            // Convert the user to its entity equivalent
            var entity = _mapper.Map <UserEntity>(user);

            // Create the user
            var insertedEntity = await _userRepository.InsertOrReplaceAsync(entity);

            // Queue the "user created" message
            await _queuesService.UserCreatedQueue.AddMessageAsync(new TableMessage
            {
                PartitionKey = insertedEntity.PartitionKey,
                RowKey       = insertedEntity.RowKey
            });

            // Return the newly created user
            var insertedUser = _mapper.Map <User>(insertedEntity);

            return(insertedUser);
        }
示例#2
0
        public async Task <Ninja> CreateAsync(Ninja ninja)
        {
            var entityToCreate = _ninjaMappingService.Map(ninja);
            var createdEntity  = await _ninjaEntityTableStorageRepository.InsertOrReplaceAsync(entityToCreate);

            var createNinja = _ninjaMappingService.Map(createdEntity);

            return(createNinja);
        }
示例#3
0
        public async Task <Card> InsertAsync(Card card)
        {
            // Generate an arbitrary Id if the card id was not provided.
            if (string.IsNullOrWhiteSpace(card.Id))
            {
                card.Id = Guid.NewGuid().ToString();
            }

            var entityToCreate = _mapper.Map <CardEntity>(card);
            var createdEntity  = await _cardRepository.InsertOrReplaceAsync(entityToCreate);

            var createCard = _mapper.Map <Card>(createdEntity);

            return(createCard);
        }
示例#4
0
        public async Task <IActionResult> PostAsync(string userId, [FromBody] Board board)
        {
            // Validate input and return 400 Bad Request if invalid
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            // Create the valid data entity
            var rowKey = string.IsNullOrWhiteSpace(board.Id) ? Guid.NewGuid().ToString() : board.Id;
            var entity = new BoardEntity
            {
                PartitionKey = userId,
                RowKey       = rowKey,
                Name         = board.Name,
                OwnerId      = board.OwnerId
            };

            // Insert the data
            var createdEntity = await _boardRepository.InsertOrReplaceAsync(entity);

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

            // Return 201 Created
            return(CreatedAtAction(
                       nameof(GetAsync), new
            {
                userId = userId,
                boardId = createdBoard.Id
            },
                       createdBoard
                       ));
        }