86 lines
No EOL
2.2 KiB
C#
86 lines
No EOL
2.2 KiB
C#
using System.Collections.Generic;
|
|
using BuecherwurmAPI.Models;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using System.Linq;
|
|
//using Microsoft.EntityFrameworkCore;
|
|
|
|
namespace BuecherwurmAPI.Controllers
|
|
{
|
|
[Route("api/katalog") ]
|
|
[ApiController]
|
|
public class KatalogController :ControllerBase
|
|
{
|
|
private readonly KatalogModel _repository;
|
|
|
|
public KatalogController (ICatalogue repository)
|
|
{
|
|
_repository= (KatalogModel)repository;
|
|
}
|
|
// GET Katalog
|
|
[HttpGet]
|
|
public ActionResult<IEnumerable<Book>> GetAllBooks()
|
|
{
|
|
var books =_repository.GetAllBooks();
|
|
return Ok(books);
|
|
}
|
|
|
|
// POST Katalog
|
|
[HttpPost]
|
|
public ActionResult<Book> AddBook(BookPost book)
|
|
{
|
|
var id = _repository.AddBook(book);
|
|
return Ok(new Book
|
|
{
|
|
Name = book.Name,
|
|
Author= book.Author,
|
|
Country= book.Country,
|
|
Link= book.Link,
|
|
Language= book.Language,
|
|
Pages= book.Pages,
|
|
Year=book.Year,
|
|
ProductId = id,
|
|
Category= book.Category,
|
|
ImageLink =book.ImageLink,
|
|
LendTime =book.LendTime,
|
|
LendType = book.LendType
|
|
});
|
|
}
|
|
|
|
|
|
// GET katalog/{id}
|
|
[HttpGet("{id}")]
|
|
public ActionResult <Book> GetBookByID(long id)
|
|
{
|
|
var book = _repository.GetBookById(id);
|
|
if (book != null)
|
|
{
|
|
return Ok(book);
|
|
}
|
|
return NoContent();
|
|
|
|
}
|
|
|
|
// PUT Katalog/{id}
|
|
[HttpPut("{id}")]
|
|
public ActionResult<Book> EditBook(long id, Book book)
|
|
{
|
|
_repository.EditBook(id, book);
|
|
return Ok(book);
|
|
}
|
|
|
|
// DELETE katalog/{id}
|
|
[HttpDelete("{id}")]
|
|
public ActionResult<Book> DeleteBook (long id)
|
|
{
|
|
var book = _repository.GetBookById(id);
|
|
if(book == null)
|
|
{
|
|
return NotFound();
|
|
}
|
|
_repository.DeleteBook(id);
|
|
return NoContent();
|
|
}
|
|
|
|
}
|
|
|
|
} |