Skip to content

Commit a416ebc

Browse files
committed
Working register view.
1 parent e574e06 commit a416ebc

File tree

5 files changed

+95
-61
lines changed

5 files changed

+95
-61
lines changed

Identity.API/Controllers/AccountController.cs

Lines changed: 1 addition & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
33

44
namespace Identity.API.Controllers;
5-
using eShop.Identity.API.Models.AccountViewModels;
5+
66
using Identity.API.Models.Account;
77

88
[SecurityHeaders]
@@ -38,64 +38,6 @@ public AccountController(
3838
_context = context;
3939
}
4040

41-
[HttpGet]
42-
public IActionResult Register()
43-
{
44-
return View();
45-
}
46-
47-
[HttpPost]
48-
[ValidateAntiForgeryToken]
49-
public async Task<IActionResult> RegisterCreate(RegisterViewModel model)
50-
{
51-
if (ModelState.IsValid)
52-
{
53-
var user = new ApplicationUser
54-
{
55-
UserName = model.Email,
56-
Email = model.Email,
57-
CardNumber = model.CardNumber,
58-
SecurityNumber = model.SecurityNumber,
59-
Expiration = model.Expiration,
60-
CardHolderName = model.CardHolderName,
61-
CardType = model.CardType,
62-
Street = model.Street,
63-
City = model.City,
64-
State = model.State,
65-
Country = model.Country,
66-
ZipCode = model.ZipCode,
67-
Name = model.Name,
68-
LastName = model.LastName
69-
};
70-
var result = await _userManager.CreateAsync(user, model.Password);
71-
if (result.Succeeded)
72-
{
73-
await _signInManager.SignInAsync(user, isPersistent: false);
74-
return RedirectToAction(nameof(HomeController.Index), "Home");
75-
}
76-
foreach (var error in result.Errors)
77-
{
78-
ModelState.AddModelError(string.Empty, error.Description);
79-
}
80-
}
81-
82-
// If we got this far, something failed, redisplay form
83-
return View(model);
84-
}
85-
86-
//[HttpPost]
87-
//[ValidateAntiForgeryToken]
88-
//public async Task<IActionResult> RegisterCreate([Bind("Id,Email,Password,ConfirmPassword")] RegisterViewModel registerViewModel)
89-
//{
90-
// if (ModelState.IsValid)
91-
// {
92-
// _context.Add(registerViewModel);
93-
// await _context.SaveChangesAsync();
94-
// return RedirectToAction(nameof(Index));
95-
// }
96-
// return View(registerViewModel);
97-
//}
98-
9941
/// <summary>
10042
/// Entry point into the login workflow
10143
/// </summary>

Identity.API/Controllers/RegisterViewModelsController.cs

Lines changed: 52 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
namespace Identity.API.Controllers;
2+
23
using System.Linq;
34
using System.Threading.Tasks;
45
using Microsoft.AspNetCore.Mvc;
@@ -9,10 +10,15 @@
910
public class RegisterViewModelsController : Controller
1011
{
1112
private readonly ApplicationDbContext _context;
13+
private readonly UserManager<ApplicationUser> _userManager;
14+
private readonly SignInManager<ApplicationUser> _signInManager;
1215

13-
public RegisterViewModelsController(ApplicationDbContext context)
16+
public RegisterViewModelsController(ApplicationDbContext context, UserManager<ApplicationUser> userManager, SignInManager<ApplicationUser> signInManager)
1417
{
1518
_context = context;
19+
_userManager = userManager;
20+
_signInManager = signInManager;
21+
_context = context;
1622
}
1723

1824
// GET: RegisterViewModels
@@ -39,6 +45,51 @@ public async Task<IActionResult> Details(int? id)
3945
return View(registerViewModel);
4046
}
4147

