From 5adfd83627d8cd5ef69326dba6e219c6ddb053c1 Mon Sep 17 00:00:00 2001 From: Waldi Date: Fri, 15 Sep 2017 09:49:32 +0200 Subject: [PATCH] =?UTF-8?q?ein=20par=20kleinigkeiten=20fixes=20und=20neuer?= =?UTF-8?q?=20wait=20layer=20f=C3=BCr=20den=20chat?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ChatController/ChatControlWaitLayer.xaml | 165 ++++++++++++++++++ ChatController/ChatControlWaitLayer.xaml.cs | 15 ++ ChatController/ChatController.csproj | 8 + .../ChatKlassen/ChatControlExtensions.cs | 16 ++ ChatController/ChatMainControl.xaml | 15 +- ChatController/ChatMainControl.xaml.cs | 74 ++++++-- ChatController/HauptKlassen/Chat.cs | 11 +- ChatController/LoginControl.xaml.cs | 42 ++--- PrototypChat/.vs/PrototypChat/v15/.suo | Bin 97280 -> 90624 bytes PrototypChat/MainWindow.xaml.cs | 4 +- 10 files changed, 309 insertions(+), 41 deletions(-) create mode 100644 ChatController/ChatControlWaitLayer.xaml create mode 100644 ChatController/ChatControlWaitLayer.xaml.cs create mode 100644 ChatController/ChatKlassen/ChatControlExtensions.cs diff --git a/ChatController/ChatControlWaitLayer.xaml b/ChatController/ChatControlWaitLayer.xaml new file mode 100644 index 0000000..4feacf5 --- /dev/null +++ b/ChatController/ChatControlWaitLayer.xaml @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ChatController/ChatControlWaitLayer.xaml.cs b/ChatController/ChatControlWaitLayer.xaml.cs new file mode 100644 index 0000000..496b153 --- /dev/null +++ b/ChatController/ChatControlWaitLayer.xaml.cs @@ -0,0 +1,15 @@ +using System.Windows.Controls; + +namespace BeWo.View +{ + /// + /// Interaction logic for WaitLayer.xaml + /// + public partial class ChatControlWaitLayer : UserControl + { + public ChatControlWaitLayer() + { + this.InitializeComponent(); + } + } +} \ No newline at end of file diff --git a/ChatController/ChatController.csproj b/ChatController/ChatController.csproj index 683b040..5a38ec1 100644 --- a/ChatController/ChatController.csproj +++ b/ChatController/ChatController.csproj @@ -58,6 +58,7 @@ ChatEmojiiControl.xaml + @@ -76,6 +77,9 @@ + + ChatControlWaitLayer.xaml + @@ -90,6 +94,10 @@ Designer MSBuild:Compile + + MSBuild:Compile + Designer + diff --git a/ChatController/ChatKlassen/ChatControlExtensions.cs b/ChatController/ChatKlassen/ChatControlExtensions.cs new file mode 100644 index 0000000..0207ef9 --- /dev/null +++ b/ChatController/ChatKlassen/ChatControlExtensions.cs @@ -0,0 +1,16 @@ +using System; +using System.Windows.Threading; +using System.Windows; + +namespace ChatController.ChatKlassen +{ + public static class ChatControlExtensions + { + private static Action EmptyDelegatee = delegate() { }; + + public static void RefreshChatUI(this UIElement uiElement) + { + uiElement.Dispatcher.Invoke(DispatcherPriority.Render, EmptyDelegatee); + } + } +} \ No newline at end of file diff --git a/ChatController/ChatMainControl.xaml b/ChatController/ChatMainControl.xaml index 8c12616..a89bb75 100644 --- a/ChatController/ChatMainControl.xaml +++ b/ChatController/ChatMainControl.xaml @@ -181,7 +181,7 @@ - + @@ -254,7 +254,7 @@ - + @@ -276,11 +276,12 @@ - + + diff --git a/ChatController/ChatMainControl.xaml.cs b/ChatController/ChatMainControl.xaml.cs index 4f2f9e6..1698f00 100644 --- a/ChatController/ChatMainControl.xaml.cs +++ b/ChatController/ChatMainControl.xaml.cs @@ -18,6 +18,7 @@ using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using System.Windows.Threading; +using BeWo.View; using ChatController.ChatKlassen; using ChatController.HauptKlassen; using ChatController.Klassen; @@ -77,7 +78,7 @@ namespace ChatController HorcheAlleGruppenNachrichten(); } - + public AktuellerKontakt GetAktuellenKontakt() { if (AktChatUser != null) @@ -129,7 +130,10 @@ namespace ChatController private void Clientlist_OnSelectionChanged(object sender, SelectionChangedEventArgs e) { - if(Clientlist.SelectedItem != null) { + if(Clientlist.SelectedItem != null) + { + + StartWaiting(); Cursor = Cursors.Wait; scrollPrueferAktivieren = false; @@ -163,6 +167,8 @@ namespace ChatController HorcheAktivNachNachrichten(); Cursor = Cursors.Arrow; + + EndWaiting(); } } @@ -211,11 +217,9 @@ namespace ChatController var kontakt = (AktuellerKontakt)AktChatUser.Items[0]; _chat.Einfuegen(kontakt.GroupId); } - - //Bug Wegen Klient und so + private void Chat_OnContextMenuOpening(object sender, ContextMenuEventArgs e) { - //prüfe ob ein Bild angeclickt wurde var chatItems = Chat.SelectedItems; if (chatItems.Count > 0) @@ -274,15 +278,21 @@ namespace ChatController ContextItemSpeichernUnter.Visibility = Visibility.Collapsed; } - - //Bug prüfe ob der aktulle Chat partner ein Klient ist + //prüfe ob dokumentation erlaubt var kontakt = (AktuellerKontakt)AktChatUser.Items[0]; - if (true && Chat.ContextMenu.Items.Count > 2) + if (kontakt.CustomerPersonOid == null && Chat.ContextMenu.Items.Count > 2) { var contextItems = Chat.ContextMenu.Items; var ContextItemSpeichernUnter = (MenuItem)contextItems[2]; ContextItemSpeichernUnter.Visibility = Visibility.Collapsed; } + else if(Chat.ContextMenu.Items.Count > 2) + { + var contextItems = Chat.ContextMenu.Items; + var ContextItemSpeichernUnter = (MenuItem)contextItems[2]; + ContextItemSpeichernUnter.Visibility = Visibility.Visible; + } + if (Chat.ContextMenu.Items.Count == 0) { @@ -476,7 +486,9 @@ namespace ChatController //nix } else - { + { + Cursor = Cursors.Wait; + //StartWaiting(); scrollPrueferAktivieren = false; Chat.Items.MoveCurrentToFirst(); @@ -490,7 +502,9 @@ namespace ChatController Chat.ItemsSource = xy; - Chat.ScrollIntoView(item); + Chat.ScrollIntoView(item); + //EndWaiting(); + Cursor = Cursors.Arrow; } } } @@ -714,7 +728,7 @@ namespace ChatController #endregion - #region Zeige Erhaltene Daten An In Dem Fall Bilder Zurzeit + #region Zeige Erhaltene Daten per doppelclick An In Dem Fall Bilder Zurzeit private void Chat_OnMouseDoubleClick(object sender, MouseButtonEventArgs e) { @@ -774,5 +788,43 @@ namespace ChatController #endregion + #region Wait Layer + + private ChatControlWaitLayer _waitLayer = null; + + public void StartWaiting() + { + Dispatcher.BeginInvoke(DispatcherPriority.Background, (Action)StartWaitingImmediately); + } + + public void StartWaitingImmediately() + { + if (_waitLayer == null) + { + _waitLayer = new ChatControlWaitLayer(); + //Grid.SetColumnSpan(_waitLayer, 3); + Grid.SetRowSpan(_waitLayer, 3); + GridRechts.Children.Add(_waitLayer); + Panel.SetZIndex(_waitLayer, int.MaxValue); + _waitLayer.RefreshChatUI(); + } + } + + public void EndWaiting() + { + Dispatcher.BeginInvoke( + DispatcherPriority.Background, + (Action)delegate + { + if (_waitLayer != null) + { + GridRechts.Children.Remove(_waitLayer); + _waitLayer = null; + } + }); + } + + #endregion + } } diff --git a/ChatController/HauptKlassen/Chat.cs b/ChatController/HauptKlassen/Chat.cs index cb2e0af..4261a6a 100644 --- a/ChatController/HauptKlassen/Chat.cs +++ b/ChatController/HauptKlassen/Chat.cs @@ -64,6 +64,7 @@ namespace ChatController.HauptKlassen var lastMS = value.LastMessage; + if (lastMS != null) { if (lastMS.Text != null) @@ -72,6 +73,12 @@ namespace ChatController.HauptKlassen timestamp = DateTime.Parse(lastMS.Timestamp.Date); } } + + if (message.Equals("") && value.LastMessage != null && !value.LastMessage.File.Equals("")) + { + message = Path.GetFileName(value.LastMessage.File); + } + //null steht für employee Kontaktliste.Add(new KontaktlistBuilder(value.Name, AvatarToImageSourceConverter(value.Avatar), message, timestamp, value.Oid, null)); @@ -169,7 +176,7 @@ namespace ChatController.HauptKlassen if (DokumentExtension.Contains(Path.GetExtension(ChatMessage.File).ToUpperInvariant())) { - Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name, ChatMessage.Text, + Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name, Path.GetFileName(ChatMessage.File), timeformated.ToString("dd MMMM yyyy HH:mm:ss"), true,ChatMessage.File, timeformated)); } @@ -201,7 +208,7 @@ namespace ChatController.HauptKlassen if (DokumentExtension.Contains(Path.GetExtension(ChatMessage.File).ToUpperInvariant())) { //Dokument - Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name, ChatMessage.Text, + Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name,Path.GetFileName(ChatMessage.File), timeformated.ToString("dd MMMM yyyy HH:mm:ss"), false, ChatMessage.File, timeformated)); } diff --git a/ChatController/LoginControl.xaml.cs b/ChatController/LoginControl.xaml.cs index 771bec5..bf27fa0 100644 --- a/ChatController/LoginControl.xaml.cs +++ b/ChatController/LoginControl.xaml.cs @@ -142,35 +142,37 @@ namespace ChatController private void SpeichereDatenInDatei() { try - { - using (StreamWriter sw = new StreamWriter(_dateiPfad)) - { + { + 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); + 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 byt2 = enc.GetBytes(TextBoxChatCode.Text); + var bytes2 = Convert.ToBase64String(byt2); - var byt3 = enc.GetBytes(TextBoxBenutzerName.Text); - var bytes3 = Convert.ToBase64String(byt3); + var byt3 = enc.GetBytes(TextBoxBenutzerName.Text); + var bytes3 = Convert.ToBase64String(byt3); - var byt4 = enc.GetBytes(TextBoxPasswort.Password); - var bytes4 = Convert.ToBase64String(byt4); + var byt4 = enc.GetBytes(TextBoxPasswort.Password); + var bytes4 = Convert.ToBase64String(byt4); - var byt5 = enc.GetBytes(Merken.IsChecked.ToString()); - var bytes5 = Convert.ToBase64String(byt5); + 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); + sw.WriteLine(bytes); + sw.WriteLine(bytes2); + sw.WriteLine(bytes3); + sw.WriteLine(bytes4); + sw.WriteLine(bytes5); - File.SetAttributes(_dateiPfad, FileAttributes.ReadOnly); + File.SetAttributes(_dateiPfad, FileAttributes.ReadOnly); + } } } catch (Exception e) diff --git a/PrototypChat/.vs/PrototypChat/v15/.suo b/PrototypChat/.vs/PrototypChat/v15/.suo index 70c3754f7f7cf9ac8b24b9fbc7ca7c02c5b48986..55dd87bddb19fa346faa1f6d8e24bac38c7df6fa 100644 GIT binary patch delta 3093 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 Q@}gC>8{3~9^d?*AAHY(`tN;K2 diff --git a/PrototypChat/MainWindow.xaml.cs b/PrototypChat/MainWindow.xaml.cs index 96f3ac7..c318b13 100644 --- a/PrototypChat/MainWindow.xaml.cs +++ b/PrototypChat/MainWindow.xaml.cs @@ -71,6 +71,7 @@ namespace PrototypChat ChatMainControl.InitMitChatdaten(x); + //ChatMainControl.AddContextMenu("In Dokumentation übernehmen", ChatMainControl_OnClickContextMenuItem); } @@ -106,7 +107,8 @@ namespace PrototypChat } } } - + + //private void ChatMainControl_OnClickContextMenuItem(String menuItem) //{