dorset-backend-testapplication/Controllers/BooksController.cs

61 lines
1.8 KiB
C#

using System.Collections.Generic;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using TestApplication.Data;
using TestApplication.DTO;
using System.Linq;
namespace TestApplication.Controllers
{
[ApiController]
[Route("[controller]")]
public class BooksController : ControllerBase
{
private readonly Context _context;
public BooksController(Context context)
{
_context = context;
}
[HttpGet]
public ActionResult<IEnumerable<BookDTO>> GetBooks()
{
var book = from books in _context.Book
join book_descriptions in _context.Book_Description on books.id equals book_descriptions.book_id
select new BookDTO
{
Book_id = books.id,
Book_price = books.price,
ISBN = books.isbn,
Book_name = book_descriptions.book_name,
Book_description = book_descriptions.book_description
};
return Ok(book);
}
[HttpGet("{id}")]
public ActionResult<BookDTO> GetBooks_byId(int id)
{
var book = from books in _context.Book
join book_descriptions in _context.Book_Description on books.id equals book_descriptions.book_id
select new BookDTO
{
Book_id = books.id,
Book_price = books.price,
ISBN = books.isbn,
Book_name = book_descriptions.book_name,
Book_description = book_descriptions.book_description
};
var book_by_id = book.ToList().Find(x => x.Book_id == id);
if (book_by_id == null)
{
return NotFound();
}
return book_by_id;
}
}
}