public async Task <IActionResult> Register([FromBody] UserDto userDto,
                                                   CancellationToken cancellationToken = default)
        {
            var success = await userService.CreateUser(userDto, cancellationToken);

            if (!success)
            {
                return(UnprocessableEntity("User cannot be created"));
            }

            try
            {
                await emailService.SendEmail(EmailGenerator
                                             .RegistrationMessage(userDto.Email), cancellationToken);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }

            var token = userService.GenerateJwt(userDto);

            return(Ok(new { token }));
        }