Dodaj pliki projektów.

This commit is contained in:
Krzysztof KrzysiekSiemv Smaga
2024-11-25 22:42:31 +01:00
parent 133b8199db
commit 7581d5df42
58 changed files with 1644 additions and 0 deletions
@@ -0,0 +1,37 @@
using System.Collections.Generic;
using System.Data;
using System.Threading.Tasks;
using DatabaseConnection.Model;
namespace DatabaseConnection.Services
{
public partial class AuthorService
{
private readonly DatabaseService databaseService;
public AuthorService(DatabaseService databaseService) => this.databaseService = databaseService;
public async Task<List<Author>> GetAuthors()
{
List<Author> authors = [];
var table = await databaseService.ExecuteQuery("SELECT * FROM autorzy_ksiazek");
foreach (DataRow row in table.Rows)
{
authors.Add(new Author
{
Id = Convert.ToInt32(row["id_autor"]),
Name = row["imie"].ToString(),
Surname = row["nazwisko"].ToString(),
Birthdate = row["data_urodzenia"].ToString()
});
}
return authors;
}
public async Task<int> AddAuthor(Author author)
{
return await databaseService.ExecuteNonQuery($"INSERT INTO autorzy_ksiazek(imie, nazwisko, data_urodzenia) VALUES('{author.Name}', '{author.Surname}', '{author.Birthdate}');");
}
}
}
@@ -0,0 +1,37 @@
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;
}
}
}
@@ -0,0 +1,41 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;
namespace DatabaseConnection.Services
{
public class DatabaseService
{
private string _connectionString = "Server=localhost;Database=biblioteka;User=root;Password=;";
public MySqlConnection Connection()
{
return new MySqlConnection(_connectionString);
}
public async Task<DataTable> ExecuteQuery(string query)
{
using MySqlConnection connection = Connection();
await connection.OpenAsync();
using MySqlCommand command = new(query, connection);
using var reader = await command.ExecuteReaderAsync();
var table = new DataTable();
table.Load(reader);
return table;
}
public async Task<int> ExecuteNonQuery(string query)
{
using MySqlConnection connection = Connection();
await connection.OpenAsync();
using MySqlCommand command = new(query, connection);
return await command.ExecuteNonQueryAsync();
}
}
}
@@ -0,0 +1,41 @@
using System.Collections.Generic;
using System.Data;
using System.Threading.Tasks;
using DatabaseConnection.Model;
namespace DatabaseConnection.Services
{
public class ReaderService
{
private readonly DatabaseService databaseService;
public ReaderService(DatabaseService databaseService) => this.databaseService = databaseService;
public async Task<List<Reader>> GetReaders()
{
List<Reader> readers = [];
var table = await databaseService.ExecuteQuery("SELECT * FROM czytelnicy");
foreach (DataRow row in table.Rows)
{
readers.Add(new Reader
{
Id = Convert.ToInt32(row["id_autor"]),
Name = row["imie"].ToString(),
Surname = row["nazwisko"].ToString(),
Address = row["adres_zamieszkania"].ToString(),
Birthdate = row["data_urodzenia"].ToString(),
Number = (long)Convert.ToInt64(row["numer_telefonu"]),
EmailAddress = row["adres_email"].ToString()
});
}
return readers;
}
public async Task<int> AddReader(Reader reader)
{
return await databaseService.ExecuteNonQuery($"INSERT INTO czytelnicy(imie, nazwisko, data_urodzenia, adres_zamieszkania, numer_telefonu, adres_email) VALUES('{reader.Name}', '{reader.Surname}', '{reader.Birthdate}', '{reader.Address}', '{reader.Number}', '{reader.EmailAddress}');");
}
}
}
@@ -0,0 +1,36 @@
using System.Collections.Generic;
using System.Data;
using System.Threading.Tasks;
using DatabaseConnection.Model;
namespace DatabaseConnection.Services
{
public class WorkerService
{
private readonly DatabaseService databaseService;
public WorkerService(DatabaseService databaseService) => this.databaseService = databaseService;
public async Task<List<Worker>> GetWorkers()
{
List<Worker> workers = [];
var table = await databaseService.ExecuteQuery("SELECT * FROM pracownicy");
foreach (DataRow row in table.Rows)
{
workers.Add(new Worker
{
Id = Convert.ToInt32(row["id_autor"]),
Name = row["imie"].ToString(),
Surname = row["nazwisko"].ToString(),
StartOfWorking = row["data_rozpoczecia_pracy"].ToString(),
Position = row["stanowisko"].ToString(),
HourlyRate = Convert.ToDouble(row["stawka_godzinowa"]),
EndOfWorking = row["data_zakonczenia_pracy"].ToString()
});
}
return workers;
}
}
}