public async Task <IActionResult> Register(Registermodal userdetail)
        {
            if (string.IsNullOrWhiteSpace(userdetail.Email) || string.IsNullOrWhiteSpace(userdetail.FirstName) || string.IsNullOrWhiteSpace(userdetail.password) || string.IsNullOrWhiteSpace(userdetail.lastName))
            {
                return(BadRequest("some entries are nulll"));
            }
            if (userdetail.password != userdetail.confirmPassword)
            {
                return(BadRequest("password and conformpassword does not match"));
            }
            if (string.IsNullOrWhiteSpace(userdetail.role))
            {
                return(BadRequest("please select role"));
            }
            if (!await _roleManger.RoleExistsAsync(userdetail.role))
            {
                await _roleManger.CreateAsync(new IdentityRole(userdetail.role));
            }

            AppUser user = new AppUser
            {
                UserName  = userdetail.Email.Split("@")[0],
                Email     = userdetail.Email,
                firstName = userdetail.FirstName,
                LastName  = userdetail.lastName,
                Role      = userdetail.role
            };
            AppUser foundUser = await _userManager.FindByEmailAsync(user.Email);

            if (foundUser != null)
            {
                return(BadRequest("The user already exist"));
            }
            IdentityResult result = await _userManager.CreateAsync(user, userdetail.password);

            if (result.Succeeded)
            {
                await _userManager.AddToRoleAsync(user, userdetail.role);

                var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                var callbackurl = Url.Action("ConfirmEmail", "Account", new { userid = user.Id, token = code });
                Log.Information($"https://localhost:5001{callbackurl}");

                Emailservices.send(user.Email, "Confirmation Email", $"Click <a href='https://localhost:5001{callbackurl}'>here</a> to verify your email");
                return(Ok("Registerd succesfully please confirm the email"));
            }
            else
            {
                return(BadRequest("Error occured while creating user"));
            }
        }
        public async Task <IActionResult> Forgotpassword(Forgotpasswordmodal userdata)
        {
            var user = await _userManager.FindByEmailAsync(userdata.Email);

            if (user == null)
            {
                return(BadRequest("The dosen't Exist"));
            }
            else
            {
                if (await _userManager.IsEmailConfirmedAsync(user))
                {
                    var token = await _userManager.GeneratePasswordResetTokenAsync(user);

                    Emailservices.send(user.Email, "RestPassword Email", $"Click <a href='https://localhost:5001/RestPassword/?token={token}'>here</a> to Rest your password");
                    return(Ok("Please Check your Email To restPassword"));
                }
                else
                {
                    return(BadRequest("Please confirm the user"));
                }
            }
        }