public async Task <IActionResult> EditAccount(AccountEditAccountViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = await this._userManager.FindByIdAsync(model.Id);

                if (user != null)
                {
                    user.FirstName   = model.FirstName;
                    user.LastName    = model.LastName;
                    user.Gendre      = model.Gendre;
                    user.DateOfBirth = model.DateOfBirth;
                    if (model.Password != null)
                    {
                        // This Method Hash password before assigning it to a user..
                        var password = this._userManager.PasswordHasher.HashPassword(user, model.Password);
                        user.PasswordHash = password;
                    }

                    var result = await this._userManager.UpdateAsync(user);

                    if (result.Succeeded)
                    {
                        return(RedirectToAction("Index", "Home"));
                    }
                    foreach (var error in result.Errors)
                    {
                        ModelState.AddModelError("", error.Description);
                    }
                }
            }

            return(View(model));
        }
        public async Task <IActionResult> EditAccount(string id)
        {
            if (!String.IsNullOrEmpty(id))
            {
                var user = await this._userManager.FindByIdAsync(id);

                if (user != null)
                {
                    var model = new AccountEditAccountViewModel()
                    {
                        Id          = user.Id,
                        FirstName   = user.FirstName,
                        LastName    = user.LastName,
                        DateOfBirth = user.DateOfBirth,
                        Email       = user.Email,
                        Gendre      = user.Gendre
                    };
                    return(View(model));
                }
            }
            return(RedirectToAction("Index", "Home"));
        }