76 lines
2.1 KiB
C#
76 lines
2.1 KiB
C#
// все про пользователей
|
||
using DEMO.Data; // база
|
||
using DEMO.Models; // пользователи
|
||
using Microsoft.AspNetCore.Mvc; // контроллер
|
||
using Microsoft.EntityFrameworkCore; // база
|
||
|
||
namespace DEMO.Controllers;
|
||
|
||
[ApiController] // это api
|
||
[Route("api/[controller]")] // адрес будет api/users
|
||
public class UsersController : ControllerBase
|
||
{
|
||
private readonly AppDbContext _context; // база
|
||
|
||
// запоминаю базу
|
||
public UsersController(AppDbContext context)
|
||
{
|
||
_context = context;
|
||
}
|
||
|
||
// отдать всех людей
|
||
[HttpGet]
|
||
public async Task<IActionResult> GetUsers()
|
||
{
|
||
// беру людей и их роли
|
||
var users = await _context.Users
|
||
.Include(u => u.Role)
|
||
.ToListAsync();
|
||
|
||
return Ok(users);
|
||
}
|
||
|
||
// добавить человека
|
||
[HttpPost]
|
||
public async Task<IActionResult> CreateUser(User user) // приходит логин пароль роль
|
||
{
|
||
_context.Users.Add(user); // добавляю
|
||
await _context.SaveChangesAsync(); // сохраняю
|
||
return Ok(user);
|
||
}
|
||
|
||
// изменить человека
|
||
[HttpPut("{id}")]
|
||
public async Task<IActionResult> UpdateUser(int id, User user)
|
||
{
|
||
var existingUser = await _context.Users.FindAsync(id); // ищу старого
|
||
|
||
if (existingUser == null)
|
||
return NotFound();
|
||
|
||
// меняю поля
|
||
existingUser.Login = user.Login;
|
||
existingUser.Password = user.Password;
|
||
existingUser.RoleId = user.RoleId;
|
||
|
||
await _context.SaveChangesAsync(); // сохраняю
|
||
|
||
return Ok(existingUser);
|
||
}
|
||
|
||
// удалить человека
|
||
[HttpDelete("{id}")]
|
||
public async Task<IActionResult> DeleteUser(int id)
|
||
{
|
||
var user = await _context.Users.FindAsync(id); // ищу
|
||
|
||
if (user == null)
|
||
return NotFound();
|
||
|
||
_context.Users.Remove(user); // удаляю
|
||
await _context.SaveChangesAsync(); // сохраняю
|
||
|
||
return NoContent();
|
||
}
|
||
}
|