71 lines
2.1 KiB
C#
71 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/warehouses
|
||
public class WarehousesController : ControllerBase
|
||
{
|
||
private readonly AppDbContext _context; // база
|
||
|
||
// запоминаю базу
|
||
public WarehousesController(AppDbContext context)
|
||
{
|
||
_context = context;
|
||
}
|
||
|
||
// отдать все склады
|
||
[HttpGet]
|
||
public async Task<IActionResult> GetWarehouses()
|
||
{
|
||
var warehouses = await _context.Warehouses.ToListAsync(); // беру все
|
||
return Ok(warehouses);
|
||
}
|
||
|
||
// добавить склад
|
||
[HttpPost]
|
||
public async Task<IActionResult> CreateWarehouse(Warehouse warehouse) // приходит название и адрес
|
||
{
|
||
_context.Warehouses.Add(warehouse); // добавляю
|
||
await _context.SaveChangesAsync(); // сохраняю
|
||
return Ok(warehouse);
|
||
}
|
||
|
||
// изменить склад
|
||
[HttpPut("{id}")]
|
||
public async Task<IActionResult> UpdateWarehouse(int id, Warehouse warehouse)
|
||
{
|
||
var existingWarehouse = await _context.Warehouses.FindAsync(id); // ищу старый
|
||
|
||
if (existingWarehouse == null)
|
||
return NotFound();
|
||
|
||
// меняю поля
|
||
existingWarehouse.Name = warehouse.Name;
|
||
existingWarehouse.Address = warehouse.Address;
|
||
|
||
await _context.SaveChangesAsync(); // сохраняю
|
||
|
||
return Ok(existingWarehouse);
|
||
}
|
||
|
||
// удалить склад
|
||
[HttpDelete("{id}")]
|
||
public async Task<IActionResult> DeleteWarehouse(int id)
|
||
{
|
||
var warehouse = await _context.Warehouses.FindAsync(id); // ищу
|
||
|
||
if (warehouse == null)
|
||
return NotFound();
|
||
|
||
_context.Warehouses.Remove(warehouse); // удаляю
|
||
await _context.SaveChangesAsync(); // сохраняю
|
||
|
||
return NoContent();
|
||
}
|
||
}
|