private async Task <API.Models.v1.Response.UserResponse> AddUser(
            API.Models.v1.Request.CreateUserRequest request)
        {
            if (request == null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            var addUserCommand = _mapper.Map <AddUserCommand>(request);

            var addedUserId = await _mediator.Send(addUserCommand);

            return(new UserResponse {
                Id = addedUserId
            });
        }
        public async Task <IActionResult> Add(
            [FromBody] API.Models.v1.Request.CreateUserRequest request)
        {
            if (request == null)
            {
                return(BadRequest());
            }

            var response = await AddUser(request);

            return(CreatedAtAction(nameof(Get), new { id = response.Id }, response));

            /*
             * ToDo
             * As CreatedAtRoute and CreatedAtAction keep failing, I'm tempted to return a 201 and
             * manually add the expected 'Location' header.
             */
        }