using bib_talk.Repository; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Globalization; using System.Net.Http; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Input; using System.Windows.Media; using System.Windows.Threading; namespace bib_talk { public partial class MainWindow : Window { MainWindowDatabase database; private DispatcherTimer _timer; public string loggedinUser; private bool isFirstLoad = true; public MainWindow() { InitializeComponent(); InitializeTimer(); LoadData(); database = new MainWindowDatabase(this); } public MainWindow(string user) { loggedinUser = user; InitializeComponent(); InitializeTimer(); LoadData(); database = new MainWindowDatabase(this); database.LoadMessages(); } private void InitializeTimer() { _timer = new DispatcherTimer { Interval = TimeSpan.FromSeconds(2) }; _timer.Tick += (sender, e) => { database.LoadMessages(); database.LoadOnlineUsers(); }; _timer.Start(); } public void LoadData() { loggedinuser.Text = "Logged in as: " + loggedinUser; } private void CloseButton_Click(object sender, RoutedEventArgs e) { database.LogoutUser(); this.Close(); } private void DraggableArea_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { if (e.ButtonState == MouseButtonState.Pressed) { DragMove(); } } private async void messageBOX_KeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.Enter) { database.SendMessage(); } } private async void send_Click(object sender, RoutedEventArgs e) { database.SendMessage(); } private void ChatFenster_Click(object sender, RoutedEventArgs e) { if (popup.IsOpen = true) { popup.Focus(); } else { popup.IsOpen = true; } } private void Button1_Click(object sender, RoutedEventArgs e) { MessageBox.Show("Button 1 wurde geklickt!"); ClosePopup(); } private void Button2_Click(object sender, RoutedEventArgs e) { MessageBox.Show("Button 2 wurde geklickt!"); ClosePopup(); } private void Button3_Click(object sender, RoutedEventArgs e) { MessageBox.Show("Button 3 wurde geklickt!"); ClosePopup(); } private void Popup_LostFocus(object sender, RoutedEventArgs e) { ClosePopup(); } private void ClosePopup() { popup.IsOpen = false; } private void onlineUsersListBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { } } public class Message { public int Id { get; set; } public string Username { get; set; } public string Text { get; set; } public DateTime Timestamp { get; set; } } public class MessageDto { public string Username { get; set; } public string Message { get; set; } public DateTime Timestamp { get; set; } } public class User { public int Id { get; set; } public string Username { get; set; } public string Password { get; set; } public string Email { get; set; } public string Birthday { get; set; } public string IsOnline { get; set; } } }