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