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"; //OwnChatX1253781 private string _merkeDaten = "MerkeChatTeilAnmeldeDaten.txt"; //OwnChatX1253782 public LoginControl() { InitializeComponent(); LeseDateiFallsVorhanden(); } private void AnmeldenButton_OnClick(object sender, RoutedEventArgs e) { try { #if DEBUG Cursor = Cursors.Wait; Login _login = new Login("4368658435", "ZMCKb-BckTt", "RuppelW", "ABXT32wgtruppeldiedup"); var x = _login.AnmeldevorgangDurchFuehren(); if (OnLogin != null) { AutosetDaten(); 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) { AutosetDaten(); if (Merken.IsChecked == true) { SpeichereDatenInDatei(); } else { LoescheGespeicherteDatei(); } OnLogin(x); } else { MessageBox.Show("Fehler bei der Anmeldung. Bitte überprüfen Sie die Anmeldeinformationen.", "Info", MessageBoxButton.OK, MessageBoxImage.Asterisk); } Cursor = Cursors.Arrow; } else { MessageBox.Show("Bitte alle Felder ausfüllen!", "Info", MessageBoxButton.OK); } #endif } catch (Exception exception) { //MessageBox.Show("Fehler bei der Anmeldung!\n\n" + exception.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Asterisk); MessageBox.Show("Fehler bei der Anmeldung. Bitte überprüfen Sie die Anmeldeinformationen.", "Info", MessageBoxButton.OK, MessageBoxImage.Asterisk); //throw; Cursor = Cursors.Arrow; } } #region Speichern / Laden / Löschen der Datei private void LeseDateiFallsVorhanden() { try { if (File.Exists(_merkeDaten)) { List merkdaten = new List(); using (StreamReader sr = new StreamReader(_merkeDaten, true)) { string line = ""; while ((line = sr.ReadLine()) != null) { var encodedTextBytes = Convert.FromBase64String(line); string plainText = Encoding.UTF8.GetString(encodedTextBytes); merkdaten.Add(plainText); } } if (merkdaten.Count == 2) { TextBoxKundennummer.Text = merkdaten[0]; TextBoxChatCode.Text = merkdaten[1]; } } 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 == 3) { TextBoxBenutzerName.Text = daten[0]; TextBoxPasswort.Password = daten[1]; Merken.IsChecked = Convert.ToBoolean(daten[2]); } } } catch (Exception e) { MessageBox.Show("Ups, da ist was schief gelaufen: \n" + e.Message, "Fehler", MessageBoxButton.OK); } } //Kundenummer und ChatCode sollen Separat gespeichert werden private void AutosetDaten() { try { if (!File.Exists(_merkeDaten)) { using (StreamWriter sw = new StreamWriter(_merkeDaten)) { 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); sw.WriteLine(bytes); sw.WriteLine(bytes2); File.SetAttributes(_merkeDaten, FileAttributes.ReadOnly); } } } catch (Exception e) { MessageBox.Show("Ups, da ist was schief gelaufen: \n" + e.Message, "Fehler", MessageBoxButton.OK); } } private void SpeichereDatenInDatei() { try { if (!File.Exists(_dateiPfad)) { 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.SetAttributes(_dateiPfad, FileAttributes.Normal); File.Delete(_dateiPfad); } } catch (Exception e) { MessageBox.Show("Ups, da ist was schief gelaufen: \n" + e.Message, "Fehler", MessageBoxButton.OK); } } #endregion } }