bib_Talk_Chatprogramm/bibtalk/bib-talk/UI/MainWindow.xaml.cs
BlackViron 068ba16156 3 Schichten Model
3 Schichten Model umgesetzt
2024-07-01 16:21:03 +02:00

158 lines
3.9 KiB
C#

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; }
}
}