From 8b908d3698eebb205b424e4ea2041b64cb4c16d4 Mon Sep 17 00:00:00 2001 From: Waldi Date: Wed, 20 Sep 2017 11:46:00 +0200 Subject: [PATCH] Einige updates darunter fixes und Link und Kopieren funktion --- .../ChatKlassen/KontaktMessageBuilder.cs | 73 +++++++++- ChatController/ChatMainControl.xaml | 11 ++ ChatController/ChatMainControl.xaml.cs | 11 +- ChatController/HauptKlassen/Chat.cs | 3 +- ChatController/LoginControl.xaml.cs | 137 +++++++++++++----- PrototypChat/.vs/PrototypChat/v15/.suo | Bin 139776 -> 136704 bytes PrototypChat/MainWindow.xaml | 2 +- PrototypChat/MainWindow.xaml.cs | 17 +-- PrototypChat/PrototypChat.csproj | 2 +- 9 files changed, 194 insertions(+), 62 deletions(-) diff --git a/ChatController/ChatKlassen/KontaktMessageBuilder.cs b/ChatController/ChatKlassen/KontaktMessageBuilder.cs index f3e860b..c08e849 100644 --- a/ChatController/ChatKlassen/KontaktMessageBuilder.cs +++ b/ChatController/ChatKlassen/KontaktMessageBuilder.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; +using System.Text.RegularExpressions; using System.Threading.Tasks; using System.Windows; using System.Windows.Media; @@ -30,7 +31,17 @@ namespace ChatController.ChatKlassen Posi = "Left"; } - ChatVisibility = Visibility.Visible; + if (IsHyperlink(message)) + { + HyperlinkVisibility = Visibility.Visible; + ChatVisibility = Visibility.Collapsed; + } + else { + ChatVisibility = Visibility.Visible; + HyperlinkVisibility = Visibility.Collapsed; + } + + SoundVisibility = Visibility.Collapsed; _pictureVisibility = Visibility.Collapsed; DokumentVisibility = Visibility.Collapsed; @@ -74,7 +85,7 @@ namespace ChatController.ChatKlassen ChatVisibility = Visibility.Collapsed; SoundVisibility = Visibility.Collapsed; - + HyperlinkVisibility = Visibility.Collapsed; DokumentVisibility = Visibility.Collapsed; _herunterladen = Visibility.Collapsed; } @@ -107,8 +118,65 @@ namespace ChatController.ChatKlassen ChatVisibility = Visibility.Collapsed; SoundVisibility = Visibility.Collapsed; _herunterladen = Visibility.Collapsed; + HyperlinkVisibility = Visibility.Collapsed; } + #region Hyperlink Detection + + private static readonly Regex UrlRegex = new Regex(@"(?#Protocol)(?:(?:ht|f)tp(?:s?)\:\/\/|~/|/)?(?#Username:Password)(?:\w+:\w+@)?(?#Subdomains)(?:(?:[-\w]+\.)+(?#TopLevel Domains)(?:com|org|net|gov|mil|biz|info|mobi|name|aero|jobs|museum|travel|[a-z]{2}))(?#Port)(?::[\d]{1,5})?(?#Directories)(?:(?:(?:/(?:[-\w~!$+|.,=]|%[a-f\d]{2})+)+|/)+|\?|#)?(?#Query)(?:(?:\?(?:[-\w~!$+|.,*:]|%[a-f\d{2}])+=(?:[-\w~!$+|.,*:=]|%[a-f\d]{2})*)(?:&(?:[-\w~!$+|.,*:]|%[a-f\d{2}])+=(?:[-\w~!$+|.,*:=]|%[a-f\d]{2})*)*)*(?#Anchor)(?:#(?:[-\w~!$+|.,*:=]|%[a-f\d]{2})*)?"); + + public static bool IsHyperlink(string word) + { + // First check to make sure the word has at least one of the characters we need to make a hyperlink + try + { + if (word.IndexOfAny(@":.\/".ToCharArray()) != -1) + { + if (Uri.IsWellFormedUriString(word, UriKind.Absolute)) + { + // The string is an Absolute URI + if (word.StartsWith("http://")) { + return true; + } + else + { + return false; + } + } + else if (UrlRegex.IsMatch(word)) + { + //hier der Bereich hin der die uri splittet wenn neben dem link auch text gesendet wird + + + Uri uri = new Uri(word, UriKind.RelativeOrAbsolute); + + if (!uri.IsAbsoluteUri) + { + // rebuild it it with http to turn it into an Absolute URI + uri = new Uri(@"http://" + word, UriKind.Absolute); + } + + if (uri.IsAbsoluteUri) + { + return true; + } + } + else + { + return false; + } + } + } + catch (Exception e) + { + return false; + } + + return false; + } + + #endregion + #region kram der sortiert werden muss //Alter Kram @@ -281,6 +349,7 @@ namespace ChatController.ChatKlassen public Visibility MainVisibility { get; set; } public Visibility ChatVisibility { get; set; } + public Visibility HyperlinkVisibility { get; set; } public Visibility LoadNextVisibility { get; set; } public object LoadObject { get; set; } diff --git a/ChatController/ChatMainControl.xaml b/ChatController/ChatMainControl.xaml index 28e9aa1..2fa5877 100644 --- a/ChatController/ChatMainControl.xaml +++ b/ChatController/ChatMainControl.xaml @@ -246,6 +246,17 @@ + + + + + + + + + + + diff --git a/ChatController/ChatMainControl.xaml.cs b/ChatController/ChatMainControl.xaml.cs index 6499687..12b86dc 100644 --- a/ChatController/ChatMainControl.xaml.cs +++ b/ChatController/ChatMainControl.xaml.cs @@ -5,6 +5,7 @@ using System.IO; using System.Linq; using System.Net; using System.Text; +using System.Text.RegularExpressions; using System.Threading; using System.Threading.Tasks; using System.Windows; @@ -31,8 +32,6 @@ namespace ChatController /// public partial class ChatMainControl : UserControl { - - private Chat _chat; private AktuellerKontakt _aktuellerKontakt; @@ -867,6 +866,12 @@ namespace ChatController #endregion - + #region link request + private void Hyperlink_OnRequestNavigate(object sender, RequestNavigateEventArgs e) + { + Process.Start(e.Uri.ToString()); + } + #endregion + } } diff --git a/ChatController/HauptKlassen/Chat.cs b/ChatController/HauptKlassen/Chat.cs index bc9e15f..ae69f33 100644 --- a/ChatController/HauptKlassen/Chat.cs +++ b/ChatController/HauptKlassen/Chat.cs @@ -242,6 +242,7 @@ namespace ChatController.HauptKlassen bix.BeginInit(); bix.UriSource = new Uri(link); bix.EndInit(); + return bix; } catch (Exception edf) @@ -1145,7 +1146,7 @@ namespace ChatController.HauptKlassen else if (d.GetDataPresent(DataFormats.Text)) { - string text = (String)d.GetData(DataFormats.Text); + string text = (string)d.GetData(DataFormats.StringFormat); SendMessage(text, groupOid); } diff --git a/ChatController/LoginControl.xaml.cs b/ChatController/LoginControl.xaml.cs index b7fe30d..684ea0b 100644 --- a/ChatController/LoginControl.xaml.cs +++ b/ChatController/LoginControl.xaml.cs @@ -28,7 +28,9 @@ namespace ChatController public event LoginDelegate OnLogin; - private string _dateiPfad = "ChatAnmeldeDaten.txt"; + private string _dateiPfad = "ChatAnmeldeDaten.txt"; //OwnChatX1253781 + + private string _merkeDaten = "MerkeChatTeilAnmeldeDaten.txt"; //OwnChatX1253782 public LoginControl() { @@ -40,33 +42,32 @@ namespace ChatController { try { +#if DEBUG + Cursor = Cursors.Wait; + + Login _login = new Login("4368658435", "ZMCKb-BckTt", "RuppelW", "ABXT32wgtruppeldiedup"); + + var x = _login.AnmeldevorgangDurchFuehren(); -//#if DEBUG -// Cursor = Cursors.Wait; + if (OnLogin != null) + { + AutosetDaten(); + if (Merken.IsChecked == true) + { + SpeichereDatenInDatei(); + } + else + { + LoescheGespeicherteDatei(); + } + OnLogin(x); + } -// 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("") && + Cursor = Cursors.Arrow; +#else + if (!TextBoxKundennummer.Text.Equals("") && !TextBoxChatCode.Text.Equals("") && !TextBoxBenutzerName.Text.Equals("") && !TextBoxPasswort.Password.Equals("")) { Cursor = Cursors.Wait; @@ -77,6 +78,7 @@ namespace ChatController if (OnLogin != null && x != null) { + AutosetDaten(); if (Merken.IsChecked == true) { SpeichereDatenInDatei(); @@ -99,13 +101,14 @@ namespace ChatController { MessageBox.Show("Bitte alle Felder ausfüllen!", "Info", MessageBoxButton.OK); } - //#endif +#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!\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; } } @@ -116,6 +119,31 @@ namespace ChatController { 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(); @@ -133,14 +161,42 @@ namespace ChatController } } - 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]); + 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) @@ -158,11 +214,11 @@ namespace ChatController { Encoding enc = new UTF8Encoding(); - var byt = enc.GetBytes(TextBoxKundennummer.Text); - var bytes = Convert.ToBase64String(byt); + //var byt = enc.GetBytes(TextBoxKundennummer.Text); + //var bytes = Convert.ToBase64String(byt); - var byt2 = enc.GetBytes(TextBoxChatCode.Text); - var bytes2 = Convert.ToBase64String(byt2); + //var byt2 = enc.GetBytes(TextBoxChatCode.Text); + //var bytes2 = Convert.ToBase64String(byt2); var byt3 = enc.GetBytes(TextBoxBenutzerName.Text); var bytes3 = Convert.ToBase64String(byt3); @@ -175,8 +231,8 @@ namespace ChatController var bytes5 = Convert.ToBase64String(byt5); - sw.WriteLine(bytes); - sw.WriteLine(bytes2); + //sw.WriteLine(bytes); + //sw.WriteLine(bytes2); sw.WriteLine(bytes3); sw.WriteLine(bytes4); sw.WriteLine(bytes5); @@ -197,6 +253,7 @@ namespace ChatController { if (File.Exists(_dateiPfad)) { + File.SetAttributes(_dateiPfad, FileAttributes.Normal); File.Delete(_dateiPfad); } } @@ -206,7 +263,7 @@ namespace ChatController } } - #endregion +#endregion } diff --git a/PrototypChat/.vs/PrototypChat/v15/.suo b/PrototypChat/.vs/PrototypChat/v15/.suo index 4800af42d49fe21b366a9b7510cd8e9a8152f266..5e85344502346e80471768350876c250b941b675 100644 GIT binary patch delta 7303 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 Y+vSc{U^?H!6=f(qp*{R&CHeDz0jfP7YXATM delta 11962 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 diff --git a/PrototypChat/MainWindow.xaml b/PrototypChat/MainWindow.xaml index 4a48a0f..fd3003c 100644 --- a/PrototypChat/MainWindow.xaml +++ b/PrototypChat/MainWindow.xaml @@ -6,7 +6,7 @@ xmlns:local="clr-namespace:ownChat" xmlns:cc="clr-namespace:ChatController;assembly=ChatController" mc:Ignorable="d" WindowStartupLocation="CenterScreen" - Title="ownChat Desktop" Height="700" Width="900" x:Name="MainView"> + Title="ownChat Desktop" Height="700" Width="900" x:Name="MainView" Closed="MainWindow_OnClosed"> diff --git a/PrototypChat/MainWindow.xaml.cs b/PrototypChat/MainWindow.xaml.cs index 7829aa1..ada16b0 100644 --- a/PrototypChat/MainWindow.xaml.cs +++ b/PrototypChat/MainWindow.xaml.cs @@ -110,22 +110,11 @@ namespace ownChat } } - - //private void ChatMainControl_OnClickContextMenuItem(String menuItem) - //{ - - //} - - //geht nicht - public void CloseWindow() + private void MainWindow_OnClosed(object sender, EventArgs e) { - CommandBindings.Add(new CommandBinding(ApplicationCommands.Close, (s, e) => - { - MessageBox.Show("Schließe mich jetzt "); - _emojiView = null; - })); + _emojiView = null; + Environment.Exit(0); } - } } diff --git a/PrototypChat/PrototypChat.csproj b/PrototypChat/PrototypChat.csproj index 6966914..f6f6aa2 100644 --- a/PrototypChat/PrototypChat.csproj +++ b/PrototypChat/PrototypChat.csproj @@ -65,7 +65,7 @@ true - true + false