From c4041bd11aa9bd6cb2d4beabbda9a6c0702da54e Mon Sep 17 00:00:00 2001 From: Waldi Date: Fri, 20 Oct 2017 07:34:26 +0200 Subject: [PATCH 1/5] Fixes --- ChatController/ChatMainControl.xaml.cs | 66 +++++++----------- ChatController/HauptKlassen/Chat.cs | 77 +++++++++++++-------- ChatController/LoginControl.xaml | 2 +- ChatController/LoginControl.xaml.cs | 27 ++++++-- ChatController/LoginKlassen/UserMessages.cs | 2 +- 5 files changed, 100 insertions(+), 74 deletions(-) diff --git a/ChatController/ChatMainControl.xaml.cs b/ChatController/ChatMainControl.xaml.cs index a9a8d70..15fbe60 100644 --- a/ChatController/ChatMainControl.xaml.cs +++ b/ChatController/ChatMainControl.xaml.cs @@ -149,7 +149,7 @@ namespace ChatController { doSync = _chat.DoSynchronisation(_chatDaten.ApiKey, _chatDaten.Kundennummer); - if (true || doSync) + if (doSync) { var aktuelleGruppen = _chat.GruppenAktuallisieren(); @@ -446,6 +446,7 @@ namespace ChatController _chat.SendMessage(Chatbox.Text, kontakt.GroupId); + // neu performance versuch Adde Chatbox.Text = ""; @@ -804,9 +805,9 @@ namespace ChatController break; } - Task.Delay(5000); + //Task.Delay(5000); - //Thread.Sleep(5000); + Thread.Sleep(5000); } } @@ -833,21 +834,32 @@ namespace ChatController private void Chat_OnMouseDoubleClick(object sender, MouseButtonEventArgs e) { + Cursor = Cursors.Wait; + StartWaiting(); var chatItems = Chat.SelectedItems; - if (chatItems.Count > 0) { + if (chatItems.Count > 0) + { foreach (var items in chatItems) { var item = items as KontaktMessageBuilder; if (item != null && item.ImageSources != null) { - + _chat.ShowPicture(item); - + EndWaiting(); + Cursor = Cursors.Arrow; + } } } + else + { + EndWaiting(); + Cursor = Cursors.Arrow; + } + } #endregion @@ -954,45 +966,17 @@ namespace ChatController { Cursor = Cursors.Wait; - //StartWaiting(); - //if (_isDesktopVersion) - //{ - // var doSync = _chat.DoSynchronisation(_chatDaten.ApiKey, _chatDaten.Kundennummer); + var aktuelleGruppen = _chat.GruppenAktuallisieren(); - // if (doSync) - // { - var aktuelleGruppen = _chat.GruppenAktuallisieren(); + var x = _chat.GroupklassenAktuallisieren(aktuelleGruppen); - var x = _chat.GroupklassenAktuallisieren(aktuelleGruppen); + CollectionViewSource.GetDefaultView(Clientlist.ItemsSource).Refresh(); + //Clientlist.Items.Refresh(); - _kontaktlist = x; + LeseMessageInfoAusDatei(); - Clientlist.Items.Refresh(); - - Cursor = Cursors.Arrow; - //} - //else - //{ - // Cursor = Cursors.Arrow; - // // EndWaiting(); - // if (OnClose != null) - // { - // OnClose(); - // } - //} - //} - //else - //{ - // var aktuelleGruppen = _chat.GruppenAktuallisieren(); - - // var x = _chat.GroupklassenAktuallisieren(aktuelleGruppen); - - // _kontaktlist = x; - - // Clientlist.Items.Refresh(); - - // Cursor = Cursors.Arrow; - //} + Cursor = Cursors.Arrow; + } catch (Exception e) { diff --git a/ChatController/HauptKlassen/Chat.cs b/ChatController/HauptKlassen/Chat.cs index 0de0aca..af60bb9 100644 --- a/ChatController/HauptKlassen/Chat.cs +++ b/ChatController/HauptKlassen/Chat.cs @@ -23,6 +23,7 @@ using System.Windows.Media.Imaging; using ChatController.ChatKlassen; using ChatController.Klassen; using Newtonsoft.Json; +using Application = System.Windows.Forms.Application; using Clipboard = System.Windows.Forms.Clipboard; using ContextMenu = System.Windows.Controls.ContextMenu; using Cursor = System.Windows.Input.Cursor; @@ -526,11 +527,13 @@ namespace ChatController.HauptKlassen { TimeSpan lastTs = DateTime.UtcNow.TimeOfDay; - double timespan = lastTs.TotalSeconds; + TimeSpan span = (DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc)); + long timespan = System.Convert.ToInt64(span.TotalSeconds); + //long timespan = //lastTs.TotalSeconds; if (_userMessages != null && _userMessages.Response.Messages.Length > 0) { - timespan = _userMessages.Response.Messages.First().CreatetdAt; + timespan = _userMessages.Response.Messages.First().Created_At; } if (kontakt != null) @@ -558,7 +561,7 @@ namespace ChatController.HauptKlassen } } - private double? SendeTimestamp(long groupId,double lastStamp) + private double? SendeTimestamp(long groupId,long lastStamp) { try { @@ -596,18 +599,16 @@ namespace ChatController.HauptKlassen #region Prüfe für alle ob neue Nachrichten vorhanden sind public double SchaueNachAllenMessageCounts() - { - TimeSpan lastTs = DateTime.UtcNow.TimeOfDay; + { + TimeSpan span = (DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc)); + long unixTime = System.Convert.ToInt64(span.TotalSeconds); - double timespan = lastTs.TotalSeconds; - - var x = SendeTimestampForEach(0, timespan); - - + var x = SendeTimestampForEach(0, unixTime); + return x; } - private double SendeTimestampForEach(long groupId, double lastStamp) + private double SendeTimestampForEach(long groupId, long lastStamp) { try { @@ -1134,6 +1135,11 @@ namespace ChatController.HauptKlassen form.MaximumSize = new Size(500,500); form.FormBorderStyle = FormBorderStyle.Sizable; + form.MaximizeBox = false; + + form.Text = "ownChat Bild Voschau"; + form.Icon = Icon.ExtractAssociatedIcon(Application.ExecutablePath); + PictureBox pb = new PictureBox(); pb.Dock = DockStyle.Fill; pb.Image = imgbit; @@ -1199,6 +1205,11 @@ namespace ChatController.HauptKlassen form.MaximumSize = new Size(500,500); form.FormBorderStyle = FormBorderStyle.Sizable; + form.MaximizeBox = false; + + form.Text = "ownChat Bild Voschau"; + form.Icon = Icon.ExtractAssociatedIcon(Application.ExecutablePath); + PictureBox pb = new PictureBox(); pb.Dock = DockStyle.Fill; pb.Image = imgbit; @@ -1321,33 +1332,45 @@ namespace ChatController.HauptKlassen { try { + Kontaktliste.Clear(); foreach (var kontakt in chatDaten.Response) { + foreach (var value in kontakt.Value) { - string message = ""; - DateTime timestamp = new DateTime(); + //var val = Kontaktliste.Find(item => item.GroupId == value.Oid); - var lastMS = value.LastMessage; + //if (val == null) //was tun wenn der nicht merh drinne ist ?? dann ist das ja auch null + //{ + string message = ""; + DateTime timestamp = new DateTime(); + + var lastMS = value.LastMessage; - if (lastMS != null) - { - if (lastMS.Text != null) + if (lastMS != null) { - message = lastMS.Text; - timestamp = DateTime.Parse(lastMS.Timestamp.Date); + if (lastMS.Text != null) + { + message = lastMS.Text; + timestamp = DateTime.Parse(lastMS.Timestamp.Date); + } } - } - if (message.Equals("") && value.LastMessage != null && !value.LastMessage.File.Equals("")) - { - message = Path.GetFileName(value.LastMessage.File); - } + 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)); + //null steht für employee + Kontaktliste.Add(new KontaktlistBuilder(value.Name, + AvatarToImageSourceConverter(value.Avatar), + message, timestamp, value.Oid, null)); + //} + //else + //{ + // //Item Bereits vorhanden + //} } } diff --git a/ChatController/LoginControl.xaml b/ChatController/LoginControl.xaml index 28cef19..6ebbd06 100644 --- a/ChatController/LoginControl.xaml +++ b/ChatController/LoginControl.xaml @@ -50,7 +50,7 @@ - + diff --git a/ChatController/LoginControl.xaml.cs b/ChatController/LoginControl.xaml.cs index 8e98d82..a3286a0 100644 --- a/ChatController/LoginControl.xaml.cs +++ b/ChatController/LoginControl.xaml.cs @@ -11,9 +11,9 @@ using System.Threading; using System.Threading.Tasks; using System.Web; using System.Windows; -using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; +using System.Windows.Forms; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; @@ -22,7 +22,11 @@ using System.Windows.Shapes; using ChatController.HauptKlassen; using ChatController.Klassen; using Newtonsoft.Json; +using Cursors = System.Windows.Input.Cursors; +using KeyEventArgs = System.Windows.Input.KeyEventArgs; +using MessageBox = System.Windows.MessageBox; using Path = System.IO.Path; +using UserControl = System.Windows.Controls.UserControl; namespace ChatController { @@ -59,13 +63,26 @@ namespace ChatController } private void AnmeldenButton_OnClick(object sender, RoutedEventArgs e) + { + Anmelden(); + } + + private void TextBoxPasswort_OnKeyUp(object sender, KeyEventArgs e) + { + if (e.Key == Key.Return) + { + Anmelden(); + } + } + + private void Anmelden() { try { //TODO Abfrage einführen die prüft ob eine verbindung ueberhaupt hergestellt werde kann | FehlerMeldungen Genauer Definieren 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); @@ -106,7 +123,7 @@ namespace ChatController Cursor = Cursors.Arrow; } } - + #region Speichern / Laden / Löschen der Datei @@ -284,7 +301,7 @@ namespace ChatController } } - public static string GetAndCreateUserAppDataPath() + private static string GetAndCreateUserAppDataPath() { try { @@ -460,6 +477,8 @@ namespace ChatController } } #endregion + + } diff --git a/ChatController/LoginKlassen/UserMessages.cs b/ChatController/LoginKlassen/UserMessages.cs index 15b8604..7620d69 100644 --- a/ChatController/LoginKlassen/UserMessages.cs +++ b/ChatController/LoginKlassen/UserMessages.cs @@ -32,7 +32,7 @@ namespace ChatController.Klassen public string Original_Filename { get; set; } public string Smaller_Image { get; set; } public LastMessageTimeStamp Timestamp { get; set; } - public long CreatetdAt { get; set; } + public long Created_At { get; set; } public long UserId { get; set; } public string User_Name { get; set; } public string UserPicture { get; set; } From 9ba364280c7d30421988977776037b6046c98f25 Mon Sep 17 00:00:00 2001 From: Waldi Date: Fri, 20 Oct 2017 14:41:03 +0200 Subject: [PATCH 2/5] performance update --- ChatController/ChatMainControl.xaml.cs | 107 +++++++---------- ChatController/HauptKlassen/Chat.cs | 159 +++++++++++++++++++++---- ChatController/HauptKlassen/Login.cs | 2 +- 3 files changed, 180 insertions(+), 88 deletions(-) diff --git a/ChatController/ChatMainControl.xaml.cs b/ChatController/ChatMainControl.xaml.cs index 15fbe60..20d6ccd 100644 --- a/ChatController/ChatMainControl.xaml.cs +++ b/ChatController/ChatMainControl.xaml.cs @@ -131,6 +131,7 @@ namespace ChatController } } + #region Styleetter für ownChatDesktop VErsion public void SetzteStyleAufNull() { EmojiButton.Style = null; @@ -138,7 +139,9 @@ namespace ChatController ReloadGruppen.Visibility = Visibility.Visible; _isDesktopVersion = false; } + #endregion + #region Synconisation Veranlassen für Bewoplaner public void SynchronisationVeranlassen() { try @@ -161,13 +164,10 @@ namespace ChatController DispatcherPriority.Normal, (Action) delegate { - Clientlist.Items.Refresh(); + CollectionViewSource.GetDefaultView(Clientlist.Items).Refresh(); + //Clientlist.Items.Refresh(); }); - //this.Dispatch(delegate // hä ?? - //{ - // Clientlist.Items.Refresh(); - //}); - + Thread.Sleep(TimeSpan.FromMinutes(5)); } @@ -184,6 +184,7 @@ namespace ChatController MessageBox.Show("Ein Fehler bei der Synchronisation ist aufgetreten.\nFehler:\n" + e.Message, "Fehler",MessageBoxButton.OK); } } + #endregion #region Lade KontaktDaten und Lade sie in den Chat private void AktChatUser_OnMouseDoubleClick(object sender, MouseButtonEventArgs e) @@ -286,7 +287,7 @@ namespace ChatController private void Item3OnClick(object sender, RoutedEventArgs routedEventArgs) { var kontakt = (AktuellerKontakt)AktChatUser.Items[0]; - _chat.Einfuegen(kontakt.GroupId); + _chat.Einfuegen(kontakt.GroupId,this); } private void Item4OnClick(object sender, RoutedEventArgs routedEventArgs) @@ -417,14 +418,19 @@ namespace ChatController if (AktChatUser.Items.Count > 0) { var kontakt = (AktuellerKontakt) AktChatUser.Items[0]; + + var medium = _chat.HoleMedium(); - _chat.HoleUndSendeMediumAnKontakt(kontakt); + if(medium != null) { + _chat.AddeMediumDerNachrichtView(medium); - Chat.ItemsSource = null; - Chat.ItemsSource = _chat.LadeChatNachrichtenVomKontakt(kontakt); - - Chat.Items.MoveCurrentToLast(); - Chat.ScrollIntoView(Chat.Items.CurrentItem); + CollectionViewSource.GetDefaultView(Chat.ItemsSource).Refresh(); + Chat.Items.MoveCurrentToLast(); + Chat.ScrollIntoView(Chat.Items.CurrentItem); + + _chat.SendeMediumAnKontakt(kontakt,medium); + + } } else { @@ -441,20 +447,18 @@ namespace ChatController if (!Chatbox.Text.Equals("")) { var kontakt = (AktuellerKontakt)AktChatUser.Items[0]; - - var text = Chatbox.Text; + + _chat.AddeNachrichtDerView(Chatbox.Text); + + CollectionViewSource.GetDefaultView(Chat.ItemsSource).Refresh(); - _chat.SendMessage(Chatbox.Text, kontakt.GroupId); - - // neu performance versuch Adde - - Chatbox.Text = ""; - - //Lade Nachrichten nach - Chat.Items.MoveCurrentToLast(); Chat.ScrollIntoView(Chat.Items.CurrentItem); - + + _chat.SendMessage(Chatbox.Text, kontakt.GroupId); + + Chatbox.Text = ""; + if (Chatbox.Text.Equals("")) { Chatbox.Text = "Nachricht schreiben"; @@ -512,16 +516,17 @@ namespace ChatController if (!AktChatUser.Items.IsEmpty && !Chatbox.Text.Equals("")) { var kontakt = (AktuellerKontakt)AktChatUser.Items[0]; - - var text = Chatbox.Text; + + _chat.AddeNachrichtDerView(Chatbox.Text); + CollectionViewSource.GetDefaultView(Chat.ItemsSource).Refresh(); + Chat.Items.MoveCurrentToLast(); + Chat.ScrollIntoView(Chat.Items.CurrentItem); + _chat.SendMessage(Chatbox.Text, kontakt.GroupId); - + Chatbox.Text = ""; - - - //lade Nachrichten nach - + } else { @@ -685,43 +690,14 @@ namespace ChatController (Action)delegate { if(kontakt != null) { - - //neuer Aufruf villeicht nur von - //Cursor = Cursors.Wait; - - Chat.ItemsSource = null; - - //Wichtig Verbessern + var x = _chat.LadeChatNachrichtenVomKontakt(kontakt); - - //foreach (var liste in _Orderedmessagelist) - //{ - // foreach (var neu in alist) - // { - - // if (liste.ChatMessageOid == neu.ChatMessageOid) - // { - // //_Orderedmessagelist.CreateOrderedEnumerable(neu,,true); - - // //if (!liste.ReceiveMs.Equals(neu.ReceiveMs)) - // //{ - // // liste.ReceiveMs = neu.ReceiveMs; - // // liste.SetzeGelesen = 1; - // // //Vorher noch abfragen ob die id gleich den chat ist und dann nur wenn nicht zutrifft dann auf 1 setzen - // //} - // } - // } - //} - - Chat.ItemsSource = x; - - //Cursor = Cursors.Arrow; - + CollectionViewSource.GetDefaultView(Chat.ItemsSource).Refresh(); + Chat.Items.MoveCurrentToLast(); Chat.ScrollIntoView(Chat.Items.CurrentItem); - } }); @@ -734,8 +710,8 @@ namespace ChatController break; } - Task.Delay(2000); - //Thread.Sleep(2000); + //Task.Delay(2000); + Thread.Sleep(2000); } } @@ -986,6 +962,7 @@ namespace ChatController #endregion + //muss erweitert werden #region speichern sowie lesen der MessageSyncDatei / stylezwecke public void SpeichereMessageInfoInDatei() { diff --git a/ChatController/HauptKlassen/Chat.cs b/ChatController/HauptKlassen/Chat.cs index af60bb9..6f1dad1 100644 --- a/ChatController/HauptKlassen/Chat.cs +++ b/ChatController/HauptKlassen/Chat.cs @@ -1,35 +1,27 @@ -using System; +using ChatController.ChatKlassen; +using ChatController.Klassen; +using Newtonsoft.Json; +using System; using System.Collections.Generic; -using System.ComponentModel; using System.Drawing; using System.Drawing.Imaging; using System.IO; using System.Linq; -using System.Linq.Expressions; using System.Net; using System.Net.Http; using System.Reflection; using System.Text; using System.Threading; -using System.Threading.Tasks; -using System.Web; using System.Windows; -using System.Windows.Controls; using System.Windows.Data; using System.Windows.Forms; -using System.Windows.Controls; using System.Windows.Media; using System.Windows.Media.Imaging; -using ChatController.ChatKlassen; -using ChatController.Klassen; -using Newtonsoft.Json; using Application = System.Windows.Forms.Application; using Clipboard = System.Windows.Forms.Clipboard; using ContextMenu = System.Windows.Controls.ContextMenu; -using Cursor = System.Windows.Input.Cursor; using DataFormats = System.Windows.Forms.DataFormats; using Image = System.Windows.Controls.Image; -using MenuItem = System.Windows.Forms.MenuItem; using MessageBox = System.Windows.MessageBox; using Size = System.Drawing.Size; @@ -732,6 +724,22 @@ namespace ChatController.HauptKlassen #endregion #region Sende Normale Message an Kontakt + + public void AddeNachrichtDerView(string nachricht) + { + try + { + var ChatMessage = _userMessages.Response.Messages.Last(); + + var time =DateTime.Now; + + Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name, nachricht,time.ToString("dd MMMM yyyy HH:mm:ss"), true, time)); + } + catch (Exception e) + { + MessageBox.Show(e.Message, "Fehler", MessageBoxButton.OK); + } + } private HttpWebRequest requesten; @@ -785,7 +793,7 @@ namespace ChatController.HauptKlassen #region Sende Media Nachricht an Kontakt - public void HoleUndSendeMediumAnKontakt(AktuellerKontakt kontakt) + public string HoleMedium() { try { @@ -797,11 +805,98 @@ namespace ChatController.HauptKlassen // openFileDialog1.Filter = "Office Dokumente |*.doc;*.xls;*.ppt;*.txt"; DialogResult result = openFileDialog1.ShowDialog(); - + if (result == System.Windows.Forms.DialogResult.OK) { - VerarbeiteMedia(openFileDialog1.FileName,kontakt); + return openFileDialog1.FileName; } + else + { + return null; + } + } + catch (Exception e) + { + MessageBox.Show("Fehler: " + e.Message, "Fehler", MessageBoxButton.OK); + return null; + } + } + + public void AddeMediumDerNachrichtView(string file) + { + try + { + var ChatMessage = _userMessages.Response.Messages.Last(); + + var timeformated = DateTime.Now; + + if (ImageExtensions.Contains(Path.GetExtension(file).ToUpperInvariant())) + { + BitmapImage logo = new BitmapImage(); + logo.BeginInit(); + logo.UriSource = new Uri(file); + logo.EndInit(); + + Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name, Path.GetFileName(file), + timeformated.ToString("dd MMMM yyyy HH:mm:ss"), true, logo, + timeformated, file)); + } + else if (DokumentExtension.Contains(Path.GetExtension(file).ToUpperInvariant())) + { + Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name, Path.GetFileName(file), + timeformated.ToString("dd MMMM yyyy HH:mm:ss"), true,file, + timeformated)); + } + else + { + //MP4 und gifs und so unbehandelten dreck + Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name, Path.GetFileName(file), + timeformated.ToString("dd MMMM yyyy HH:mm:ss"), true, file, + timeformated)); + } + + } + catch (Exception e) + { + MessageBox.Show("Fehler: " + e.Message, "Fehler", MessageBoxButton.OK); + } + } + + public void AddMediumContextDerNachrichtView(byte[] datei,string filename) + { + var ChatMessage = _userMessages.Response.Messages.Last(); + + var timeformated = DateTime.Now; + + if (ImageExtensions.Contains(Path.GetExtension(filename).ToUpperInvariant())) + { + + BitmapImage biImg = new BitmapImage(); + MemoryStream ms = new MemoryStream(datei); + biImg.BeginInit(); + biImg.StreamSource = ms; + biImg.EndInit(); + + ImageSource logo = biImg; + + Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name, Path.GetFileName(filename), + timeformated.ToString("dd MMMM yyyy HH:mm:ss"), true, logo, + timeformated, filename)); + } + else + { + + Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name, Path.GetFileName(filename), + timeformated.ToString("dd MMMM yyyy HH:mm:ss"), true, filename, + timeformated)); + } + } + + public void SendeMediumAnKontakt(AktuellerKontakt kontakt,string file) + { + try + { + VerarbeiteMedia(file,kontakt); } catch (Exception e) { @@ -819,9 +914,9 @@ namespace ChatController.HauptKlassen string filename = Path.GetFileName(file); + SendMediaMessage(filename, kontakt.GroupId, mdatei); - - //LoadKontakt(); + } private static byte[] ReadFully(Stream stream) @@ -997,7 +1092,7 @@ namespace ChatController.HauptKlassen #endregion #region Fuege Daten Bilder usw via DragAndDrop in den Chat / muss noch bearbeitet werden - public void Einfuegen(long groupOid) + public void Einfuegen(long groupOid, ChatMainControl chatMainControl) { var d = System.Windows.Forms.Clipboard.GetDataObject(); @@ -1016,9 +1111,16 @@ namespace ChatController.HauptKlassen if (File.Exists(fileList[0])) { filename = Path.GetFileName(fileList[0]); - - //file = File.OpenRead(fileList[0]); + byte[] myBinary = File.ReadAllBytes(fileList[0]); + + AddMediumContextDerNachrichtView(myBinary,filename); + + CollectionViewSource.GetDefaultView(chatMainControl.Chat.ItemsSource).Refresh(); + + chatMainControl.Chat.Items.MoveCurrentToLast(); + chatMainControl.Chat.ScrollIntoView(chatMainControl.Chat.Items.CurrentItem); + SendMediaMessage(filename, groupOid, myBinary); } @@ -1033,7 +1135,14 @@ namespace ChatController.HauptKlassen if (d.GetDataPresent(DataFormats.Text)) { string text = (string)d.GetData(DataFormats.StringFormat); - + + AddeNachrichtDerView(text); + + CollectionViewSource.GetDefaultView(chatMainControl.Chat.ItemsSource).Refresh(); + + chatMainControl.Chat.Items.MoveCurrentToLast(); + chatMainControl.Chat.ScrollIntoView(chatMainControl.Chat.Items.CurrentItem); + SendMessage(text, groupOid); } else @@ -1045,6 +1154,13 @@ namespace ChatController.HauptKlassen System.Drawing.Image img = pic; + AddMediumContextDerNachrichtView(ImageToByteArray(img),bildname); + + CollectionViewSource.GetDefaultView(chatMainControl.Chat.ItemsSource).Refresh(); + + chatMainControl.Chat.Items.MoveCurrentToLast(); + chatMainControl.Chat.ScrollIntoView(chatMainControl.Chat.Items.CurrentItem); + SendMediaMessage(bildname,groupOid, ImageToByteArray(img)); } else @@ -1394,7 +1510,6 @@ namespace ChatController.HauptKlassen } #endregion - //unter konstruktion #region pruefe letzten Konversations timestamp für design element public Dictionary PruefeTimeStampsBeiStart(List kontaktliste) diff --git a/ChatController/HauptKlassen/Login.cs b/ChatController/HauptKlassen/Login.cs index 7c9cfab..7b1867d 100644 --- a/ChatController/HauptKlassen/Login.cs +++ b/ChatController/HauptKlassen/Login.cs @@ -174,7 +174,7 @@ namespace ChatController.HauptKlassen { try { - var endurl = _url + "/api/user/login"; //loginwithchatcode + var endurl = _url + "/api/user/loginwithchatcode"; string postdaten = ""; From 82defcb751c898bd1cae02298edc2ba8030480f3 Mon Sep 17 00:00:00 2001 From: Waldi Date: Tue, 24 Oct 2017 11:39:59 +0200 Subject: [PATCH 3/5] update hoffentlich jetzt alles cool --- ChatController/ChatMainControl.xaml | 4 +- ChatController/ChatMainControl.xaml.cs | 123 ++++++++++++++--------- ChatController/HauptKlassen/Chat.cs | 106 ++++++++++++------- ChatController/HauptKlassen/Login.cs | 96 ++++++++---------- ChatController/LoginControl.xaml.cs | 26 ++--- ChatController/LoginKlassen/UserDaten.cs | 8 +- 6 files changed, 204 insertions(+), 159 deletions(-) diff --git a/ChatController/ChatMainControl.xaml b/ChatController/ChatMainControl.xaml index 28588e6..14d7613 100644 --- a/ChatController/ChatMainControl.xaml +++ b/ChatController/ChatMainControl.xaml @@ -13,7 +13,7 @@ - + @@ -271,7 +271,7 @@ - + diff --git a/ChatController/ChatMainControl.xaml.cs b/ChatController/ChatMainControl.xaml.cs index 20d6ccd..8bca996 100644 --- a/ChatController/ChatMainControl.xaml.cs +++ b/ChatController/ChatMainControl.xaml.cs @@ -131,7 +131,7 @@ namespace ChatController } } - #region Styleetter für ownChatDesktop VErsion + #region Style setter für ownChatDesktop Version public void SetzteStyleAufNull() { EmojiButton.Style = null; @@ -164,8 +164,8 @@ namespace ChatController DispatcherPriority.Normal, (Action) delegate { - CollectionViewSource.GetDefaultView(Clientlist.Items).Refresh(); - //Clientlist.Items.Refresh(); + //CollectionViewSource.GetDefaultView(Clientlist.Items).Refresh(); + Clientlist.Items.Refresh(); }); Thread.Sleep(TimeSpan.FromMinutes(5)); @@ -456,7 +456,8 @@ namespace ChatController Chat.ScrollIntoView(Chat.Items.CurrentItem); _chat.SendMessage(Chatbox.Text, kontakt.GroupId); - + + //UebergebeNachrichtAnKontaktList(Chatbox.Text); Chatbox.Text = ""; if (Chatbox.Text.Equals("")) @@ -490,7 +491,6 @@ namespace ChatController } } } - } private void Chatbox_OnGotFocus(object sender, RoutedEventArgs e) @@ -524,7 +524,9 @@ namespace ChatController Chat.ScrollIntoView(Chat.Items.CurrentItem); _chat.SendMessage(Chatbox.Text, kontakt.GroupId); - + + //UebergebeNachrichtAnKontaktList(Chatbox.Text); + Chatbox.Text = ""; } @@ -546,6 +548,37 @@ namespace ChatController MessageBox.Show("Beim Senden einer Nachricht ist ein Fehler aufgetreten. " + ed.Message + "\n" + ed.StackTrace, "Fehler", MessageBoxButton.OK); } } + + private void UebergebeNachrichtAnKontaktList(string nachricht) + { + try + { + var aktuellerKontakt = (AktuellerKontakt)AktChatUser.Items[0]; + + foreach (var liste in _kontaktlist) + { + if (liste.GroupId == aktuellerKontakt.GroupId) + { + liste.ReceiveMs = nachricht; + + //var clientZone = TimeZoneInfo.Local; + + var x = DateTime.Now; + + //var timeformated = TimeZoneInfo.ConvertTimeToUtc(x); + + liste.TimeStamp = x; + + liste.SetzeGelesen = 0; + } + } + CollectionViewSource.GetDefaultView(Clientlist.Items).Refresh(); + } + catch (Exception e) + { + //einfach ignorieren + } + } #endregion #region Add Emoji To ChatBox @@ -729,15 +762,10 @@ namespace ChatController private void DoWorkAlleNachrichten() { while (true) - { - var x = _chat.SchaueNachAllenMessageCounts(); + { + var x = _chat.SchaueNachAllenMessageCounts(); - if (AlleNachrichtenCount == null) - { - AlleNachrichtenCount = x; - } - - if (x > AlleNachrichtenCount) + if (x > 0) { this.Dispatcher.BeginInvoke( DispatcherPriority.Background, @@ -745,45 +773,50 @@ namespace ChatController { var alist = _chat.NeueGroupklassenKontakte(); - var aktuellerKontakt =(AktuellerKontakt)AktChatUser.Items[0]; + AktuellerKontakt aktuellerKontakt = null; + + if (AktChatUser.HasItems) + { + aktuellerKontakt = (AktuellerKontakt) AktChatUser.Items[0]; + } foreach (var liste in _kontaktlist) - { - foreach (var neu in alist) { - if (liste.GroupId == neu.GroupId) + foreach (var neu in alist) { - if (!liste.ReceiveMs.Equals(neu.ReceiveMs)) { + if (liste.GroupId == neu.GroupId) + { + if (!liste.ReceiveMs.Equals(neu.ReceiveMs)) { - liste.ReceiveMs = neu.ReceiveMs; + liste.ReceiveMs = neu.ReceiveMs; + liste.TimeStamp = neu.TimeStamp; - if (neu.GroupId == aktuellerKontakt.GroupId) - { - liste.SetzeGelesen = 0; - } - else - { - liste.SetzeGelesen = 1; + if (aktuellerKontakt != null && neu.GroupId == aktuellerKontakt.GroupId) + { + liste.SetzeGelesen = 0; + } + else + { + liste.SetzeGelesen = 1; + } } } } } - } + - Clientlist.Items.Refresh(); + Clientlist.Items.Refresh(); + }); - - AlleNachrichtenCount = x; + } if (AlleNachrichtenThreadBool == false) { break; - } - - //Task.Delay(5000); + } - Thread.Sleep(5000); + Thread.Sleep(5000); } } @@ -929,10 +962,7 @@ namespace ChatController #region ReloadGruppen (For Stand Alone version) private void ButtonReloadGruppen_OnClick(object sender, RoutedEventArgs e) - { - //Thread newThread = new Thread(DoSynchro); - //newThread.IsBackground = true; - //newThread.Start(); + { DoSynchro(); } @@ -942,17 +972,19 @@ namespace ChatController { Cursor = Cursors.Wait; + SpeichereMessageInfoInDatei(); + var aktuelleGruppen = _chat.GruppenAktuallisieren(); var x = _chat.GroupklassenAktuallisieren(aktuelleGruppen); - CollectionViewSource.GetDefaultView(Clientlist.ItemsSource).Refresh(); - //Clientlist.Items.Refresh(); - + _kontaktlist = x; + LeseMessageInfoAusDatei(); - + + Clientlist.Items.Refresh(); + Cursor = Cursors.Arrow; - } catch (Exception e) { @@ -961,8 +993,7 @@ namespace ChatController } #endregion - - //muss erweitert werden + #region speichern sowie lesen der MessageSyncDatei / stylezwecke public void SpeichereMessageInfoInDatei() { diff --git a/ChatController/HauptKlassen/Chat.cs b/ChatController/HauptKlassen/Chat.cs index 6f1dad1..17d55e3 100644 --- a/ChatController/HauptKlassen/Chat.cs +++ b/ChatController/HauptKlassen/Chat.cs @@ -43,6 +43,7 @@ namespace ChatController.HauptKlassen public static readonly List ImageExtensions = new List { ".JPG", ".JPE", ".BMP", ".GIF", ".PNG", ".JPEG" }; public static readonly List DokumentExtension = new List { ".TXT", ".PPT", ".XLS", ".DOC" }; + private long lastTimeStamp=0; public Chat(ChatDatenUebergabe chatDaten) { @@ -52,42 +53,54 @@ namespace ChatController.HauptKlassen #region Gruppen In Kontaktliste Wandler public IOrderedEnumerable GroupklassenInChatKontakteUmwandler() { - foreach (var kontakt in ChatDaten.Groupconect.Response) + foreach (var kontakt in ChatDaten.Groupconect.Response) + { + foreach (var value in kontakt.Value) { - foreach (var value in kontakt.Value) + string message = ""; + DateTime timestamp = new DateTime(); + + var lastMS = value.LastMessage; + + DateTime timeformated = new DateTime(); + + + if (lastMS != null) { - string message = ""; - DateTime timestamp = new DateTime(); - - var lastMS = value.LastMessage; - - - if (lastMS != null) + if (lastMS.Text != null) { - if (lastMS.Text != null) - { - message = lastMS.Text; - timestamp = DateTime.Parse(lastMS.Timestamp.Date); - } - } + message = lastMS.Text; - if (message.Equals("") && value.LastMessage != null && !value.LastMessage.File.Equals("")) - { - message = Path.GetFileName(value.LastMessage.File); - } + timestamp = DateTime.Parse(lastMS.Timestamp.Date); - //null steht für employee - Kontaktliste.Add(new KontaktlistBuilder(value.Name, AvatarToImageSourceConverter(value.Avatar), - message, timestamp, value.Oid, null)); + var clientZone = TimeZoneInfo.Local; + timeformated = TimeZoneInfo.ConvertTimeFromUtc(timestamp, clientZone); + } + } + + 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, timeformated, value.Oid, null)); + + + TimeSpan span = (DateTime.Parse(lastMS.Timestamp.Date) - new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc)); + long unixTime = System.Convert.ToInt64(span.TotalSeconds); + + if (lastTimeStamp < unixTime) + { + lastTimeStamp = unixTime; } } + } + var sortedKontaktliste = Kontaktliste.OrderByDescending(r => r.TimeStamp); - var sortedKontaktliste = Kontaktliste.OrderByDescending(r => r.TimeStamp); - - return sortedKontaktliste; - - + return sortedKontaktliste; //Search Bereich //CollectionView view = (CollectionView)CollectionViewSource.GetDefaultView(Clientlist.ItemsSource); //view.SortDescriptions.Add(new SortDescription("TimeStamp", ListSortDirection.Descending)); @@ -591,7 +604,7 @@ namespace ChatController.HauptKlassen #region Prüfe für alle ob neue Nachrichten vorhanden sind public double SchaueNachAllenMessageCounts() - { + { TimeSpan span = (DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc)); long unixTime = System.Convert.ToInt64(span.TotalSeconds); @@ -604,7 +617,7 @@ namespace ChatController.HauptKlassen { try { - var endurl = ChatDaten.ServerUrl + "/api/ownchat/news/" + groupId + "/" + lastStamp; + var endurl = ChatDaten.ServerUrl + "/api/ownchat/news/" + groupId + "/" + lastTimeStamp; //lastStamp WebRequest request = WebRequest.Create(endurl); @@ -645,6 +658,7 @@ namespace ChatController.HauptKlassen { string message = ""; DateTime timestamp = new DateTime(); + DateTime timeformated = new DateTime(); var lastMS = value.LastMessage; @@ -654,6 +668,9 @@ namespace ChatController.HauptKlassen { message = lastMS.Text; timestamp = DateTime.Parse(lastMS.Timestamp.Date); + + var clientZone = TimeZoneInfo.Local; + timeformated = TimeZoneInfo.ConvertTimeFromUtc(timestamp, clientZone); } } @@ -664,7 +681,16 @@ namespace ChatController.HauptKlassen //null steht für employee Kontakt.Add(new KontaktlistBuilder(value.Name, AvatarToImageSourceConverter(value.Avatar), - message, timestamp, value.Oid, null)); + message, timeformated, value.Oid, null)); + + TimeSpan span = (DateTime.Parse(lastMS.Timestamp.Date) - new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc)); + long unixTime = System.Convert.ToInt64(span.TotalSeconds); + + if (lastTimeStamp < unixTime) + { + lastTimeStamp = unixTime; + } + } } @@ -729,11 +755,18 @@ namespace ChatController.HauptKlassen { try { - var ChatMessage = _userMessages.Response.Messages.Last(); - - var time =DateTime.Now; - - Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name, nachricht,time.ToString("dd MMMM yyyy HH:mm:ss"), true, time)); + string username = ""; + + foreach (var daten in ChatDaten.Userconect.Response) + { + username = daten.Value.Firstname + " " + daten.Value.Lastname; + } + + var time = DateTime.Now; + + Messages.Add(new KontaktMessageBuilder(username, nachricht, + time.ToString("dd MMMM yyyy HH:mm:ss"), true, time)); + } catch (Exception e) { @@ -1222,7 +1255,6 @@ namespace ChatController.HauptKlassen #endregion - #endregion #region Zeige Kontakt Bild / hat noch probleme -> Show Kontakt @@ -1578,8 +1610,6 @@ namespace ChatController.HauptKlassen { try { - //Hole alle aktuellen, schreibe ihre oid und den Timestamp der Aktuellen nachricht in eine Datei - if (!File.Exists(Path.Combine(GetAndCreateUserAppDataPath(), "ownChatMessageSync.txt"))) { using ( diff --git a/ChatController/HauptKlassen/Login.cs b/ChatController/HauptKlassen/Login.cs index 7b1867d..40cf60c 100644 --- a/ChatController/HauptKlassen/Login.cs +++ b/ChatController/HauptKlassen/Login.cs @@ -64,9 +64,7 @@ namespace ChatController.HauptKlassen dic.Add("chatcode",_chatCode); VerbindeMitChatServer(dic); - - - // Gruppen abfragen + if (_ownchatVerbindungsaufbauOK) { GruppenHolen(); @@ -74,8 +72,7 @@ namespace ChatController.HauptKlassen if (_gruppeholenverbindungsaufbauOK) - { - + { ChatDatenUebergabe ubergabe = new ChatDatenUebergabe(_serverconect, _userconect, _groupconect, _serverUrl, _authToken, _userid, _kundennummer,_apikey); return ubergabe; @@ -102,7 +99,7 @@ namespace ChatController.HauptKlassen } catch (Exception e) { - MessageBox.Show("Es konnte keine Verbindung aufgebaut werden.", "Fehler", MessageBoxButton.OK); + MessageBox.Show("Fehler: Es konnte keine Verbindung aufgebaut werden.", "Fehler", MessageBoxButton.OK,MessageBoxImage.Error); return false; } @@ -117,12 +114,12 @@ namespace ChatController.HauptKlassen if (jsonDatentyp.Status == 1) { - MessageBox.Show("Kundennummer unbekannt"); + MessageBox.Show("Fehler: Kundennummer unbekannt.\nBitte überprüfen Sie die Anmeldeinformationen.","Info",MessageBoxButton.OK,MessageBoxImage.Asterisk); return false; } else if (jsonDatentyp.Status == 2) { - MessageBox.Show("Diensttyp ist für angegebene Kundennummer nicht definiert"); + MessageBox.Show("Der Diensttyp ist für die angegebene Kundennummer nicht definiert.","Info",MessageBoxButton.OK,MessageBoxImage.Asterisk); return false; } else @@ -138,12 +135,12 @@ namespace ChatController.HauptKlassen if (jsonDatentyp.Status == 1) { - MessageBox.Show("Kundennummer unbekannt"); + MessageBox.Show("Fehler: Kundennummer unbekannt.\nBitte überprüfen Sie die Anmeldeinformationen.","Info",MessageBoxButton.OK,MessageBoxImage.Asterisk); return false; } else if (jsonDatentyp.Status == 2) { - MessageBox.Show("Diensttyp ist für angegebene Kundennummer nicht definiert"); + MessageBox.Show("Der Diensttyp ist für die angegebene Kundennummer nicht definiert.","Info",MessageBoxButton.OK,MessageBoxImage.Asterisk); return false; } else @@ -153,8 +150,8 @@ namespace ChatController.HauptKlassen } catch (Exception e) { - MessageBox.Show("Beim Parsen der Datei ist ein fehler aufgetreten.", "Fehler", - MessageBoxButton.OK); + MessageBox.Show("Fehler: "+e.Message,"Fehler",MessageBoxButton.OK,MessageBoxImage.Error); + } } @@ -165,13 +162,14 @@ namespace ChatController.HauptKlassen } catch (Exception e) { - MessageBox.Show("Ein nicht weiter definierter fehler ist aufgetreten: "+ e.Message,"Fehler",MessageBoxButton.OK); + MessageBox.Show("Fehler: "+ e.Message,"Fehler",MessageBoxButton.OK,MessageBoxImage.Error); return false; } } private void VerbindeMitChatServer(Dictionary postparameter) { + string fehlermeldung = ""; try { var endurl = _url + "/api/user/loginwithchatcode"; @@ -208,38 +206,36 @@ namespace ChatController.HauptKlassen string pageContent = myStreamReader.ReadToEnd(); - - //UserDaten müssen mehrere wege der initialisierung bieten if (!pageContent.Equals("")) { - //_serverCheckOK = true; - - //string[] array = responseFromServer.Split(':'); - - //Json Verarbeitungsgedöns Dictionary < string, TestKlasse> var jsonDaten = JsonConvert.DeserializeObject(pageContent); - //var serv = jsonDaten[_chatcode].ServerName; - - foreach (var datev in jsonDaten.Response) + if (jsonDaten.Success == true) { - _authToken = datev.Value.Token; - _userid = datev.Value.Oid; + foreach (var datev in jsonDaten.Response) + { + _authToken = datev.Value.Token; + _userid = datev.Value.Oid; + } + + _userconect = jsonDaten; + + _ownchatVerbindungsaufbauOK = true; + } + else + { + if (jsonDaten.Errors.chatcode_failed != null) + { + MessageBox.Show("Fehler: "+ jsonDaten.Errors.chatcode_failed[0] + "\nBitte überprüfen Sie die Anmeldeinformationen.", "Info", MessageBoxButton.OK, MessageBoxImage.Asterisk); + }else if (jsonDaten.Errors.login_failed != null) + { + MessageBox.Show("Fehler: "+ jsonDaten.Errors.login_failed[0] + "\nBitte überprüfen Sie die Anmeldeinformationen.", "Info", MessageBoxButton.OK, MessageBoxImage.Asterisk); + } + + _ownchatVerbindungsaufbauOK = false; } - - _userconect = jsonDaten; - - _ownchatVerbindungsaufbauOK = true; } - else - { - //throw fehler - // MessageBox.Show("Keine Daten Vorhanden."); - } - - - // MessageBox.Show(pageContent); - + myStreamReader.Close(); responseStream.Close(); @@ -247,7 +243,7 @@ namespace ChatController.HauptKlassen catch (Exception e) { //throw fehler - MessageBox.Show(e.Message, "Fehler", MessageBoxButton.OK); + MessageBox.Show(e.Message, "Fehler", MessageBoxButton.OK,MessageBoxImage.Error); } } @@ -262,38 +258,28 @@ namespace ChatController.HauptKlassen request.Credentials = CredentialCache.DefaultCredentials; request.Headers["Token"] = _authToken; request.Headers["CustomerID"] = _kundennummer; - - // Get the response. + WebResponse response = request.GetResponse(); // Display the status. var statusResponse = ((HttpWebResponse)response).StatusDescription; - - + string responseFromServer = ReadStream(response); - - //verarbeite hier zu json + if (!responseFromServer.Equals("")) { - //################# Deserialisierung mit Json ############################### var jsonDaten = JsonConvert.DeserializeObject(responseFromServer); _groupconect = jsonDaten; - // var serv = jsonDaten[_chatcode].ServerName; - - //MessageBox.Show(responseFromServer); + _gruppeholenverbindungsaufbauOK = true; } - else - { - // MessageBox.Show("Keine Daten Vorhanden."); - } - + response.Close(); } catch (Exception e) { - // MessageBox.Show(e.Message, "Fehler", MessageBoxButton.OK); + MessageBox.Show("Fehler: "+e.Message, "Fehler", MessageBoxButton.OK,MessageBoxImage.Error); } } diff --git a/ChatController/LoginControl.xaml.cs b/ChatController/LoginControl.xaml.cs index a3286a0..e2f7026 100644 --- a/ChatController/LoginControl.xaml.cs +++ b/ChatController/LoginControl.xaml.cs @@ -39,10 +39,6 @@ namespace ChatController public event LoginDelegate OnLogin; - //private readonly string _dateiPfad = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "ownChatX1253781.txt"; //OwnChatX1253781 - - //private readonly string _merkeDaten = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "ownChatX1253782.txt"; //OwnChatX1253782 - private string _newUrl = "https://dict.ownchat.de/api/server/resolve/1/"; private string _benutzername = ""; private string _passwort = ""; @@ -103,10 +99,11 @@ namespace ChatController OnLogin(x); } - else - { - MessageBox.Show("Fehler bei der Anmeldung. Bitte überprüfen Sie die Anmeldeinformationen.", "Info", MessageBoxButton.OK, MessageBoxImage.Asterisk); - } + //else + //{ + // Auskommentiert weil bereits abgefangen + // MessageBox.Show("Fehler bei der Anmeldung. Bitte überprüfen Sie die Anmeldeinformationen.", "Info", MessageBoxButton.OK, MessageBoxImage.Asterisk); + //} Cursor = Cursors.Arrow; } @@ -117,13 +114,10 @@ namespace ChatController } 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; + MessageBox.Show("Fehler:"+exception.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error); Cursor = Cursors.Arrow; } - } - + } #region Speichern / Laden / Löschen der Datei @@ -331,8 +325,7 @@ namespace ChatController } #endregion - - + //Neue Region zum VErschlüsseln und entschlüsseln der Daten #region Verschlüsseln/Entschlüsseln via Link // wird ersmal nicht mehr gebraucht @@ -477,8 +470,7 @@ namespace ChatController } } #endregion - - + } diff --git a/ChatController/LoginKlassen/UserDaten.cs b/ChatController/LoginKlassen/UserDaten.cs index 36dcac7..26c0193 100644 --- a/ChatController/LoginKlassen/UserDaten.cs +++ b/ChatController/LoginKlassen/UserDaten.cs @@ -10,7 +10,7 @@ namespace ChatController.Klassen { public Dictionary Response { get; set; } public string Message { get; set; } - public string Errors { get; set; } + public Tetserror Errors { get; set; } public bool Success { get; set; } } @@ -31,4 +31,10 @@ namespace ChatController.Klassen public string Token { get; set; } } + + public class Tetserror + { + public string[] chatcode_failed{ get; set; } + public string[] login_failed { get; set; } + } } From c29d09e59b385f01db2e95c81b4a5af2e94c6d81 Mon Sep 17 00:00:00 2001 From: Waldi Date: Tue, 24 Oct 2017 12:22:05 +0200 Subject: [PATCH 4/5] update --- ChatController/HauptKlassen/Chat.cs | 25 ++++++++++++++----------- ChatController/LoginControl.xaml.cs | 2 +- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/ChatController/HauptKlassen/Chat.cs b/ChatController/HauptKlassen/Chat.cs index 17d55e3..1596640 100644 --- a/ChatController/HauptKlassen/Chat.cs +++ b/ChatController/HauptKlassen/Chat.cs @@ -87,13 +87,14 @@ namespace ChatController.HauptKlassen Kontaktliste.Add(new KontaktlistBuilder(value.Name, AvatarToImageSourceConverter(value.Avatar), message, timeformated, value.Oid, null)); + if(lastMS != null && lastMS.Timestamp != null && lastMS.Timestamp.Date != null) { + TimeSpan span = (DateTime.Parse(lastMS.Timestamp.Date) - new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc)); + long unixTime = System.Convert.ToInt64(span.TotalSeconds); - TimeSpan span = (DateTime.Parse(lastMS.Timestamp.Date) - new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc)); - long unixTime = System.Convert.ToInt64(span.TotalSeconds); - - if (lastTimeStamp < unixTime) - { - lastTimeStamp = unixTime; + if (lastTimeStamp < unixTime) + { + lastTimeStamp = unixTime; + } } } } @@ -683,12 +684,14 @@ namespace ChatController.HauptKlassen Kontakt.Add(new KontaktlistBuilder(value.Name, AvatarToImageSourceConverter(value.Avatar), message, timeformated, value.Oid, null)); - TimeSpan span = (DateTime.Parse(lastMS.Timestamp.Date) - new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc)); - long unixTime = System.Convert.ToInt64(span.TotalSeconds); + if (lastMS != null && lastMS.Timestamp != null && lastMS.Timestamp.Date != null) { + TimeSpan span = (DateTime.Parse(lastMS.Timestamp.Date) - new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc)); + long unixTime = System.Convert.ToInt64(span.TotalSeconds); - if (lastTimeStamp < unixTime) - { - lastTimeStamp = unixTime; + if (lastTimeStamp < unixTime) + { + lastTimeStamp = unixTime; + } } } diff --git a/ChatController/LoginControl.xaml.cs b/ChatController/LoginControl.xaml.cs index e2f7026..cb3fc24 100644 --- a/ChatController/LoginControl.xaml.cs +++ b/ChatController/LoginControl.xaml.cs @@ -114,7 +114,7 @@ namespace ChatController } catch (Exception exception) { - MessageBox.Show("Fehler:"+exception.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error); + MessageBox.Show("Fehler: " + exception.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error); Cursor = Cursors.Arrow; } } From b5bd3eb7b903cccf4edd507237056b943d2e0aae Mon Sep 17 00:00:00 2001 From: Waldi Date: Tue, 24 Oct 2017 12:44:15 +0200 Subject: [PATCH 5/5] updateeee --- PrototypChat/MainWindow.xaml.cs | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/PrototypChat/MainWindow.xaml.cs b/PrototypChat/MainWindow.xaml.cs index 7fedb5a..de80f87 100644 --- a/PrototypChat/MainWindow.xaml.cs +++ b/PrototypChat/MainWindow.xaml.cs @@ -112,16 +112,18 @@ namespace ownChat private void MainWindow_OnClosed(object sender, EventArgs e) { - _emojiView = null; - ChatMainControl.SpeichereMessageInfoInDatei(); - // Environment.Exit(0); - LoginMaske newLogin = new LoginMaske(); - newLogin.Show(); + //_emojiView = null; + //ChatMainControl.SpeichereMessageInfoInDatei(); + //// Environment.Exit(0); + //LoginMaske newLogin = new LoginMaske(); + //newLogin.Show(); } private void ChatMainControl_OnOnClose() - { - this.Close(); + { + //this.Close(); + ChatMainControl.SpeichereMessageInfoInDatei(); + Environment.Exit(0); } }