Skip to content

Commit 414e7c9

Browse files
committed
changed controllers in recipe to primary constructors
1 parent 277346b commit 414e7c9

4 files changed

Lines changed: 85 additions & 120 deletions

File tree

end/chapter03/IdentitySetup/Controllers/AccountController.cs

Lines changed: 34 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -2,54 +2,47 @@
22
using Microsoft.AspNetCore.Mvc;
33
using events.Models;
44

5-
namespace events.Controllers
5+
namespace events.Controllers;
6+
7+
[ApiController]
8+
[Route("api/[controller]")]
9+
public class AccountController(UserManager<IdentityUser> userManager) : ControllerBase
610
{
7-
[ApiController]
8-
[Route("api/[controller]")]
9-
public class AccountController : ControllerBase
11+
[HttpPost("register")]
12+
[ProducesResponseType(StatusCodes.Status200OK)]
13+
[ProducesResponseType(StatusCodes.Status400BadRequest)]
14+
public async Task<IActionResult> Register(RegisterDTO model)
1015
{
11-
private readonly UserManager<IdentityUser> _userManager;
12-
13-
public AccountController(UserManager<IdentityUser> userManager)
14-
{
15-
_userManager = userManager;
16+
if (!ModelState.IsValid)
17+
{
18+
return BadRequest(ModelState);
1619
}
17-
18-
[HttpPost("register")]
19-
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
20-
public async Task<IActionResult> Register(RegisterDTO model)
20+
21+
var user = new IdentityUser { UserName = model.Email, Email = model.Email };
22+
var result = await userManager.CreateAsync(user, model.Password);
23+
24+
if (result.Succeeded)
2125
{
22-
if (!ModelState.IsValid)
23-
{
24-
return BadRequest(ModelState);
25-
}
26-
27-
var user = new IdentityUser { UserName = model.Email, Email = model.Email };
28-
var result = await _userManager.CreateAsync(user, model.Password);
29-
30-
if (result.Succeeded)
31-
{
32-
return Ok(new { message = "User registered successfully" });
33-
}
34-
return BadRequest(new { errors = result.Errors.Select(e => e.Description) });
26+
return Ok(new { message = "User registered successfully" });
3527
}
36-
37-
[HttpDelete("delete/{email}")]
38-
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status404NotFound)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
39-
public async Task<IActionResult> Delete(string email)
28+
return BadRequest(new { errors = result.Errors.Select(e => e.Description) });
29+
}
30+
31+
[HttpDelete("delete/{email}")]
32+
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status404NotFound)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
33+
public async Task<IActionResult> Delete(string email)
34+
{
35+
var user = await userManager.FindByEmailAsync(email);
36+
if (user == null)
4037
{
41-
var user = await _userManager.FindByEmailAsync(email);
42-
if (user == null)
43-
{
44-
return NotFound(new { message = "User not found" });
45-
}
38+
return NotFound(new { message = "User not found" });
39+
}
4640

47-
var result = await _userManager.DeleteAsync(user);
48-
if (result.Succeeded)
49-
{
50-
return Ok(new { message = "User deleted successfully" });
51-
}
52-
return BadRequest(new { errors = result.Errors.Select(e => e.Description) });
41+
var result = await userManager.DeleteAsync(user);
42+
if (result.Succeeded)
43+
{
44+
return Ok(new { message = "User deleted successfully" });
5345
}
46+
return BadRequest(new { errors = result.Errors.Select(e => e.Description) });
5447
}
5548
}

end/chapter03/IdentitySetup/Controllers/EventsController.cs

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,8 @@ namespace events.Controllers;
77

