38 lines
1.4 KiB
C#
38 lines
1.4 KiB
C#
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Threading.Tasks;
|
|
using DatabaseConnection.Model;
|
|
|
|
namespace DatabaseConnection.Services
|
|
{
|
|
public class BookService
|
|
{
|
|
private readonly DatabaseService databaseService;
|
|
|
|
public BookService(DatabaseService databaseService) => this.databaseService = databaseService;
|
|
|
|
public async Task<List<Book>> GetBooks()
|
|
{
|
|
List<Book> books = [];
|
|
|
|
var table = await databaseService.ExecuteQuery("SELECT id_ksiazka, tytul, GROUP_CONCAT(imie, ' ', nazwisko) as autor, kategoria.nazwa, wydawca, data_publikacji, cena, ilosc FROM ksiazki, autorzy_ksiazek, kategoria WHERE ksiazki.id_kategoria = kategoria.id_kategoria AND ksiazki.id_autor = autorzy_ksiazek.id_autor GROUP BY tytul");
|
|
foreach (DataRow row in table.Rows)
|
|
{
|
|
books.Add(new Book
|
|
{
|
|
Id = Convert.ToInt32(row["id_ksiazka"]),
|
|
Title = row["tytul"].ToString(),
|
|
Author = row["autor"].ToString(),
|
|
Category = row["nazwa"].ToString(),
|
|
Publisher = row["wydawca"].ToString(),
|
|
PublishDate = row["data_publikacji"].ToString(),
|
|
Price = Convert.ToDouble(row["cena"]),
|
|
Amount = Convert.ToInt32(row["ilosc"])
|
|
});
|
|
}
|
|
|
|
return books;
|
|
}
|
|
}
|
|
}
|