Skip to content

Commit 57b7ebc

Browse files
committed
Register new user with UserManager
1 parent 7a15bf4 commit 57b7ebc

10 files changed

+906
-4
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
using Microsoft.AspNetCore.Http;
2+
using Microsoft.AspNetCore.Identity;
3+
using Microsoft.AspNetCore.Mvc;
4+
5+
namespace MoviesApi.Controllers
6+
{
7+
[Route("api/[controller]")]
8+
[ApiController]
9+
public class AccountController : ControllerBase
10+
{
11+
private readonly UserManager<AppUser> _userManager;
12+
public AccountController(UserManager<AppUser> userManager)
13+
{
14+
_userManager = userManager;
15+
}
16+
[HttpPost]
17+
public async Task<IActionResult> RegisterNewUser(dtoNewUser dtouser)
18+
{
19+
if (ModelState.IsValid)
20+
{
21+
//map dto with appuser
22+
AppUser appUser = new()
23+
{
24+
UserName = dtouser.userName,
25+
Email = dtouser.email,
26+
};
27+
IdentityResult result = await _userManager.CreateAsync(appUser, dtouser.password);
28+
if (result.Succeeded)
29+
{
30+
return Ok("Success");
31+
}
32+
else
33+
{
34+
foreach (var item in result.Errors)
35+
{
36+
ModelState.AddModelError("", item.Description);
37+
}
38+
}
39+
}
40+
return BadRequest(ModelState);
41+
}
42+
}
43+
}

MoviesApi/Dtos/dtoNewUser.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
namespace MoviesApi.Dtos
2+
{
3+
public class dtoNewUser
4+
{
5+
[Required]
6+
public string userName { get; set; } = string.Empty;
7+
8+
[Required]
9+
public string password { get; set; }
10+
11+
[Required]
12+
public string email { get; set; }
13+
14+
public string? phoneNumber { get; set; }
15+
}
16+
}

0 commit comments

Comments
 (0)