-
Notifications
You must be signed in to change notification settings - Fork 818
/
Copy pathUserController.cs
27 lines (20 loc) · 1.15 KB
/
UserController.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
namespace Architecture.Web;
[ApiController]
[Route("api/users")]
public sealed class UserController : BaseController
{
[HttpPost]
public IActionResult Add(AddUserRequest request) => Mediator.HandleAsync<AddUserRequest, long>(request).ApiResult();
[HttpDelete("{id:long}")]
public IActionResult Delete(long id) => Mediator.HandleAsync(new DeleteUserRequest(id)).ApiResult();
[HttpGet("{id:long}")]
public IActionResult Get(long id) => Mediator.HandleAsync<GetUserRequest, UserModel>(new GetUserRequest(id)).ApiResult();
[HttpGet("grid")]
public IActionResult Grid([FromQuery] GridUserRequest request) => Mediator.HandleAsync<GridUserRequest, Grid<UserModel>>(request).ApiResult();
[HttpPatch("{id:long}/inactivate")]
public IActionResult Inactivate(long id) => Mediator.HandleAsync(new InactivateUserRequest(id)).ApiResult();
[HttpGet]
public IActionResult List() => Mediator.HandleAsync<ListUserRequest, IEnumerable<UserModel>>(new ListUserRequest()).ApiResult();
[HttpPut("{id:long}")]
public IActionResult Update(long id, UpdateUserRequest request) => Mediator.HandleAsync(request with { Id = id }).ApiResult();
}