/
spirzen
/
it-code-examples
Обзор
Документация
Войти
/
spirzen
/
it-code-examples
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
examples/csharp/lab-211-004/main.cs
84 строки
2 KB
Spirzen
Code migration pack
09 июн 2026, 01:41
09 июн 2026, 01:41
cebc284
Код
Авторство
О чём код?
[ApiController] [Route("api/[controller]")] public class BooksController : ControllerBase { private readonly LibraryContext _context; public BooksController(LibraryContext context) { _context = context; } // GET: api/books [HttpGet] public async Task<ActionResult<IEnumerable<Book>>> GetBooks() { return await _context.Books .Include(b => b.Author) .Include(b => b.Genre) .ToListAsync(); } // GET: api/books/5 [HttpGet("{id}")] public async Task<ActionResult<Book>> GetBook(int id) { var book = await _context.Books .Include(b => b.Author) .Include(b => b.Genre) .FirstOrDefaultAsync(b => b.Id == id); if (book == null) return NotFound(); return book; } // POST: api/books [HttpPost] public async Task<ActionResult<Book>> CreateBook(Book book) { _context.Books.Add(book); await _context.SaveChangesAsync(); return CreatedAtAction(nameof(GetBook), new { id = book.Id }, book); } // PUT: api/books/5 [HttpPut("{id}")] public async Task<IActionResult> UpdateBook(int id, Book book) { if (id != book.Id) return BadRequest(); _context.Entry(book).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!BookExists(id)) return NotFound(); else throw; } return NoContent(); } // DELETE: api/books/5 [HttpDelete("{id}")] public async Task<IActionResult> DeleteBook(int id) { var book = await _context.Books.FindAsync(id); if (book == null) return NotFound(); _context.Books.Remove(book); await _context.SaveChangesAsync(); return NoContent(); } private bool BookExists(int id) => _context.Books.Any(e => e.Id == id); }