// все про остатки на складах using DEMO.Data; // база using DEMO.Models; // остатки using Microsoft.AspNetCore.Mvc; // контроллер using Microsoft.EntityFrameworkCore; // база namespace DEMO.Controllers; [ApiController] // это api [Route("api/[controller]")] // адрес будет api/stocks public class StocksController : ControllerBase { private readonly AppDbContext _context; // база // запоминаю базу public StocksController(AppDbContext context) { _context = context; } // отдать все остатки [HttpGet] public async Task GetStocks() { // беру остатки и сразу товары и склады чтоб показать названия var stocks = await _context.Stocks .Include(s => s.Product) .Include(s => s.Warehouse) .ToListAsync(); return Ok(stocks); } // добавить остаток [HttpPost] public async Task CreateStock(Stock stock) // приходит товар склад и количество { _context.Stocks.Add(stock); // добавляю await _context.SaveChangesAsync(); // сохраняю return Ok(stock); } // изменить остаток [HttpPut("{id}")] public async Task UpdateStock(int id, Stock stock) { var existingStock = await _context.Stocks.FindAsync(id); // ищу старый if (existingStock == null) return NotFound(); // меняю поля existingStock.ProductId = stock.ProductId; existingStock.WarehouseId = stock.WarehouseId; existingStock.Quantity = stock.Quantity; await _context.SaveChangesAsync(); // сохраняю return Ok(existingStock); } // удалить остаток [HttpDelete("{id}")] public async Task DeleteStock(int id) { var stock = await _context.Stocks.FindAsync(id); // ищу if (stock == null) return NotFound(); _context.Stocks.Remove(stock); // удаляю await _context.SaveChangesAsync(); // сохраняю return NoContent(); } }