예제 #1
0
        public async Task <UserResponseModel> PutUser(
            int userId,
            [FromForm] UserRequestModel model,
            CancellationToken cancellationToken
            )
        {
            cancellationToken.ThrowIfCancellationRequested();

            var command = new UpdateUserCommand(
                userId,
                model.Login,
                model.Password,
                model.PersonId
                );

            await _mediator.Send(command, cancellationToken);

            var query = new FindUserByIdQuery(userId);

            var user = await _mediator.Send(query, cancellationToken);

            var response = _mapper.Map <UserResponseModel>(user);

            return(response);
        }
예제 #2
0
        public async Task <UserDetailsResponseModel> Get(CancellationToken cancellationToken)
        {
            cancellationToken.ThrowIfCancellationRequested();

            var userId = User.SubjectId();

            // TODO: add custom query that should not return null - Single()
            var query = new FindUserByIdQuery(userId);

            var user = await _mediator.Send(query, cancellationToken);

            var response = _mapper.Map <UserDetailsResponseModel>(user);

            return(response);
        }
예제 #3
0
        public async Task <UserResponseModel> PostUser(
            [FromForm] UserRequestModel model,
            CancellationToken cancellationToken
            )
        {
            cancellationToken.ThrowIfCancellationRequested();

            var command = _mapper.Map <CreateUserCommand>(model);

            var userId = await _mediator.Send(command, cancellationToken);

            var query = new FindUserByIdQuery(userId);
            var user  = await _mediator.Send(query, cancellationToken);

            var response = _mapper.Map <UserResponseModel>(user);

            return(response);
        }
예제 #4
0
        public async Task <UserDetailsResponseModel> GetUser(
            int userId,
            CancellationToken cancellationToken
            )
        {
            cancellationToken.ThrowIfCancellationRequested();

            var query = new FindUserByIdQuery(userId);

            var user = await _mediator.Send(query, cancellationToken);

            if (user == null)
            {
                throw new NotFoundException(nameof(user), userId);
            }

            var response = _mapper.Map <UserDetailsResponseModel>(user);

            return(response);
        }