120 lines
3.5 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|
|
} |