bib_Talk_Chatprogramm/bibtalk/bib-talk/Repository/LoginDatabase.cs

50 lines
1.8 KiB
C#
Raw Normal View History

using Newtonsoft.Json;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
namespace bib_talk.Repository
{
public class LoginDatabase
{
Login loginWindow; // Login Window initialisieren
// Konstruker der LoginDatabase
public LoginDatabase(Login loginWindow)
{
this.loginWindow = loginWindow; // Login Window deklarieren
}
// Methode um den User einzuloggen via eines Server aufrufs
public async Task LoginServer()
{
string username = loginWindow.usernbox.Text;
string password = loginWindow.passwordbox.Password;
var loginData = new { Username = username, Password = password, Email = "", Birthday = "", IsOnline = ""};
string json = JsonConvert.SerializeObject(loginData);
using (var client = new HttpClient())
{
var content = new StringContent(json, Encoding.UTF8, "application/json");
var response = await client.PostAsync("http://daddypig.dns.navy:5114/api/users/login", content);
if (response.IsSuccessStatusCode)
{
var responseContent = await response.Content.ReadAsStringAsync();
var responseData = JsonConvert.DeserializeObject<dynamic>(responseContent);
string loggedInUsername = responseData.username;
MainWindow mainWindow = new MainWindow(loggedInUsername);
mainWindow.Show();
loginWindow.Close();
}
else
{
var responseContent = await response.Content.ReadAsStringAsync();
MessageBox.Show($"Login failed: {responseContent}");
}
}
}
}
}