068ba16156
3 Schichten Model umgesetzt
158 lines
3.9 KiB
C#
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; }
|
|
}
|
|
}
|