public async Task <IActionResult> PostUser([FromBody] UserRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var user = await _userHelper.GetUserByEmailAsync(request.Email);

            if (user != null)
            {
                return(BadRequest("This Email is already registered."));
            }

            user = new User
            {
                Email       = request.Email,
                FirstName   = request.FirstName,
                LastName    = request.LastName,
                PhoneNumber = request.Phone,
                UserName    = request.Email
            };

            var result = await _userHelper.AddUserAsync(user, user.Email);

            if (result != IdentityResult.Success)
            {
                return(BadRequest(result.Errors.FirstOrDefault().Description));
            }

            UserResponse userResponse = await _converterHelper.GetUSerResponseViewModelByEmail(user.Email);

            var userNew = await _userHelper.GetUserByEmailAsync(request.Email);

            await _userHelper.AddUserToRoleAsync(user, "Writer");

            var myToken = await _userHelper.GenerateEmailConfirmationTokenAsync(userNew);

            var tokenLink = Url.Action("ConfirmEmail", "Account", new
            {
                userid = user.Id,
                token  = myToken
            }, protocol: HttpContext.Request.Scheme);

            _mailHelper.SendMail(request.Email, "Prensa Estudiantil - Email confirmation", $"<h1>Prensa Estudiantil - Email Confirmation</h1>" +
                                 $"To allow the user, " +
                                 $"please click on this link:</br></br><a href = \"{tokenLink}\">Confirm Email</a>");

            return(Ok(userResponse));
        }