88
[Route("api/[controller]")]
99
[ApiController]
10-
public class EventsController : ControllerBase
10+
public class EventsController(IEventsService service, ILogger<EventsController> logger) : ControllerBase
1111
{
12-
private readonly IEventsService _service;
13-
private readonly ILogger<EventsController> _logger;
14-
15-
public EventsController(IEventsService service, ILogger<EventsController> logger)
16-
{
17-
_service = service;
18-
_logger = logger;
19-
}
20-
21-
2212
[HttpGet]
2313
[EndpointSummary("Paged Event Registrations")]
2414
[EndpointDescription("This returns all the event registrations from our SQLite database, using EF Core")]
@@ -29,8 +19,8 @@ public async Task<IActionResult> GetEventRegistrations([FromQuery] int pageSize
2919
{
3020
try
3121
{
32-
_logger.LogInformation("Fetching event registrations with pageSize: {PageSize}, lastId: {LastId}", pageSize, lastId);
33-
var pagedResult = await _service.GetEventRegistrationsAsync(pageSize, lastId, Url);
22+
logger.LogInformation("Fetching event registrations with pageSize: {PageSize}, lastId: {LastId}", pageSize, lastId);
23+
var pagedResult = await service.GetEventRegistrationsAsync(pageSize, lastId, Url);
3424

3525
var paginationMetadata = new
3626
{
@@ -52,7 +42,7 @@ public async Task<IActionResult> GetEventRegistrations([FromQuery] int pageSize
5242
}
5343
catch (Exception ex)
5444
{
55-
_logger.LogError(ex, "An error occurred while fetching event registrations.");
45+
logger.LogError(ex, "An error occurred while fetching event registrations.");
5646
return StatusCode(500, "An error occurred while fetching event registrations.");
5747
}
5848
}
@@ -71,7 +61,7 @@ public async Task<IActionResult> GetEventRegistrationById(int id)
7161

7262
try
7363
{
74-
var eventRegistration = await _service.GetEventRegistrationByIdAsync(id);
64+
var eventRegistration = await service.GetEventRegistrationByIdAsync(id);
7565
if (eventRegistration == null)
7666
{
7767
return NotFound();
@@ -81,7 +71,7 @@ public async Task<IActionResult> GetEventRegistrationById(int id)
8171
}
8272
catch (Exception ex)
8373
{
84-
_logger.LogError(ex, "An error occurred while fetching event registration by Id: {Id}", id);
74+
logger.LogError(ex, "An error occurred while fetching event registration by Id: {Id}", id);
8575
return StatusCode(500, "An error occurred while fetching event registration by Id.");
8676
}
8777
}
@@ -98,7 +88,7 @@ public async Task<IActionResult> PostEventRegistration([FromBody] EventRegistrat
9888
return BadRequest(ModelState);
9989
}
10090

101-
var createdEvent = await _service.CreateEventRegistrationAsync(eventRegistrationDto);
91+
var createdEvent = await service.CreateEventRegistrationAsync(eventRegistrationDto);
10292

10393
return CreatedAtAction(nameof(GetEventRegistrationById), new { id = createdEvent.Id }, createdEvent);
10494

start/chapter03/JWTAuth/Controllers/AccountController.cs

Lines changed: 37 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -5,61 +5,53 @@
55
using events.Models;
66
using System.Security.Claims;
77

8-
namespace events.Controllers
8+
namespace events.Controllers;
9+
10+
[ApiController]
11+
[Route("api/[controller]")]
12+
public class AccountController(UserManager<IdentityUser> userManager) : ControllerBase
913
{
10-
[ApiController]
11-
[Route("api/[controller]")]
12-
public class AccountController : ControllerBase
14+
[HttpPost("register")]
15+
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
16+
public async Task<IActionResult> Register(RegisterDTO model)
1317
{
14-
private readonly UserManager<IdentityUser> _userManager;
15-
16-
public AccountController(UserManager<IdentityUser> userManager)
17-
{
18-
_userManager = userManager;
18+
if (!ModelState.IsValid)
19+
{
20+
return BadRequest(ModelState);
1921
}
20-
21-
[HttpPost("register")]
22-
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
23-
public async Task<IActionResult> Register(RegisterDTO model)
22+
23+
var user = new IdentityUser { UserName = model.Email, Email = model.Email };
24+
var result = await userManager.CreateAsync(user, model.Password);
25+
26+
if (result.Succeeded)
2427
{
25-
if (!ModelState.IsValid)
26-
{
27-
return BadRequest(ModelState);
28-
}
29-
30-
var user = new IdentityUser { UserName = model.Email, Email = model.Email };
31-
var result = await _userManager.CreateAsync(user, model.Password);
32-
33-
if (result.Succeeded)
34-
{
35-
return Ok(new { message = "User registered successfully" });
36-
}
37-
return BadRequest(new { errors = result.Errors.Select(e => e.Description) });
28+
return Ok(new { message = "User registered successfully" });
3829
}
39-
40-
[HttpDelete("delete/{email}")]
41-
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status404NotFound)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
42-
public async Task<IActionResult> Delete(string email)
30+
return BadRequest(new { errors = result.Errors.Select(e => e.Description) });
31+
}
32+
33+
[HttpDelete("delete/{email}")]
34+
[ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status404NotFound)] [ProducesResponseType(StatusCodes.Status400BadRequest)]
35+
public async Task<IActionResult> Delete(string email)
36+
{
37+
var user = await userManager.FindByEmailAsync(email);
38+
if (user == null)
4339
{
44-
var user = await _userManager.FindByEmailAsync(email);
45-
if (user == null)
46-
{
47-
return NotFound(new { message = "User not found" });
48-
}
49-
50-
var result = await _userManager.DeleteAsync(user);
51-
if (result.Succeeded)
52-
{
53-
return Ok(new { message = "User deleted successfully" });
54-
}
55-
return BadRequest(new { errors = result.Errors.Select(e => e.Description) });
40+
return NotFound(new { message = "User not found" });
5641
}
5742

58-
[HttpPost("login")]
59-
public async Task<IActionResult> Login(LoginDTO model)
43+
var result = await userManager.DeleteAsync(user);
44+
if (result.Succeeded)
6045
{
61-
return Ok();
46+
return Ok(new { message = "User deleted successfully" });
6247
}
48+
return BadRequest(new { errors = result.Errors.Select(e => e.Description) });
49+
}
6350

51+
[HttpPost("login")]
52+
public async Task<IActionResult> Login(LoginDTO model)
53+
{
54+
return Ok();
6455
}
56+
6557
}

start/chapter03/JWTAuth/Controllers/EventsController.cs

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,8 @@ namespace events.Controllers;
88

99
[Route("api/[controller]")]
1010
[ApiController]
11-
public class EventsController : ControllerBase
11+
public class EventsController(IEventsService service, ILogger<EventsController> logger) : ControllerBase
1212
{
13-
private readonly IEventsService _service;
14-
private readonly ILogger<EventsController> _logger;
15-
16-
public EventsController(IEventsService service, ILogger<EventsController> logger)
17-
{
18-
_service = service;
19-
_logger = logger;
20-
}
21-
22-
2313
[HttpGet]
2414
[EndpointSummary("Paged Event Registrations")]
2515
[EndpointDescription("This returns all the event registrations from our SQLite database, using EF Core")]
@@ -30,8 +20,8 @@ public async Task<IActionResult> GetEventRegistrations([FromQuery] int pageSize
3020
{
3121
try
3222
{
33-
_logger.LogInformation("Fetching event registrations with pageSize: {PageSize}, lastId: {LastId}", pageSize, lastId);
34-
var pagedResult = await _service.GetEventRegistrationsAsync(pageSize, lastId, Url);
23+
logger.LogInformation("Fetching event registrations with pageSize: {PageSize}, lastId: {LastId}", pageSize, lastId);
24+
var pagedResult = await service.GetEventRegistrationsAsync(pageSize, lastId, Url);
3525

3626
var paginationMetadata = new
3727
{
@@ -53,7 +43,7 @@ public async Task<IActionResult> GetEventRegistrations([FromQuery] int pageSize
5343
}
5444
catch (Exception ex)
5545
{
56-
_logger.LogError(ex, "An error occurred while fetching event registrations.");
46+
logger.LogError(ex, "An error occurred while fetching event registrations.");
5747
return StatusCode(500, "An error occurred while fetching event registrations.");
5848
}
5949
}
@@ -72,7 +62,7 @@ public async Task<IActionResult> GetEventRegistrationById(int id)
7262

7363
try
7464
{
75-
var eventRegistration = await _service.GetEventRegistrationByIdAsync(id);
65+
var eventRegistration = await service.GetEventRegistrationByIdAsync(id);
7666
if (eventRegistration == null)
7767
{
7868
return NotFound();
@@ -82,7 +72,7 @@ public async Task<IActionResult> GetEventRegistrationById(int id)
8272
}
8373
catch (Exception ex)
8474
{
85-
_logger.LogError(ex, "An error occurred while fetching event registration by Id: {Id}", id);
75+
logger.LogError(ex, "An error occurred while fetching event registration by Id: {Id}", id);
8676
return StatusCode(500, "An error occurred while fetching event registration by Id.");
8777
}
8878
}
@@ -99,7 +89,7 @@ public async Task<IActionResult> PostEventRegistration([FromBody] EventRegistrat
9989
return BadRequest(ModelState);
10090
}
10191

102-
var createdEvent = await _service.CreateEventRegistrationAsync(eventRegistrationDto);
92+
var createdEvent = await service.CreateEventRegistrationAsync(eventRegistrationDto);
10393

10494
return CreatedAtAction(nameof(GetEventRegistrationById), new { id = createdEvent.Id }, createdEvent);
10595

0 commit comments

Comments
 (0)