Files
SportsTrainingApp/Challenges/formChallenges.xaml.cs
2025-03-25 22:59:42 +04:00

97 lines
3.2 KiB
C#

using Npgsql;
using System.Windows;
namespace SportsTrainingApp.Challenges
{
public partial class formChallenges : Window
{
public formChallenges()
{
InitializeComponent();
FillDataGrid();
}
public class Challenges
{
public int ID { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public DateTime Start_date { get; set; }
public DateTime End_date { get; set; }
}
public void FillDataGrid()
{
using (var conn = new NpgsqlConnection(formMain.connectionString))
{
conn.Open();
using (var cmd = new NpgsqlCommand($@"SELECT
ID,
NAME,
DESCRIPTION,
START_DATE,
END_DATE
FROM
DBO.CHALLENGES
ORDER BY
START_DATE", conn))
{
var reader = cmd.ExecuteReader();
var challenges = new List<Challenges>();
while (reader.Read())
{
challenges.Add(new Challenges
{
ID = reader.GetInt32(0),
Name = reader.GetString(1),
Description = reader.GetString(2),
Start_date = reader.GetDateTime(3),
End_date = reader.GetDateTime(4)
});
}
gridChallenges.ItemsSource = challenges;
}
}
}
private void btAddChallenges_Click(object sender, RoutedEventArgs e)
{
new formAddChallenges().ShowDialog();
FillDataGrid();
}
private void btDelChallenges_Click(object sender, RoutedEventArgs e)
{
var selectedItem = (Challenges)gridChallenges.SelectedItem;
if (selectedItem == null)
return;
using (var conn = new NpgsqlConnection(formMain.connectionString))
{
conn.Open();
using (var cmd = new NpgsqlCommand(@$"DELETE FROM DBO.CHALLENGES
WHERE
ID = {selectedItem.ID}", conn))
{
cmd.ExecuteNonQuery();
}
}
FillDataGrid();
}
private void btUpdChallenges_Click(object sender, RoutedEventArgs e)
{
var selectedItem = (Challenges)gridChallenges.SelectedItem;
if (selectedItem == null)
return;
new formUpdChallenges(selectedItem).ShowDialog();
FillDataGrid();
}
}
}