Files
HCI_TaskTracker/HCI_TaskTracker/HabitsView.xaml.cs
2026-03-11 22:08:42 +01:00

120 lines
3.5 KiB
C#

using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
namespace HCI_TaskTracker
{
public partial class HabitsView : UserControl
{
string ConnStr = "server=mysql.pb.bib.de;uid=pba3h24abd;pwd=a2UJEGJtjrsb;database=pba3h24abd_TaskTracker";
int currentUserId = 1;
public HabitsView()
{
InitializeComponent();
LoadHabits();
}
void LoadHabits()
{
var list = new List<HabitRow>();
try
{
using var conn = new MySqlConnection(ConnStr);
conn.Open();
string sql = "SELECT id, name, frequency, user_id FROM habits WHERE user_id=@uid ORDER BY id DESC;";
using var cmd = new MySqlCommand(sql, conn);
cmd.Parameters.AddWithValue("@uid", currentUserId);
using var r = cmd.ExecuteReader();
while (r.Read())
{
list.Add(new HabitRow
{
Id = r.GetInt32("id"),
Name = r.GetString("name"),
Frequency = r.GetString("frequency"),
UserId = r.GetInt32("user_id")
});
}
GridHabits.ItemsSource = list;
Console.WriteLine("Habits loaded");
}
catch (Exception ex)
{
Console.WriteLine("DB Fehler (Load Habits): " + ex.Message);
}
}
private void Delete_Click(object sender, RoutedEventArgs e)
{
if ((sender as FrameworkElement)?.Tag is not HabitRow h)
{
return;
}
try
{
using var conn = new MySqlConnection(ConnStr);
conn.Open();
string sql = "DELETE FROM habits WHERE id=@id;";
using var cmd = new MySqlCommand(sql, conn);
cmd.Parameters.AddWithValue("@id", h.Id);
cmd.ExecuteNonQuery();
Console.WriteLine("Habit deleted.");
LoadHabits();
}
catch (Exception ex)
{
Console.WriteLine("DB Fehler (Delete Habit): " + ex.Message);
}
}
public void Add_Click(object sender, RoutedEventArgs e)
{
string name = NewName.Text.Trim();
string frequency = NewFrequency.Text.Trim();
if (name.Length < 3)
{
return;
}
if (frequency.Length < 3)
{
return;
}
try
{
using var conn = new MySqlConnection(ConnStr);
conn.Open();
string sql = "INSERT INTO habits (name, frequency, user_id) VALUES (@n, @f, @uid);";
using var cmd = new MySqlCommand(sql, conn);
cmd.Parameters.AddWithValue("@n", name);
cmd.Parameters.AddWithValue("@f", frequency);
cmd.Parameters.AddWithValue("@uid", currentUserId);
cmd.ExecuteNonQuery();
Console.WriteLine("Habit added.");
NewName.Text = "";
NewFrequency.Text = "";
LoadHabits();
}
catch (Exception ex)
{
Console.WriteLine("DB Fehler (Add Habit): " + ex.Message);
}
}
}
}