using Microsoft.AspNetCore.Mvc; using TestEnvironment.Models; using Microsoft.AspNetCore.Http; using Microsoft.EntityFrameworkCore; using System.Text.RegularExpressions; using System.Linq; namespace TestEnvironment.Controllers { [Route("api/[controller]")] [ApiController] public class BookController : ControllerBase { private readonly BookDbContext _bookDbContext; public BookController(BookDbContext bookDbContext) { _bookDbContext = bookDbContext; } [HttpGet] public ActionResult> GetBooks() { return _bookDbContext.Book; } [HttpGet("{id:int}")] public async Task> GetBookById(int id) { var book = await _bookDbContext.Book.FindAsync(id); return Ok(book); } [HttpGet("books/title-starting-with-a")] public async Task GetBooksByTitleA() { var books = await _bookDbContext.Book .FromSqlRaw("SELECT * FROM book WHERE title LIKE 'A%' ORDER BY title;") .ToListAsync(); return Ok(books); } [HttpGet("books/title-starting-with-aa")] public async Task GetBooksByTitleAA() { var books = await _bookDbContext.Book .FromSqlRaw("SELECT * FROM book WHERE title LIKE 'Ā%' ORDER BY title;") .ToListAsync(); return Ok(books); } [HttpGet("books/title-starting-with-b")] public async Task GetBooksByTitleB() { var books = await _bookDbContext.Book .FromSqlRaw("SELECT * FROM book WHERE title LIKE 'B%' ORDER BY title;") .ToListAsync(); return Ok(books); } [HttpGet("books/title-starting-with-c")] public async Task GetBooksByTitleC() { var books = await _bookDbContext.Book .FromSqlRaw("SELECT * FROM book WHERE title LIKE 'C%' ORDER BY title;") .ToListAsync(); return Ok(books); } [HttpGet("books/title-starting-with-cc")] public async Task GetBooksByTitleCC() { var books = await _bookDbContext.Book .FromSqlRaw("SELECT * FROM book WHERE title LIKE 'Č%' ORDER BY title;") .ToListAsync(); return Ok(books); } [HttpGet("books/title-starting-with-d")] public async Task GetBooksByTitleD() { var books = await _bookDbContext.Book .FromSqlRaw("SELECT * FROM book WHERE title LIKE 'D%' ORDER BY title;") .ToListAsync(); return Ok(books); } [HttpGet("books/title-starting-with-e")] public async Task GetBooksByTitleE() { var books = await _bookDbContext.Book .FromSqlRaw("SELECT * FROM book WHERE title LIKE 'E%' ORDER BY title;") .ToListAsync(); return Ok(books); } [HttpGet("books/title-starting-with-ee")] public async Task GetBooksByTitleEE() { var books = await _bookDbContext.Book .FromSqlRaw("SELECT * FROM book WHERE title LIKE 'Ē%' ORDER BY title;") .ToListAsync(); return Ok(books); } [HttpGet("books/title-starting-with-f")] public async Task GetBooksByTitleF() { var books = await _bookDbContext.Book .FromSqlRaw("SELECT * FROM book WHERE title LIKE 'F%' ORDER BY title;") .ToListAsync(); return Ok(books); } [HttpGet("books/title-starting-with-g")] public async Task GetBooksByTitleG() { var books = await _bookDbContext.Book .FromSqlRaw("SELECT * FROM book WHERE title LIKE 'G%' ORDER BY title;") .ToListAsync(); return Ok(books); } [HttpGet("books/title-starting-with-gg")] public async Task GetBooksByTitleGG() { var books = await _bookDbContext.Book .FromSqlRaw("SELECT * FROM book WHERE title LIKE 'Ģ%' ORDER BY title;") .ToListAsync(); return Ok(books); } [HttpGet("books/title-starting-with-h")] public async Task GetBooksByTitleH() { var books = await _bookDbContext.Book .FromSqlRaw("SELECT * FROM book WHERE title LIKE 'H%' ORDER BY title;") .ToListAsync(); return Ok(books); } [HttpGet("books/title-starting-with-i")] public async Task GetBooksByTitleI() { var books = await _bookDbContext.Book .FromSqlRaw("SELECT * FROM book WHERE title LIKE 'I%' ORDER BY title;") .ToListAsync(); return Ok(books); } [HttpGet("books/title-starting-with-ii")] public async Task GetBooksByTitleII() { var books = await _bookDbContext.Book .FromSqlRaw("SELECT * FROM book WHERE title LIKE 'Ī%' ORDER BY title;") .ToListAsync(); return Ok(books); } [HttpGet("books/title-starting-with-j")] public async Task GetBooksByTitleJ() { var books = await _bookDbContext.Book .FromSqlRaw("SELECT * FROM book WHERE title LIKE 'J%' ORDER BY title;") .ToListAsync(); return Ok(books); } [HttpGet("books/title-starting-with-k")] public async Task GetBooksByTitleK() { var books = await _bookDbContext.Book .FromSqlRaw("SELECT * FROM book WHERE title LIKE 'K%' ORDER BY title;") .ToListAsync(); return Ok(books); } [HttpGet("books/title-starting-with-kk")] public async Task GetBooksByTitleKK() { var books = await _bookDbContext.Book .FromSqlRaw("SELECT * FROM book WHERE title LIKE 'Ķ%' ORDER BY title;") .ToListAsync(); return Ok(books); } [HttpGet("books/title-starting-with-l")] public async Task GetBooksByTitleL() { var books = await _bookDbContext.Book .FromSqlRaw("SELECT * FROM book WHERE title LIKE 'L%' ORDER BY title;") .ToListAsync(); return Ok(books); } [HttpGet("books/title-starting-with-ll")] public async Task GetBooksByTitleLL() { var books = await _bookDbContext.Book .FromSqlRaw("SELECT * FROM book WHERE title LIKE 'Ļ%' ORDER BY title;") .ToListAsync(); return Ok(books); } [HttpGet("books/title-starting-with-m")] public async Task GetBooksByTitleM() { var books = await _bookDbContext.Book .FromSqlRaw("SELECT * FROM book WHERE title LIKE 'M%' ORDER BY title;") .ToListAsync(); return Ok(books); } [HttpGet("books/title-starting-with-n")] public async Task GetBooksByTitleN() { var books = await _bookDbContext.Book .FromSqlRaw("SELECT * FROM book WHERE title LIKE 'N%' ORDER BY title;") .ToListAsync(); return Ok(books); } [HttpGet("books/title-starting-with-nn")] public async Task GetBooksByTitleNN() { var books = await _bookDbContext.Book .FromSqlRaw("SELECT * FROM book WHERE title LIKE 'Ņ%' ORDER BY title;") .ToListAsync(); return Ok(books); } [HttpGet("books/title-starting-with-o")] public async Task GetBooksByTitleO() { var books = await _bookDbContext.Book .FromSqlRaw("SELECT * FROM book WHERE title LIKE 'O%' ORDER BY title;") .ToListAsync(); return Ok(books); } [HttpGet("books/title-starting-with-p")] public async Task GetBooksByTitleP() { var books = await _bookDbContext.Book .FromSqlRaw("SELECT * FROM book WHERE title LIKE 'P%' ORDER BY title;") .ToListAsync(); return Ok(books); } [HttpGet("books/title-starting-with-r")] public async Task GetBooksByTitleR() { var books = await _bookDbContext.Book .FromSqlRaw("SELECT * FROM book WHERE title LIKE 'R%' ORDER BY title;") .ToListAsync(); return Ok(books); } [HttpGet("books/title-starting-with-s")] public async Task GetBooksByTitleS() { var books = await _bookDbContext.Book .FromSqlRaw("SELECT * FROM book WHERE title LIKE 'S%' ORDER BY title;") .ToListAsync(); return Ok(books); } [HttpGet("books/title-starting-with-ss")] public async Task GetBooksByTitleSS() { var books = await _bookDbContext.Book .FromSqlRaw("SELECT * FROM book WHERE title LIKE 'Š%' ORDER BY title;") .ToListAsync(); return Ok(books); } [HttpGet("books/title-starting-with-t")] public async Task GetBooksByTitleT() { var books = await _bookDbContext.Book .FromSqlRaw("SELECT * FROM book WHERE title LIKE 'T%' ORDER BY title;") .ToListAsync(); return Ok(books); } [HttpGet("books/title-starting-with-u")] public async Task GetBooksByTitleU() { var books = await _bookDbContext.Book .FromSqlRaw("SELECT * FROM book WHERE title LIKE 'U%' ORDER BY title;") .ToListAsync(); return Ok(books); } [HttpGet("books/title-starting-with-uu")] public async Task GetBooksByTitleUU() { var books = await _bookDbContext.Book .FromSqlRaw("SELECT * FROM book WHERE title LIKE 'Ū%' ORDER BY title;") .ToListAsync(); return Ok(books); } [HttpGet("books/title-starting-with-v")] public async Task GetBooksByTitleV() { var books = await _bookDbContext.Book .FromSqlRaw("SELECT * FROM book WHERE title LIKE 'V%' ORDER BY title;") .ToListAsync(); return Ok(books); } [HttpGet("books/title-starting-with-z")] public async Task GetBooksByTitleZ() { var books = await _bookDbContext.Book .FromSqlRaw("SELECT * FROM book WHERE title LIKE 'Z%' ORDER BY title;") .ToListAsync(); return Ok(books); } [HttpGet("books/title-starting-with-zz")] public async Task GetBooksByTitleZZ() { var books = await _bookDbContext.Book .FromSqlRaw("SELECT * FROM book WHERE title LIKE 'Ž%' ORDER BY title;") .ToListAsync(); return Ok(books); } [HttpPost] public async Task CreateBook(Book book) { await _bookDbContext.Book.AddAsync(book); await _bookDbContext.SaveChangesAsync(); return Ok(); } [HttpPut] public async Task UpdateBook(Book book) { _bookDbContext.Book.Update(book); await _bookDbContext.SaveChangesAsync(); return Ok(); } [HttpDelete("{id:int}")] public async Task DeleteBook(int id) { var book = await _bookDbContext.Book.FindAsync(id); _bookDbContext.Book.Remove(book); return Ok(); } } }