Files
PaymentLogs/paymentLogs/Repositories/CourseRepo.cs
T
2024-06-04 21:09:56 +03:00

74 lines
2.4 KiB
C#

using MySql.Data.MySqlClient;
using PaymentLogs.Domain;
using PaymentLogs.Utils;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Security.Policy;
using System.Text;
using System.Threading.Tasks;
namespace PaymentLogs.Repositories
{
internal class CourseRepo : Repo<int, Course>
{
public override void Load()
{
DataBase db = new DataBase();
db.openConnection();
_data.Clear();
string sql = " SELECT * FROM courses ";
MySqlCommand cmd = new MySqlCommand(sql, db.getConnection());
MySqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
Course course = new Course() {
Id = reader.GetInt32("id"),
Name = reader.GetString("name"),
Type = reader.GetString("type"),
Cost = reader.GetInt32("cost"),
Duration = reader.GetInt32("duration"),
StudentsCount = reader.GetInt32("students_count")
};
_data[course.Id] = course;
}
db.closeConnection();
}
public override void Save()
{
foreach(Course course in All())
{
DataBase db = new DataBase();
db.openConnection();
string sql = $" INSERT INTO `courses` (`id`, `name`, `type`, `cost`, `duration`, `students_count`) VALUES ('{course.Id}'," +
$"'{course.Name}', '{course.Type}', '{course.Cost}', '{course.Duration}', '{course.StudentsCount}') " +
$"ON DUPLICATE KEY UPDATE `name`='{course.Name}', `type`='{course.Type}', `cost`='{course.Cost}', `duration`='{course.Duration}'," +
$"`students_count`='{course.StudentsCount}' ";
MySqlCommand cmd = new MySqlCommand(sql, db.getConnection());
cmd.ExecuteNonQuery();
db.closeConnection();
}
}
public Course ByName(string name)
{
foreach (var course in _data.Values)
{
if (course.Name.ToLower().Equals(name.ToLower()))
{
return course;
}
}
return _data.Values.FirstOrDefault();
}
}
}