48+
[HttpGet]
49+
public IActionResult Register()
50+
{
51+
return View();
52+
}
53+
54+
[HttpPost]
55+
[ValidateAntiForgeryToken]
56+
public async Task<IActionResult> RegisterCreate(RegisterViewModel model)
57+
{
58+
if (ModelState.IsValid)
59+
{
60+
var user = new ApplicationUser
61+
{
62+
UserName = model.Email,
63+
Email = model.Email,
64+
CardNumber = model.CardNumber,
65+
SecurityNumber = model.SecurityNumber,
66+
Expiration = model.Expiration,
67+
CardHolderName = model.CardHolderName,
68+
CardType = model.CardType,
69+
Street = model.Street,
70+
City = model.City,
71+
State = model.State,
72+
Country = model.Country,
73+
ZipCode = model.ZipCode,
74+
Name = model.Name,
75+
LastName = model.LastName
76+
};
77+
var result = await _userManager.CreateAsync(user, model.Password);
78+
if (result.Succeeded)
79+
{
80+
await _signInManager.SignInAsync(user, isPersistent: false);
81+
return RedirectToAction(nameof(HomeController.Index), "Home");
82+
}
83+
foreach (var error in result.Errors)
84+
{
85+
ModelState.AddModelError(string.Empty, error.Description);
86+
}
87+
}
88+
89+
// If we got this far, something failed, redisplay form
90+
return View(model);
91+
}
92+
4293
// GET: RegisterViewModels/Create
4394
public IActionResult Create()
4495
{

Identity.API/Views/Account/Login.cshtml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
@model LoginViewModel
2+
@using Identity.API.Controllers
23

34
<div class="login-page">
45
<div class="container">
@@ -37,7 +38,7 @@
3738
<p>The default users are alice/bob, password: Pass123$</p>
3839
</div>
3940
<button class="btn btn-primary" name="button" value="login">Login</button>
40-
<button class="btn btn-primary" name="button" value="registercreate" asp-action="RegisterCreate">Register</button>
41+
<button class="btn btn-primary" name="button" value="registercreate" asp-controller="RegisterViewModels" asp-action="RegisterCreate">Register</button>
4142
</div>
4243
</form>
4344
</div>

Identity.API/Views/Account/RegisterCreate.cshtml renamed to Identity.API/Views/RegisterViewModels/RegisterCreate.cshtml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,46 @@
4949
<input asp-for="CardNumber" class="form-control" />
5050
<span asp-validation-for="CardNumber" class="text-danger"></span>
5151
</div>
52+
<div class="form-group">
53+
<label asp-for="CardHolderName" class="control-label"></label>
54+
<input asp-for="CardHolderName" class="form-control" />
55+
<span asp-validation-for="CardHolderName" class="text-danger"></span>
56+
</div>
57+
<div class="form-group">
58+
<label asp-for="SecurityNumber" class="control-label"></label>
59+
<input asp-for="SecurityNumber" class="form-control" />
60+
<span asp-validation-for="SecurityNumber" class="text-danger"></span>
61+
</div>
62+
<div class="form-group">
63+
<label asp-for="Expiration" class="control-label"></label>
64+
<input asp-for="Expiration" class="form-control" />
65+
<span asp-validation-for="Expiration" class="text-danger"></span>
66+
</div>
67+
<div class="form-group">
68+
<label asp-for="Street" class="control-label"></label>
69+
<input asp-for="Street" class="form-control" />
70+
<span asp-validation-for="Street" class="text-danger"></span>
71+
</div>
72+
<div class="form-group">
73+
<label asp-for="City" class="control-label"></label>
74+
<input asp-for="City" class="form-control" />
75+
<span asp-validation-for="City" class="text-danger"></span>
76+
</div>
77+
<div class="form-group">
78+
<label asp-for="State" class="control-label"></label>
79+
<input asp-for="State" class="form-control" />
80+
<span asp-validation-for="State" class="text-danger"></span>
81+
</div>
82+
<div class="form-group">
83+
<label asp-for="Country" class="control-label"></label>
84+
<input asp-for="Country" class="form-control" />
85+
<span asp-validation-for="Country" class="text-danger"></span>
86+
</div>
87+
<div class="form-group">
88+
<label asp-for="ZipCode" class="control-label"></label>
89+
<input asp-for="ZipCode" class="form-control" />
90+
<span asp-validation-for="ZipCode" class="text-danger"></span>
91+
</div>
5292
<div class="form-group">
5393
<input type="submit" value="Create" class="btn btn-primary" />
5494
</div>

Identity.API/Views/Account/RegisterDetails.cshtml renamed to Identity.API/Views/RegisterViewModels/RegisterDetails.cshtml

File renamed without changes.

0 commit comments

Comments
 (0)