public async Task <IActionResult> Register(RegisterViewModel model, string returnUrl = null) { ViewData["ReturnUrl"] = returnUrl; if (!ModelState.IsValid) { return(View(model)); } Wallet wallet = await walletService.CreateUserWallet(model.UserCurrency); DateTime.TryParseExact(model.DateOfBirth, "dd.MM.yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime birthDate); User user = new User { Cards = new List <CreditCard>(), Transactions = new List <Transaction>(), Email = model.Email, UserName = model.Email, CreatedOn = dateTimeProvider.Now, FirstName = model.FirstName, LastName = model.LastName, DateOfBirth = birthDate, Wallet = wallet, WalletId = wallet.Id, Role = UserRole.None, }; var result = await userManager.CreateAsync(user, model.Password); if (result.Succeeded) { await signInManager.SignInAsync(user, isPersistent : false); return(RedirectToAction(nameof(HomeController.Index), "Home")); } else { AddErrors(result); ViewData["UserExists"] = "User with that email is already registered!"; return(View(model)); //throw new InvalidOperationException("Could not register user!"); } }