public async Task <IActionResult> CreateUserAsync([FromBody] RequestUserDto user, [FromHeader(Name = "Accept")] string mediaType)
        {
            if (!MediaTypeHeaderValue.TryParse(mediaType, out MediaTypeHeaderValue parsedMediaType))
            {
                return(BadRequest());
            }

            var userDto = await _userService.CreateUserAsync(user);

            if (userDto == null)
            {
                return(NotFound());
            }

            var includeLinks = parsedMediaType.SubTypeWithoutSuffix.EndsWith("hateoas", StringComparison.InvariantCultureIgnoreCase);

            if (includeLinks)
            {
                IEnumerable <LinkDto> links = new List <LinkDto>();
                links = CreateUserLinks(userDto.Id);
                var userWithLinks = _mapper.Map <ResponseUserLinksDto>(userDto);
                userWithLinks.Links = links;

                return(Ok(userWithLinks));
            }

            return(CreatedAtRoute("GetUser", new { userId = userDto.Id }, userDto));
        }
        public async Task <ResponseUserDto> CreateUserAsync(RequestUserDto user)
        {
            var userEntity = _mapper.Map <User>(user);

            userEntity.Id = Guid.NewGuid();

            var createdEntity = await _userRepository.CreateUserAsync(userEntity);

            var responseDto = _mapper.Map <ResponseUserDto>(createdEntity);

            return(responseDto);
        }