using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using ChatController.HauptKlassen;
using ChatController.Klassen;
namespace ChatController
{
///
/// Interaktionslogik für Login.xaml
///
public partial class LoginControl : UserControl
{
public delegate void LoginDelegate(ChatDatenUebergabe cdu);
public event LoginDelegate OnLogin;
private string _dateiPfad = "ChatAnmeldeDaten.txt";
public LoginControl()
{
InitializeComponent();
LeseDateiFallsVorhanden();
}
private void AnmeldenButton_OnClick(object sender, RoutedEventArgs e)
{
#if DEBUG
Cursor = Cursors.Wait;
Login _login = new Login("4368658435", "ZMCKb-BckTt", "RuppelW", "ABXT32wgtruppeldiedup");
var x = _login.AnmeldevorgangDurchFuehren();
if (OnLogin != null)
{
if (Merken.IsChecked == true)
{
SpeichereDatenInDatei();
}
else
{
LoescheGespeicherteDatei();
}
OnLogin(x);
}
Cursor = Cursors.Arrow;
#else
if (!TextBoxKundennummer.Text.Equals("") && !TextBoxChatCode.Text.Equals("") &&
!TextBoxBenutzerName.Text.Equals("") && !TextBoxPasswort.Password.Equals(""))
{
Cursor = Cursors.Wait;
Login _login = new Login(TextBoxKundennummer.Text, TextBoxChatCode.Text, TextBoxBenutzerName.Text, TextBoxPasswort.Password);
var x = _login.AnmeldevorgangDurchFuehren();
if (OnLogin != null && x != null)
{
if (Merken.IsChecked == true)
{
SpeichereDatenInDatei();
}
else
{
LoescheGespeicherteDatei();
}
OnLogin(x);
}
else
{
MessageBox.Show("Die AnmeldeDaten sind Falsch!", "Info", MessageBoxButton.OK);
}
Cursor = Cursors.Arrow;
}
else
{
MessageBox.Show("Bitte alle Felder ausfüllen!", "Info", MessageBoxButton.OK);
}
#endif
}
#region Speichern / Laden / Löschen der Datei
private void LeseDateiFallsVorhanden()
{
try
{
if (File.Exists(_dateiPfad)) {
List daten = new List();
using (StreamReader sr = new StreamReader(_dateiPfad,true))
{
string line = "";
while ((line = sr.ReadLine()) != null)
{
var encodedTextBytes = Convert.FromBase64String(line);
string plainText = Encoding.UTF8.GetString(encodedTextBytes);
daten.Add(plainText);
}
}
if(daten.Count == 5) {
TextBoxKundennummer.Text = daten[0];
TextBoxChatCode.Text = daten[1];
TextBoxBenutzerName.Text = daten[2];
TextBoxPasswort.Password = daten[3];
Merken.IsChecked = Convert.ToBoolean(daten[4]);
}
}
}
catch (Exception e)
{
MessageBox.Show("Ups, da ist was schief gelaufen: \n" + e.Message, "Fehler", MessageBoxButton.OK);
}
}
private void SpeichereDatenInDatei()
{
try
{
using (StreamWriter sw = new StreamWriter(_dateiPfad))
{
Encoding enc = new UTF8Encoding();
var byt = enc.GetBytes(TextBoxKundennummer.Text);
var bytes = Convert.ToBase64String(byt);
var byt2 = enc.GetBytes(TextBoxChatCode.Text);
var bytes2 = Convert.ToBase64String(byt2);
var byt3 = enc.GetBytes(TextBoxBenutzerName.Text);
var bytes3 = Convert.ToBase64String(byt3);
var byt4 = enc.GetBytes(TextBoxPasswort.Password);
var bytes4 = Convert.ToBase64String(byt4);
var byt5 = enc.GetBytes(Merken.IsChecked.ToString());
var bytes5 = Convert.ToBase64String(byt5);
sw.WriteLine(bytes);
sw.WriteLine(bytes2);
sw.WriteLine(bytes3);
sw.WriteLine(bytes4);
sw.WriteLine(bytes5);
File.SetAttributes(_dateiPfad, FileAttributes.ReadOnly);
}
}
catch (Exception e)
{
MessageBox.Show("Ups, da ist was schief gelaufen: \n" + e.Message, "Fehler", MessageBoxButton.OK);
}
}
private void LoescheGespeicherteDatei()
{
try
{
if (File.Exists(_dateiPfad))
{
File.Delete(_dateiPfad);
}
}
catch (Exception e)
{
MessageBox.Show("Ups, da ist was schief gelaufen: \n" + e.Message, "Fehler", MessageBoxButton.OK);
}
}
#endregion
}
}