public async Task <IActionResult> register(Registerview model)
        {
            if (ModelState.IsValid)//means when we pass variable from model/form data
            {
                var user = new ApplicationUser {
                    UserName  = model.Email,
                    Email     = model.Email,
                    FirstName = model.FirstName,
                    LastName  = model.LastName
                };
                var result = await userManager.CreateAsync(user, model.Password); //registration /insert data

                if (result.Succeeded)                                             //if create user will be successful then sign in that account
                {
                    await signManager.SignInAsync(user, isPersistent : false);    //is persistent for data save as session

                    return(RedirectToAction("index", "Home"));                    //means that it will direct to home controller and go to index action/index page
                }
                //else
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError("", error.Description);
                }
            }
            return(View(model));
        }
        public async Task <IActionResult> RegisterAsync([FromBody] Registerview model)
        {
            if (ModelState.IsValid)
            {
                var result = await _userService.RegisterUserAsync(model);

                if (result.IsSuccess)
                {
                    return(Ok(result));//from userInterface Repository
                }
                return(BadRequest(result));
            }
            return(BadRequest("Errors occured your forms is not valid"));
        }
        public async Task <UserManagerResponse> RegisterUserAsync(Registerview model)
        {
            if (model == null)
            {
                throw new NullReferenceException("Register Model is null");
            }
            if (model.Password != model.ConfirmPassword)
            {
                return new UserManagerResponse
                       {
                           Message   = "Confirm Password does not match with Password",
                           IsSuccess = false,
                       }
            }
            ;
            var identityUser = new ApplicationUser
            {
                Email     = model.Email,
                UserName  = model.Email,
                FirstName = model.FirstName,
                LastName  = model.LastName
            };
            var result = await _userManager.CreateAsync(identityUser, model.Password);

            if (result.Succeeded)
            {
                //
                return(new UserManagerResponse
                {
                    Message = "User Created Successfuly",
                    IsSuccess = true,
                });

                //
            }
            return(new UserManagerResponse
            {
                Message = "User did not Create",
                IsSuccess = false,
                Erros = result.Errors.Select(e => e.Description),
            });
        }