3 Schichten Architektur voll

Erik hat die 3 Schichten arschitektur voll fertig gemacht

wenn jemand sachen added OHNE sie zu beachten gibts stress
This commit is contained in:
Erik
2024-07-03 15:58:51 +02:00
parent 28460e3312
commit 80f2610b04
12 changed files with 153 additions and 51 deletions

View File

@@ -5,14 +5,14 @@ using System.Threading.Tasks;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows;
using bib_talk.Business;
using bib_talk.Repository;
namespace bib_talk
{
public partial class Login : Window
{
LoginDatabase loginDatabase;
LoginManager loginManager;
// Field to store logged in user
public static string loggedInUser;
@@ -21,7 +21,7 @@ namespace bib_talk
{
InitializeComponent();
loginDatabase = new LoginDatabase(this);
loginManager = new LoginManager(this);
}
private void DraggableArea_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
@@ -48,9 +48,7 @@ namespace bib_talk
{
if (usernbox.Text != "" && passwordbox.Password != "")
{
await loginDatabase.LoginServer();
loginManager.Login();
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -14,12 +14,13 @@ using System.Windows.Data;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Threading;
using bib_talk.Business;
namespace bib_talk
{
public partial class MainWindow : Window
{
MainWindowDatabase database;
MainWindowManager mwManager;
private DispatcherTimer _timer;
public string loggedinUser;
@@ -31,7 +32,7 @@ namespace bib_talk
InitializeTimer();
LoadData();
database = new MainWindowDatabase(this);
mwManager = new MainWindowManager(this);
}
public MainWindow(string user)
@@ -41,9 +42,9 @@ namespace bib_talk
InitializeTimer();
LoadData();
database = new MainWindowDatabase(this);
mwManager = new MainWindowManager(this, user);
database.LoadMessages();
mwManager.LoadMessages();
}
private void InitializeTimer()
@@ -52,7 +53,7 @@ namespace bib_talk
{
Interval = TimeSpan.FromSeconds(2)
};
_timer.Tick += (sender, e) => { database.LoadMessages(); database.LoadOnlineUsers(); };
_timer.Tick += (sender, e) => { mwManager.LoadMessages(); mwManager.LoadOnlineUsers(); };
_timer.Start();
}
public void LoadData()
@@ -62,7 +63,7 @@ namespace bib_talk
private void CloseButton_Click(object sender, RoutedEventArgs e)
{
database.LogoutUser();
mwManager.LogoutUser();
this.Close();
}
@@ -78,13 +79,13 @@ namespace bib_talk
{
if (e.Key == Key.Enter)
{
database.SendMessage();
mwManager.SendMessage();
}
}
private async void send_Click(object sender, RoutedEventArgs e)
{
database.SendMessage();
mwManager.SendMessage();
}
private void ChatFenster_Click(object sender, RoutedEventArgs e)
@@ -139,27 +140,7 @@ namespace bib_talk
if (openFileDialog.ShowDialog() == true)
{
string filePath = openFileDialog.FileName;
await UploadProfileImage(filePath);
}
}
private async Task UploadProfileImage(string filePath)
{
using (var client = new HttpClient())
{
var form = new MultipartFormDataContent();
var stream = File.OpenRead(filePath);
form.Add(new StreamContent(stream), "file", Path.GetFileName(filePath));
var response = await client.PostAsync($"http://daddypig.dns.navy:5114/api/users/upload-profile-image?username={loggedinUser}", form);
if (response.IsSuccessStatusCode)
{
MessageBox.Show("Profilbild erfolgreich hochgeladen");
}
else
{
MessageBox.Show("Fehler beim Hochladen des Profilbilds");
}
await mwManager.UploadProfileImage(filePath);
}
}
}
@@ -174,12 +155,14 @@ namespace bib_talk
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; }

View File

@@ -17,14 +17,19 @@ using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using bib_talk.Business;
namespace bib_talk
{
public partial class RegisterWindow : Window
{
RegisterManager registerManager;
public RegisterWindow()
{
InitializeComponent();
registerManager = new RegisterManager(this);
}
private void Hyperlink_RequestNavigate(object sender, RequestNavigateEventArgs e)
@@ -59,9 +64,9 @@ namespace bib_talk
{
if (ValidateRegistration())
{
RegisterDatabase registerDatabase = new RegisterDatabase(this);
// Business Schicht Aufruf
registerManager.RegisterServer();
await registerDatabase.RegisterServer();
Login login = new Login();
login.Show();
this.Close();

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB