From d3fd1b8f24ab88823fa5c36c5e05ad14f9b45789 Mon Sep 17 00:00:00 2001 From: Waldi Date: Thu, 16 Nov 2017 15:38:30 +0100 Subject: [PATCH 1/2] Chatcontroll Update for release --- ChatController/ChatController.csproj | 6 + .../ChatKlassen/KontaktMessageBuilder.cs | 117 +++++--- .../ChatKlassen/KontaktlistBuilder.cs | 36 ++- ChatController/ChatMainControl.xaml | 14 +- ChatController/ChatMainControl.xaml.cs | 82 ++--- ChatController/HauptKlassen/Chat.cs | 284 ++++++++++++------ ChatController/HauptKlassen/Login.cs | 104 ++++--- .../LoginKlassen/ChatGruppenDaten.cs | 3 +- ChatController/Ressourcen/client_default.png | Bin 0 -> 7009 bytes .../Ressourcen/employee_default.png | Bin 0 -> 162580 bytes ChatController/Ressourcen/team_default.png | Bin 0 -> 6687 bytes 11 files changed, 420 insertions(+), 226 deletions(-) create mode 100644 ChatController/Ressourcen/client_default.png create mode 100644 ChatController/Ressourcen/employee_default.png create mode 100644 ChatController/Ressourcen/team_default.png diff --git a/ChatController/ChatController.csproj b/ChatController/ChatController.csproj index d253163..ac659be 100644 --- a/ChatController/ChatController.csproj +++ b/ChatController/ChatController.csproj @@ -34,6 +34,9 @@ ownchat_favicon.ico + + False + ..\libs\Newtonsoft.Json.dll @@ -121,6 +124,9 @@ + + + \ No newline at end of file diff --git a/ChatController/ChatKlassen/KontaktMessageBuilder.cs b/ChatController/ChatKlassen/KontaktMessageBuilder.cs index d516ab1..e387313 100644 --- a/ChatController/ChatKlassen/KontaktMessageBuilder.cs +++ b/ChatController/ChatKlassen/KontaktMessageBuilder.cs @@ -21,18 +21,9 @@ namespace ChatController.ChatKlassen Username = username; UserMessage = message; SendTime = sendtime; - ConvertetSendtimeString = convertedSendTimeString; + InternalSendTime = convertedSendTimeString; - if (isme) - { - ChatColor = new BrushConverter().ConvertFromString("#ff5e00") as SolidColorBrush; - Posi = "Right"; - } - else - { - ChatColor = new BrushConverter().ConvertFromString("#cccccc") as SolidColorBrush; - Posi = "Left"; - } + Farbgebung(isme); if (IsHyperlink(message)) { @@ -50,29 +41,24 @@ namespace ChatController.ChatKlassen DokumentVisibility = Visibility.Collapsed; _herunterladen = Visibility.Collapsed; _gifPictureVisibility = Visibility.Collapsed; + + + + } // IMage Ansicht - public KontaktMessageBuilder(string username, string message, string sendtime, bool isme, ImageSource image, DateTime convertedSendTimeString,string originalImage) + public KontaktMessageBuilder(string username, string message, string sendtime, bool isme, ImageSource image, DateTime convertedSendTimeString,string originalImage, string imageName) { Username = username; UserMessage = message; SendTime = sendtime; ImageSources = image; - ConvertetSendtimeString = convertedSendTimeString; + InternalSendTime = convertedSendTimeString; OriginalImage = originalImage; - // Dokpfad = - - if (isme) - { - ChatColor = new BrushConverter().ConvertFromString("#ff5e00") as SolidColorBrush; - Posi = "Right"; - } - else - { - ChatColor = new BrushConverter().ConvertFromString("#cccccc") as SolidColorBrush; - Posi = "Left"; - } + OriginalImageName = imageName; + // Dokpfad = + Farbgebung(isme); //if (!isGif) //{ @@ -91,6 +77,7 @@ namespace ChatController.ChatKlassen HyperlinkVisibility = Visibility.Collapsed; DokumentVisibility = Visibility.Collapsed; _herunterladen = Visibility.Collapsed; + } //Dokument Ansicht @@ -99,31 +86,42 @@ namespace ChatController.ChatKlassen Username = username; UserMessage = message; SendTime = sendtime; - ConvertetSendtimeString = convertedSendTimeString; + InternalSendTime = convertedSendTimeString; - Dokpfad = (object) url; + Dokpfad = (object) url; - if (isme) - { - ChatColor = new BrushConverter().ConvertFromString("#ff5e00") as SolidColorBrush; - Posi = "Right"; - } - else - { - ChatColor = new BrushConverter().ConvertFromString("#cccccc") as SolidColorBrush; - Posi = "Left"; - } + Farbgebung(isme); - - DokumentVisibility = Visibility.Visible; + + DokumentVisibility = Visibility.Visible; _pictureVisibility = Visibility.Collapsed; ChatVisibility = Visibility.Collapsed; SoundVisibility = Visibility.Collapsed; _herunterladen = Visibility.Collapsed; HyperlinkVisibility = Visibility.Collapsed; + } + private void Farbgebung(bool isme) + { + if (isme) + { + ChatColor = new BrushConverter().ConvertFromString("#ff5e00") as SolidColorBrush; + Posi = "Right"; + _farbeRechtsColor = new BrushConverter().ConvertFromString("#636363") as SolidColorBrush; + _farbeLinksColor = new BrushConverter().ConvertFromString("#636363") as SolidColorBrush; + } + else + { + ChatColor = new BrushConverter().ConvertFromString("#FFFFFF") as SolidColorBrush; //"#cccccc" + Posi = "Left"; + _farbeRechtsColor = new BrushConverter().ConvertFromString("#A0A0A0") as SolidColorBrush; + _farbeLinksColor = new BrushConverter().ConvertFromString("#A0A0A0") as SolidColorBrush; + } + } + + #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})*)?"); @@ -347,8 +345,9 @@ namespace ChatController.ChatKlassen public Brush ChatColor { get; private set; } public int ChatPosition { get; private set; } public string Posi { get; private set; } + public string OriginalImageName { get; private set; } - public DateTime ConvertetSendtimeString { get; set; } + public DateTime InternalSendTime { get; set; } public Visibility MainVisibility { get; set; } public Visibility ChatVisibility { get; set; } @@ -382,6 +381,44 @@ namespace ChatController.ChatKlassen public object[] Herunterladbares { get; private set; } + + //Farbe Links MEssageHeader + private Brush _farbeLinksColor; + public Brush FarbeLinksColor + { + get + { + return _farbeLinksColor; + } + set + { + + _farbeLinksColor = value; + + OnPropertyChanged("FarbeLinksColor"); + } + } + + //Farbe Rechts MessageHeader + private Brush _farbeRechtsColor; + public Brush FarbeRechtsColor + { + get + { + return _farbeRechtsColor; + } + set + { + + _farbeRechtsColor = value; + + OnPropertyChanged("FarbeRechtsColor"); + } + } + + + + public event PropertyChangedEventHandler PropertyChanged; protected virtual void OnPropertyChanged(string propertyName) diff --git a/ChatController/ChatKlassen/KontaktlistBuilder.cs b/ChatController/ChatKlassen/KontaktlistBuilder.cs index 98e588d..c9c527c 100644 --- a/ChatController/ChatKlassen/KontaktlistBuilder.cs +++ b/ChatController/ChatKlassen/KontaktlistBuilder.cs @@ -80,13 +80,29 @@ namespace ChatController.ChatKlassen } } + private Brush _kontaktChatColor; + public Brush KontaktChatColor + { + get + { + return _kontaktChatColor; + } + set + { + + _kontaktChatColor = value; + + OnPropertyChanged("KontaktChatColor"); + } + } + public ImageSource Image { get; private set; } public DateTime TimeStamp { get; set; } public long GroupId { get; set; } public long UserId { get; set; } public long? CustomerPersonOid { get; set; } - public KontaktlistBuilder(string name, ImageSource image, string lastMs, DateTime timestamp, long groupid,long? customerPersonOid) + public KontaktlistBuilder(string name, ImageSource image, string lastMs, DateTime timestamp, long groupid,long? customerPersonOid,bool onlyEmployee, int userCount) { Name = name; ReceiveMs = lastMs; @@ -96,6 +112,24 @@ namespace ChatController.ChatKlassen CustomerPersonOid = customerPersonOid; SetzeGelesen = 1; + if (CustomerPersonOid != null) + { + _kontaktChatColor = new BrushConverter().ConvertFromString("#3B7799") as SolidColorBrush; + }else if (onlyEmployee && userCount > 2) + { + + //Alle gruppen werden grün + _kontaktChatColor = new BrushConverter().ConvertFromString("#45993B") as SolidColorBrush; + + } + else + { + //Alles bleibt wie es war also schwarz + _kontaktChatColor = new BrushConverter().ConvertFromString("#000000") as SolidColorBrush; + + } + + } //public KontaktlistBuilder(string name, StatusType statustyp, ImageSource image, long empfaengerid, ChatType typeChat, CompactCustomerDC customer) diff --git a/ChatController/ChatMainControl.xaml b/ChatController/ChatMainControl.xaml index c044845..7ae49ed 100644 --- a/ChatController/ChatMainControl.xaml +++ b/ChatController/ChatMainControl.xaml @@ -8,7 +8,7 @@ d:DesignHeight="300" d:DesignWidth="300" > - + @@ -125,7 +125,7 @@ - + @@ -198,7 +198,7 @@ - + @@ -227,8 +227,10 @@ + + @@ -309,11 +311,11 @@ - + - + diff --git a/ChatController/ChatMainControl.xaml.cs b/ChatController/ChatMainControl.xaml.cs index 4663b24..87e8992 100644 --- a/ChatController/ChatMainControl.xaml.cs +++ b/ChatController/ChatMainControl.xaml.cs @@ -140,55 +140,7 @@ namespace ChatController _isDesktopVersion = false; } #endregion - - #region Synconisation Veranlassen für Bewoplaner - public void SynchronisationVeranlassen() - { - try - { - bool doSync = true; - - do - { - doSync = _chat.DoSynchronisation(_chatDaten.ApiKey, _chatDaten.Kundennummer); - - if (doSync) - { - SpeichereMessageInfoInDatei(); - var aktuelleGruppen = _chat.GruppenAktuallisieren(); - - var x = _chat.GroupklassenAktuallisieren(aktuelleGruppen); - - _kontaktlist = x; - - LeseMessageInfoAusDatei(); - - Dispatcher.BeginInvoke( - DispatcherPriority.Normal, - (Action) delegate - { - //CollectionViewSource.GetDefaultView(Clientlist.Items).Refresh(); - Clientlist.Items.Refresh(); - }); - - Thread.Sleep(TimeSpan.FromMinutes(5)); - } - - } while (doSync); - - //sobald nicht mehr in der Schleife dann Close weil dann Sync false - if (OnClose != null) - { - OnClose(); - } - } - catch (Exception e) - { - 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) { @@ -968,6 +920,36 @@ namespace ChatController } } + #endregion + + #region Neue Für Bewoplaner | Nicht integriert + private void DoSynchroForBewoplaner() + { + try + { + while (true) { + UebergebeMessageInfoDatenFuerDb(); + + var aktuelleGruppen = _chat.GruppenAktuallisieren(); + + var x = _chat.GroupklassenAktuallisieren(aktuelleGruppen); + + _kontaktlist = x; + + LeseMessageInfoAusDatei(); + + Clientlist.Items.Refresh(); + + Thread.Sleep(5000); + } + } + catch (Exception e) + { + MessageBox.Show("Es is ein Fehler bei der Kontakt Aktualisierung aufgetreten.\nFehler:\n" + e.Message, "Fehler", MessageBoxButton.OK); + } + } + + #endregion #region speichern sowie lesen der MessageSyncDatei / stylezwecke (OwnChat only) @@ -1009,7 +991,7 @@ namespace ChatController } } #endregion - + #region Speichern Und LEsen Der MesageSyncDatei (Bewoplaner only) public List UebergebeMessageInfoDatenFuerDb() diff --git a/ChatController/HauptKlassen/Chat.cs b/ChatController/HauptKlassen/Chat.cs index 639dce1..0925f71 100644 --- a/ChatController/HauptKlassen/Chat.cs +++ b/ChatController/HauptKlassen/Chat.cs @@ -3,6 +3,7 @@ using ChatController.Klassen; using Newtonsoft.Json; using System; using System.Collections.Generic; +using System.ComponentModel; using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Imaging; @@ -73,21 +74,47 @@ namespace ChatController.HauptKlassen { message = lastMS.Text; - timestamp = DateTime.Parse(lastMS.Timestamp.Date); - - var clientZone = TimeZoneInfo.Local; - timeformated = TimeZoneInfo.ConvertTimeFromUtc(timestamp, clientZone); + } } + if( value.LastMessage != null) { + timestamp = DateTime.Parse(lastMS.Timestamp.Date); + + 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)); + long? isCustomer = null; + bool isC = false; + bool isE = false; + foreach (var user in value.Users) + { + //oid des + if (user.Oid != ChatDaten.Userid) + { + if (!user.Is_Employee) + { + isCustomer = user.Oid; + isC = true; + } + } + } + + if (value.Onlyemployees && value.Users.Length == 2) + { + isE = true; + } + + //null steht für employee + Kontaktliste.Add(new KontaktlistBuilder(value.Name, AvatarToImageSourceConverter(value.Avatar,isE,isC), + message, timeformated, value.Oid, isCustomer,value.Onlyemployees,value.Users.Length)); 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)); @@ -111,7 +138,7 @@ namespace ChatController.HauptKlassen //view.Filter = UserFilter; } - private ImageSource AvatarToImageSourceConverter(string avatar) + private ImageSource AvatarToImageSourceConverter(string avatar,bool isEmployee, bool isCustomer) { if (!avatar.Equals("")) { @@ -142,11 +169,26 @@ namespace ChatController.HauptKlassen } else { + //team default png + string defImage = "pack://application:,,,/ChatController;component/Ressourcen/team_default.png"; + + if (isEmployee == true)//original true + { + //employee default png + defImage = "pack://application:,,,/ChatController;component/Ressourcen/employee_default.png"; + } + + if (isCustomer == true) + { + //client default png + defImage = "pack://application:,,,/ChatController;component/Ressourcen/client_default.png"; + } + try { BitmapImage bix = new BitmapImage(); bix.BeginInit(); - bix.UriSource = new Uri ("pack://application:,,,/ChatController;component/Ressourcen/mitarbeiter-avatar.png"); + bix.UriSource = new Uri (defImage);//"pack://application:,,,/ChatController;component/Ressourcen/mitarbeiter-avatar.png" bix.EndInit(); return bix; } @@ -179,32 +221,47 @@ namespace ChatController.HauptKlassen if (!ChatMessage.File.Equals("")) { + string textn = ""; + + if (ChatMessage.Text != null) + textn = ChatMessage.Text; + + if (textn.Equals("")) + textn = ChatMessage.Original_Filename; if (ImageExtensions.Contains(Path.GetExtension(ChatMessage.File).ToUpperInvariant())) { - Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name, ChatMessage.Text, - timeformated.ToString("dd MMMM yyyy HH:mm:ss"), true, LadeBildNach(ChatMessage.Smaller_Image), - timeformated,ChatMessage.File)); + //string textn = ""; + + //if (ChatMessage.Text != null) + // textn = ChatMessage.Text; + + //if (textn.Equals("")) + // textn = ChatMessage.Original_Filename; + + Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name, textn, + timeformated.ToString("dd MMM | HH:mm"), true, LadeBildNach(ChatMessage.Smaller_Image), + timeformated,ChatMessage.File, ChatMessage.Original_Filename)); } else if (DokumentExtension.Contains(Path.GetExtension(ChatMessage.File).ToUpperInvariant())) { - Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name, Path.GetFileName(ChatMessage.File), - timeformated.ToString("dd MMMM yyyy HH:mm:ss"), true,ChatMessage.File, + Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name, textn, + timeformated.ToString("dd MMM | HH:mm"), true,ChatMessage.File, timeformated)); } else { //MP4 und gifs und so unbehandelten dreck - Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name, Path.GetFileName(ChatMessage.File), - timeformated.ToString("dd MMMM yyyy HH:mm:ss"), true,ChatMessage.File, + Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name, textn, + timeformated.ToString("dd MMM | HH:mm"), true,ChatMessage.File, timeformated)); } } else { Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name, ChatMessage.Text, - timeformated.ToString("dd MMMM yyyy HH:mm:ss"), true, timeformated)); + timeformated.ToString("dd MMM | HH:mm"), true, timeformated)); //dd MMMM yyyy HH:mm:ss } } else @@ -217,28 +274,35 @@ namespace ChatController.HauptKlassen if (!ChatMessage.File.Equals("")) { + string textn = ""; + + if (ChatMessage.Text != null) + textn = ChatMessage.Text; + + if (textn.Equals("")) + textn = ChatMessage.Original_Filename; + if (ImageExtensions.Contains(Path.GetExtension(ChatMessage.File).ToUpperInvariant())) { - //image - Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name, ChatMessage.Text, - timeformated.ToString("dd MMMM yyyy HH:mm:ss"), false, LadeBildNach(ChatMessage.Smaller_Image), - timeformated,ChatMessage.File)); + + Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name, textn, + timeformated.ToString("dd MMM | HH:mm"), false, LadeBildNach(ChatMessage.Smaller_Image), + timeformated,ChatMessage.File, ChatMessage.Original_Filename)); } else if (DokumentExtension.Contains(Path.GetExtension(ChatMessage.File).ToUpperInvariant())) { //Dokument - Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name, - Path.GetFileName(ChatMessage.File), - timeformated.ToString("dd MMMM yyyy HH:mm:ss"), false, ChatMessage.File, + Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name,textn, + timeformated.ToString("dd MMM | HH:mm"), false, ChatMessage.File, timeformated)); } else { //ALLERLEI UNBEHANDELTER KRAM Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name, - Path.GetFileName(ChatMessage.File), - timeformated.ToString("dd MMMM yyyy HH:mm:ss"), false, ChatMessage.File, + textn, + timeformated.ToString("dd MMM | HH:mm"), false, ChatMessage.File, timeformated)); } } @@ -246,19 +310,19 @@ namespace ChatController.HauptKlassen { //Message Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name, ChatMessage.Text, - timeformated.ToString("dd MMMM yyyy HH:mm:ss"), false, timeformated)); + timeformated.ToString("dd MMM | HH:mm"), false, timeformated)); } } } - var x = Messages.OrderBy(r => r.ConvertetSendtimeString); + var x = Messages.OrderBy(r => r.InternalSendTime); return x; } else { - return Messages.OrderBy(r => r.ConvertetSendtimeString); + return Messages.OrderBy(r => r.InternalSendTime); } } @@ -383,37 +447,40 @@ namespace ChatController.HauptKlassen if (!ChatMessage.File.Equals("")) // Bilder werden Sichtbar { + string textn = ""; + + if (ChatMessage.Text != null) + textn = ChatMessage.Text; + + if (textn.Equals("")) + textn = ChatMessage.Original_Filename; + + if (ImageExtensions.Contains(Path.GetExtension(ChatMessage.File).ToUpperInvariant())) { - Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name, ChatMessage.Text, - timeformated.ToString("dd MMMM yyyy HH:mm:ss"), true, LadeBildNach(ChatMessage.Smaller_Image), - timeformated, ChatMessage.File)); + Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name,textn, + timeformated.ToString("dd MMM | HH:mm"), true, LadeBildNach(ChatMessage.Smaller_Image), + timeformated, ChatMessage.File,ChatMessage.Original_Filename)); } else if (DokumentExtension.Contains(Path.GetExtension(ChatMessage.File).ToUpperInvariant())) { - Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name, - Path.GetFileName(ChatMessage.File), - timeformated.ToString("dd MMMM yyyy HH:mm:ss"), true, ChatMessage.File, + Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name,textn, + timeformated.ToString("dd MMM | HH:mm"), true, ChatMessage.File, timeformated)); } else { // Der Ganze Unbehndelte Kram - Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name, - Path.GetFileName(ChatMessage.File), - timeformated.ToString("dd MMMM yyyy HH:mm:ss"), true, ChatMessage.File, + Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name,textn, + timeformated.ToString("dd MMM | HH:mm"), true, ChatMessage.File, timeformated)); } - - //Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name, ChatMessage.Text, - // timeformated.ToString("dd MMMM yyyy HH:mm:ss"), true, LadeBildNach(ChatMessage.File), timeformated)); - } else { Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name, ChatMessage.Text, - timeformated.ToString("dd MMMM yyyy HH:mm:ss"), true, timeformated)); + timeformated.ToString("dd MMM | HH:mm"), true, timeformated)); } } else @@ -426,45 +493,48 @@ namespace ChatController.HauptKlassen if (!ChatMessage.File.Equals("")) { + //image + string textn = ""; + + if (ChatMessage.Text != null) + textn = ChatMessage.Text; + + if (textn.Equals("")) + textn = ChatMessage.Original_Filename; + if (ImageExtensions.Contains(Path.GetExtension(ChatMessage.File).ToUpperInvariant())) { - //image - Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name, ChatMessage.Text, - timeformated.ToString("dd MMMM yyyy HH:mm:ss"), false, LadeBildNach(ChatMessage.Smaller_Image), - timeformated, ChatMessage.File)); + Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name, textn, + timeformated.ToString("dd MMM | HH:mm"), false, LadeBildNach(ChatMessage.Smaller_Image), + timeformated, ChatMessage.File,ChatMessage.Original_Filename)); } else if (DokumentExtension.Contains(Path.GetExtension(ChatMessage.File).ToUpperInvariant())) { //Dokument - Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name, - Path.GetFileName(ChatMessage.File), - timeformated.ToString("dd MMMM yyyy HH:mm:ss"), false, ChatMessage.File, + Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name, textn, + timeformated.ToString("dd MMM | HH:mm"), false, ChatMessage.File, timeformated)); } else { //Der Ganze Unbehandelte Kram MP4 und So - Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name, - Path.GetFileName(ChatMessage.File), - timeformated.ToString("dd MMMM yyyy HH:mm:ss"), false, ChatMessage.File, + Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name,textn, + timeformated.ToString("dd MMM | HH:mm"), false, ChatMessage.File, timeformated)); - } - - //Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name, ChatMessage.Text, - //timeformated.ToString("dd MMMM yyyy HH:mm:ss"), false, LadeBildNach(ChatMessage.File), timeformated)); + } } else { Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name, ChatMessage.Text, - timeformated.ToString("dd MMMM yyyy HH:mm:ss"), false, timeformated)); + timeformated.ToString("dd MMM | HH:mm"), false, timeformated)); } } } } - var x = Messages.OrderBy(r => r.ConvertetSendtimeString); + var x = Messages.OrderBy(r => r.InternalSendTime); return x; } @@ -682,9 +752,32 @@ namespace ChatController.HauptKlassen message = Path.GetFileName(value.LastMessage.File); } + long? isCustomer = null; + bool isC = false; + bool isE = false; + foreach (var user in value.Users) + { + //oid des + if (user.Oid != ChatDaten.Userid) + { + if (!user.Is_Employee) + { + isCustomer = user.Oid; + isC = true; + } + + } + } + + if (value.Onlyemployees && value.Users.Length == 2) + { + isE = true; + } + + //null steht für employee - Kontakt.Add(new KontaktlistBuilder(value.Name, AvatarToImageSourceConverter(value.Avatar), - message, timeformated, value.Oid, null)); + Kontakt.Add(new KontaktlistBuilder(value.Name, AvatarToImageSourceConverter(value.Avatar,isE,isC), + message, timeformated, value.Oid, isCustomer, value.Onlyemployees, value.Users.Length)); 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)); @@ -770,7 +863,7 @@ namespace ChatController.HauptKlassen var time = DateTime.Now; Messages.Add(new KontaktMessageBuilder(username, nachricht, - time.ToString("dd MMMM yyyy HH:mm:ss"), true, time)); + time.ToString("dd MMM | HH:mm"), true, time)); } catch (Exception e) @@ -876,20 +969,20 @@ namespace ChatController.HauptKlassen logo.EndInit(); Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name, Path.GetFileName(file), - timeformated.ToString("dd MMMM yyyy HH:mm:ss"), true, logo, - timeformated, file)); + timeformated.ToString("dd MMM | HH:mm"), true, logo, + timeformated, file, Path.GetFileName(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.ToString("dd MMM | HH:mm"), 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.ToString("dd MMM | HH:mm"), true, file, timeformated)); } @@ -908,7 +1001,6 @@ namespace ChatController.HauptKlassen if (ImageExtensions.Contains(Path.GetExtension(filename).ToUpperInvariant())) { - BitmapImage biImg = new BitmapImage(); MemoryStream ms = new MemoryStream(datei); biImg.BeginInit(); @@ -918,14 +1010,13 @@ namespace ChatController.HauptKlassen 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)); + timeformated.ToString("dd MMM | HH:mm"), true, logo, + timeformated, filename, Path.GetFileName(filename))); } else { - Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name, Path.GetFileName(filename), - timeformated.ToString("dd MMMM yyyy HH:mm:ss"), true, filename, + timeformated.ToString("dd MMM | HH:mm"), true, filename, timeformated)); } } @@ -1544,30 +1635,49 @@ namespace ChatController.HauptKlassen //if (val == null) //was tun wenn der nicht merh drinne ist ?? dann ist das ja auch null //{ - string message = ""; - DateTime timestamp = new DateTime(); + string message = ""; + DateTime timestamp = new DateTime(); - var lastMS = value.LastMessage; + var lastMS = value.LastMessage; - if (lastMS != null) + if (lastMS != null) + { + if (lastMS.Text != null) { - 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); + } + + long? isCustomer = null; + bool isC = false; + bool isE = false; + foreach (var user in value.Users) + { + if (user.Oid != ChatDaten.Userid) + { + if (!user.Is_Employee) { - message = lastMS.Text; - timestamp = DateTime.Parse(lastMS.Timestamp.Date); + isCustomer = user.Oid; + isC = true; } } + } - 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)); + if (value.Onlyemployees && value.Users.Length == 2) + { + isE = true; + } + + Kontaktliste.Add(new KontaktlistBuilder(value.Name, + AvatarToImageSourceConverter(value.Avatar,isE,isC), + message, timestamp, value.Oid, isCustomer, value.Onlyemployees, value.Users.Length)); //} //else //{ diff --git a/ChatController/HauptKlassen/Login.cs b/ChatController/HauptKlassen/Login.cs index 40cf60c..67efd8b 100644 --- a/ChatController/HauptKlassen/Login.cs +++ b/ChatController/HauptKlassen/Login.cs @@ -18,7 +18,7 @@ namespace ChatController.HauptKlassen private string _newUrl = "https://dict.ownchat.de/api/server/resolve/1/"; //https://dict.ownchat.de/api/server/resolve/{type}/{customerid} //type = Diensttyp(1,2,oder 3), customerid = Kudennummer des Kunden - private string _serverUrl = ""; + public string _serverUrl = ""; private string _authToken = ""; private readonly string _benutzername; @@ -54,6 +54,12 @@ namespace ChatController.HauptKlassen _apikey = apikey; } + // + public Login() + { + ServerErmittlung(); + } + public ChatDatenUebergabe AnmeldevorgangDurchFuehren() { if(ServerErmittlung()){ @@ -83,47 +89,55 @@ namespace ChatController.HauptKlassen public bool ServerErmittlung() { - try + if (_serverUrl.Equals("")) { - string serverURl = _newUrl + _kundennummer; - - WebRequest request = WebRequest.Create(serverURl); - - request.Credentials = CredentialCache.DefaultCredentials; - - WebResponse response; - try { - response = request.GetResponse(); - } - catch (Exception e) - { - MessageBox.Show("Fehler: Es konnte keine Verbindung aufgebaut werden.", "Fehler", MessageBoxButton.OK,MessageBoxImage.Error); - return false; - } - // Display the status. - var statusResponse = ((HttpWebResponse)response).StatusDescription; - - string responseFromServer = ReadStream(response); + string serverURl = _newUrl + _kundennummer; - try + WebRequest request = WebRequest.Create(serverURl); + + request.Credentials = CredentialCache.DefaultCredentials; + + WebResponse response; + + try { - var jsonDatentyp = JsonConvert.DeserializeObject(responseFromServer); + response = request.GetResponse(); + } + catch (Exception e) + { + MessageBox.Show("Fehler: Es konnte keine Verbindung aufgebaut werden.", "ownChat Fehler", + MessageBoxButton.OK, MessageBoxImage.Error); + return false; + } + + // Display the status. + var statusResponse = ((HttpWebResponse) response).StatusDescription; + + string responseFromServer = ReadStream(response); + + try + { + var jsonDatentyp = + JsonConvert.DeserializeObject(responseFromServer); if (jsonDatentyp.Status == 1) { - MessageBox.Show("Fehler: Kundennummer unbekannt.\nBitte überprüfen Sie die Anmeldeinformationen.","Info",MessageBoxButton.OK,MessageBoxImage.Asterisk); + MessageBox.Show( + "Fehler: Kundennummer unbekannt.\nBitte überprüfen Sie die Anmeldeinformationen.", + "ownChat Info", MessageBoxButton.OK, MessageBoxImage.Asterisk); return false; } else if (jsonDatentyp.Status == 2) { - MessageBox.Show("Der Diensttyp ist für die angegebene Kundennummer nicht definiert.","Info",MessageBoxButton.OK,MessageBoxImage.Asterisk); + MessageBox.Show("Der Diensttyp ist für die angegebene Kundennummer nicht definiert.", "ownChat Info", + MessageBoxButton.OK, MessageBoxImage.Asterisk); return false; } else - { + { _url = jsonDatentyp.URL; } } @@ -131,39 +145,48 @@ namespace ChatController.HauptKlassen { try { - var jsonDatentyp = JsonConvert.DeserializeObject(responseFromServer); + var jsonDatentyp = + JsonConvert.DeserializeObject(responseFromServer); if (jsonDatentyp.Status == 1) { - MessageBox.Show("Fehler: Kundennummer unbekannt.\nBitte überprüfen Sie die Anmeldeinformationen.","Info",MessageBoxButton.OK,MessageBoxImage.Asterisk); + MessageBox.Show( + "Fehler: Kundennummer unbekannt.\nBitte überprüfen Sie die Anmeldeinformationen.", + "ownChat Info", MessageBoxButton.OK, MessageBoxImage.Asterisk); return false; } else if (jsonDatentyp.Status == 2) { - MessageBox.Show("Der Diensttyp ist für die angegebene Kundennummer nicht definiert.","Info",MessageBoxButton.OK,MessageBoxImage.Asterisk); + MessageBox.Show("Der Diensttyp ist für die angegebene Kundennummer nicht definiert.", + "ownChat Info", MessageBoxButton.OK, MessageBoxImage.Asterisk); return false; } else - { + { _url = jsonDatentyp.URL; } } catch (Exception e) { - MessageBox.Show("Fehler: "+e.Message,"Fehler",MessageBoxButton.OK,MessageBoxImage.Error); - + MessageBox.Show("Fehler: " + e.Message, "ownChat Fehler", MessageBoxButton.OK, MessageBoxImage.Error); + } } - - response.Close(); - _serverUrl = _url; - return true; + response.Close(); + + _serverUrl = _url; + return true; + } + catch (Exception e) + { + MessageBox.Show("Fehler: " + e.Message, "ownChat Fehler", MessageBoxButton.OK, MessageBoxImage.Error); + return false; + } } - catch (Exception e) + else { - MessageBox.Show("Fehler: "+ e.Message,"Fehler",MessageBoxButton.OK,MessageBoxImage.Error); - return false; + return true; } } @@ -242,8 +265,7 @@ namespace ChatController.HauptKlassen } catch (Exception e) { - //throw fehler - MessageBox.Show(e.Message, "Fehler", MessageBoxButton.OK,MessageBoxImage.Error); + MessageBox.Show("Fehler:"+e.Message, "Fehler", MessageBoxButton.OK,MessageBoxImage.Error); } } diff --git a/ChatController/LoginKlassen/ChatGruppenDaten.cs b/ChatController/LoginKlassen/ChatGruppenDaten.cs index 22ee4ac..ec78dc9 100644 --- a/ChatController/LoginKlassen/ChatGruppenDaten.cs +++ b/ChatController/LoginKlassen/ChatGruppenDaten.cs @@ -23,6 +23,7 @@ namespace ChatController.Klassen public string Mobile { get; set; } public GroupLastMessage LastMessage { get; set; } public GroupUsers[] Users { get; set; } + public bool Onlyemployees { get; set; } } public class GroupLastMessage @@ -47,7 +48,7 @@ namespace ChatController.Klassen public string Lastname { get; set; } public string Mobile { get; set; } public string Picture { get; set; } - public bool IsEmployee { get; set; } + public bool Is_Employee { get; set; } } public class LastMessageTimeStamp diff --git a/ChatController/Ressourcen/client_default.png b/ChatController/Ressourcen/client_default.png new file mode 100644 index 0000000000000000000000000000000000000000..fffc488191a0501d0ce3a083c86d97d7857f166e GIT binary patch literal 7009 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 literal 0 HcmV?d00001 diff --git a/ChatController/Ressourcen/employee_default.png b/ChatController/Ressourcen/employee_default.png new file mode 100644 index 0000000000000000000000000000000000000000..34a3a8bf0fa13b610580a1fd1b2c50e85e2bab1f GIT binary patch literal 162580 zcmeI52V4`$+klr-QHo;2jz_VgAqgcEDN>}USSSa!(-1<40zrs^dMeo4Uq$SQXF0`+ z?Zm^1y@Tbf*s*)!r{LkKz?TWqmdzRjk<7mP6Uol(&hGoX&rT+jkexlCpIbxCHkt%M zH1u$H@sj;MjD8xZ%l@A$-J2-;r4jBvD3TzwnxP*xV&$q<1fkhq?Cd;XK(ItAi42y6 z>w7pm>xV~3g2W+0f{4DI=q>W`e$m1%?_RD`pII@B`$)WW8|ZsE&5dau*U8vGqjB$9 z25WEW4m{eVSFgHl&#akMXa4+{dAb9;YtPZVS^u%Yy7^Pr&zf`Y)58htM_oUd_w-`H z-W&GMw&f)5$*7;!KzpgX*+7dJ?afZ@n>?6$`oyV+k4<{UYIX=G8aLPzXb_oiq(*$0 zWNX{aFs=S!LM{5LRs$l)ncZprAgzg`ZS1XPV^i<-)SS!(^V}d zad{_iVohCQ#CbtL7BPTDjOaZ1=~W^o@xzJP{d=oG~(rCZ??*n!CR9 zvwhnwx$!e&8L1V!ZBsi~_lh0TfHk_lpPxzlF6kaEyEW(Wf8wv~X>x4biq@vF<~k2@ zE)c|;I9*w^Ir-7)jgr&TdGk{m4QIVPqF!hi5Rg^yBx7rMPl9+TopiaNJ9|%?m>%je zp#|$YX4eh=RcpTldUYhcsS^IcZX%Q4+xINNDa*OMKu6b3%J-~Ce^`}-Ee&XM+N6XIB#h6(EY+oyA5 ze`(sIJc4+4Kyvi&E)D9$1W$dK5morcA>VCHMI@iO;z`4yPLsgv**( z^pS;+RuoC(Xc^b`c}GZkyuNWyZywdd4HzfA`cg zPa7CKBR;&5$uZx*8rg;GeB?J+eYDHLSdF@lXBsr)8{D3y7BI)(Xnup1E2e)iIO<-v z>D&(bXJ<7ZXxJyt!kz0i$4B4SUGJS;#81{Uhq~^M>v4uKo$`6cK{xK=*xdu|{?^{> zoVv-f%{13_T9*Q)+?5MjtVy^O@n;*mdAzmHE^Q6gxxK*N`7|f(d8_(nCqg(Tr;a=A zvg)o8FF3!;aGUnlQ*CzsvaQa6+3y7zyQ1ngjqR1D!K)kPq|a~f=F?g%=z7xy&Df16%yK?q*`eudXVcE9 z3xD$1^@q=urdM3Agn1dg=)O6@+`Wxa{Mp-qqjuM~Uff;3+nMQ)6CWRcZ1%YAV}o}? zG!p}Qj{f6=_oFUe=SKE!{iN{|^C#-U<))6l>sNZ+-L%%HiN%7!PTSX}c-tkw7JKonOj7gBt8y* zOd6CwTYb>+zQ_AJ|1ogQuHjh+Pw8t3TJMSOZZN9h))`}BElzaWb@A43V~r0i&(}LJ z*KW(^wbssNz0Lggc;ze(a;TrReDsG^(taAxx+E>jnKb8K^EX`|b#1%Ryl*O3ICRvO zrOTH3Z*|`~aI4#^L%ihINr@W|^*S)?m z(_7h|v=}Y1)nlK|d^^y2*zumu8~983%N|aPOTBEn{+jFmTy^G&PYuoLkQI6=^wj!J z>YWTa_3?b^nZ44>Gj(IvjXnDI=zIF&g^TMhUSDC6V8^{-`YhpD!i|Lc`$i0o9^5@; zQ_5dLkKK<4Zyc1JaxiTAVCz8}{Cx)x+vB=DaeK$>2euzbYLb-NFTUT_)z?MGcfL(I zo3eRd>zz+-s%Ivrgr-d7ivn7T_MJ>Vo*jQEe&YU#|I4?l-*D!wMqBj;>rIOMGorc8 zFE;m9rmxC&n0PXG=?k{VKcjKRO|z_&X6L(}5GQ&kTy+z*6s1N^&6zcKcAqKdO_tf4 zB(yzs_spTky`}F*4|_QN%KOBGJqgENZ_3<}&C3>N&%E>d1@qs#t{!9-dFl8W=LZ9y zTz1g;|w%^#fZ$s3UJpP-O_W#;P{GMf>WovoQ^xmN1 z7cA5Eo!NK3|8dFc;nVLsPc|wHEF52WnMjK1s3xj2JJvCF$WNa>jQ`Ex$b1KzOyR$~ zZ@qS$whquS=N_M=-Ff=V z>3%aD=7-PnZ*!Tu%p&UY9p}jVE+1W%y4*_;ar;~EVD+{zw%=kh()PCHe)Ihfr%Zwd zUAX3-=h&3ImDg1C~o0sr!5Aa@hPI0qNhP)&u z-(7GrZ0 zG8bB|dh>hX>!!z=K3tTtVMZT6mY)C9L)%7L@3tL1E>km0w_djyzo>7s{cBE&ap<-F zTVMMvOP+M7(|FHOvA-TYH|6MFwNbCMd^Mj;pZMy|jn~8a`?Ck#-^>3vBeAW$?(8|q z%`;mr)17>?%bn;aZD&f(9a(W_@t>Qwo=6SM2)YvV;^{rs>LHDmZdvwpS);Iqw{HL0 z@cu7eM5naF=n9U*u`r&uib% z=Jwcm6Sh69fA#0FdLljcNT-$WR=Os5ulzJ5V95Ud7wj)ze|c~GXSd9sbyk_%4jR`x z$LFm0_KPW3<3;Z><|QskoH)tkzdIu`*QHE&CP=?OQb+P;e`D#xE4>QmKI?I?NBYor ze@Wl%&V16$?=QcVJ8XuBzLdVSEr`F`|MY=X2UaGh4jq-6J^s+%2|;-;+OD=tzngn# z+}jp~*RQR%w!3>MXS^iuWZwJxE$&W==$xN^{=luM&e_`!_CGj0x94leTh4c9UUL{y zaOdWmJCjGIMXkxXe8(+Mefrdlg1Gk!be!ugSh3*zjD|B_t+ukawtnOgk^kazl5<92 zMyJ&+3)U5!Pj1S2xlxFTcEY*}G-&M?!zwkpD96RqGv@r;eR!fB0;)8TZ%R zUp~D)8g(a1@6G!AI{hF2ra!q$Veo&u-g{q4`V`+fKEAMSo#i>71!k;Fg6QEY_VJhc zd-k;vNJ35cfsz2BNpxtqY#>SywhqzZe8DK8R6jr{5{KCtzBzEjP+uHqXXt0)$?*(# z76yym$43ag$M^FQj2|Vi4m5PI*R+kcku?x1l=AhXLqozMZKCZA&XNeBzJ&>oCE%Kw>RVcya4oD&t<1aYn{v23HpiUJwPtb6Y-In; zIr?7~LwilxBio3;AR8|i*Dr^Yt=Sm{OQqp9Y<5&slu4ACi6lZK+uhol%`s)0nzCeD zup-BWN%_&Nut=k#MvB{U5k?9k#Nkr0BupQ*%MXx@k=hv=q63vIU*ZZ4FF8NwvZ#0tF>|hL4E|kpm7Cu!SMQP}wmfW&3d{V~~o2N|RGA1XQE&aKdP@ zg56L}(Qa}TiZWy?^UuaPLdcg&B77v05c?v_N?$+8UOvgJvM{mG@8Ty83zS4fcC}@b zcPh!I#W?V~-Ac)762U&ji3QfC61Y?j1vZjkJ{XmI8)_jRrHXO^qKnpIeJRzSORD1}EW-1)YT^uR%XM+<99XEReXS1Yc?*OZg@ ztMb0cs$xS{F0Q7IuC9*eTt@{B6*XV}L~Ys1g;|D%vm`_k;VB6e+MAW#yR^788)f#A z%`pxrnqst%^m233_vq!!<6850EK?KNQ$XoSl-aIKJAne5AW1|hUurK7<%@*u@Gy}r zyR@*(mgtG!M%Mqz`U1YZ-;=dop^Ut}Kk7$A#>lrfwK6m3S+Kbr+45!Aveo2W2hs0Z zwwk7Kq}Vkx32KT%R~nZ3~H#7559TQ-mu+RH*C7m>FfAdVJ>_`8T@&z_O!S%7OT z3rfBdxrTDjK??UQQ}bodBE8BCc;(kaQK@V=EgQ+RONR0lE|rpJpXz*28d7z(N@@!Z zLIOg+3b^R`kZJ)J2?+fv;G*Y4ss&smAoQz%i=Gdu7I2Y((60h6dOoCDz(oQ=zY4hM z`H*S>7YPXcD&V5$L#hQ_Bp~#wfQz0FsTOdNfY7f3E_yzsTEImDLca>Q==qRp0T&4f z{VL$1=R>LmTqGd$tALB152+S#k$}*z0xo(!q*}m50z$tExaj$iY5^As2>mMHqUS@Z z1zaQ`^s9i2o)4)OaFKw}uL3T5KBQW}MFK*<3b^R`kZJ)J2?+fv;G*Y4ss&smAoQz% zi=Gdu7I2Y((67?s(k%VsSYep#FJhx)fBNd>+i-{M&t~-n?p~e*F}@=~#7rfK{|aTl zUl7C?4ne#eK@c{}38JNB(eRV5#82k0JzN}pqSc5(*+y!YE@jAm!2$#rMIh}bMuiK( z0)a0CKzvYvkpw_|My4Ht2JyiGMiKz=8JTtn8pH<&7)b!cXJpzTXb>M9U?c$$pOI;Y zph0|afRO}1d`6}nf(G%y0Y(x4@fn$R2pYr(2N+2J#AjsMA!raE9AG2?5TB80hoC`x zaDb5nKzv4~9fAh&!2w1R0Pz`_b_g282L~8Q0K{ix+97BV9~@vL0T7>&X@{Ued~kq~ z1VDU7rX7L?@xcK`5&-cTnRW;o#0Li$NdUxWWZEHU5FZ?1Bmoegk!gpZL40t4kpw_| zMy4Ht2JyiGMiKz=8JTtn8pH<&7)b!cXJpzTXb>M9U?c$$pOI;Yph0|afRP01GBWBK z47yI8I)t{iHld-RL1<}dmmC?Def;>5$j{H0|K#Q65d{VL#M`%T3G^72?@Iv0|4w|H zHf>5YZ>}pBUeO`c)zwR?(1n1OmMvS!F9dV}ym^yNU<+WG(I;n z>QE!nmpw&v0Tdq>J%;7m2tbej4cyS!TTie3H|$w`yP)15%@U#BAC}4!fF8e+%ye{g z97+dU&JgRFV8>+z*TL1VDTxSfL)iw)d(?{+gIwQUaGsYy#pdk*3-%eQ^lr1#j`2 zUd3hbo0R#q$q&od34r)CjL>XJZ5`JuI&Cy8Yt^ciqG~Ar zLIA|4Q2`AbYSRo3&8e2FLLZJ(#q%x~#CKi+@f83@;vj)kaY5$}Lmv9ff%ppeps~Fw z_nNBox1s9xT!RaEVNYytNf%qhJXeI}jp$-ZS zeTD~?iUdG>5)%-G1O(Gn5FgXTLRjWP>U%65FgXTLRjWP>U%65FgXT zLRjWP>U%65TBG-+`gn0eH$|@6$ya&6`5f5^?V;bz*mk_q?iElDX8G|{q*ST z#$l;Q0K~7zgn0iRkME>M!yKG0Vv1CKa}kJ7fesg0&{vAXLQMd~r{IEa(Sw8h=#DC| zP!j<0skzASK%$^ZC5q97i^IkHyQDg<)t*0p zP7@haf%r5IpcjX#I9z!8^a)K=P=yG9_%t4%>AJd1zAAK~!rcAW^8(_3g%J`7 z-EB}67Bs|xTLUSVDG*-?PH4QW3PTn@0`>g0sb>Z0E0Mr5n}Yad zU?}qtNncxrJ!skqdU|EDR&g5;zao>bmZ0GdlK)3d`JjvM_U&5)d=l-esZzKB+}>Ov zny*)&-WE-qqdUaa)K{<}+0naHwehva*NN4hEuhD*VlL3QzotIlfO`6W{&@w`S21U3 zcj)oI5hD7&L39U+n!E!8I%cO%o#hku=mJ2!KlJ?HmOv1{65P_Ubo}P&dk{-Q) zXTr0bqWm&aeALsUcVU^lAo)?xU)$b^uBn_bPJ9^Wma2v1XKDw)DDjIw+*O)-c!W9v z^kFxqEsPN#jc3uDIZPhcDv}$$-a*4ZCM}E+pXo2=z9u!|!=#xWMu?AkGp6-uUlW~N zkDdvcG|Pp(_-NjmNeLwjU72+zy#~TweDn!LSd=G##`{bd@?b4Knz2AXuvCr!6P_Wl z6(5aRnK(^XImM~BMnfLlUlU;~K6+yYrY@<)R;Cp9SuiZcN5aDpM;W~pZ-W@3@jk8# zmg1u!4)pd_R~F}wGhin^8lOUMUv=q=Tfnu~$4-3s`_f`%tLOKR{_?EqiK1dF*olwx z({si2eg6_%XLzs@A5FobM8Q(M1aN#45G(P~(=sg8PXG-caqCd95g#Q6#`o1PeQ}Gp zy`hDT_)PeGNwI`K;x}&3rr3zzs1dXNkfNsLN6)A@4R^2+AGfFCnigA`E_(?nCAt; zs|f-sX@5juDIfsiD*ywx=6TL}=5s#V`}299bE0uqb?A}YNB{un^>j5&sPCq~KN>jo z`N*#}2LO~2r7g|q41MTJG>EwFn761fg=cERjnT@hX_BRIJ%kRao ziEFGi(xV&YONTV=(z)~H`=tpkuA z0RKu_2CS}3A?T{`du$sdvhE4e5aa{fB>?%j2I8XM`iWjUUsPrf!=e@%ti{N=w0Jn9IvfyN<@N5+4 z28XvXds>p@jJ4p1!Kq?ztwVF(toL?KV1i)uDwsh+uf14MWP_sqO|yXw;1%DHczhBA z%jON+Gx1pBdK>Iv|AbJ{Jye+WWn6l3GJD1BF&59(?pTD`zf*60&kCNDM%OZvqk2W# z#=5@b!-&)CkrD0r_fEE_mYY3}4WsYB(|sAPx{E5+h_y6!4+yU6Sc8!r zWPr`x<}q1DFj{=s`k>|dZhrKFupatDrHoWpU!UB(kH!0$@ZWJfI`Vmr?na$>Pub>CFr=iGY2ToND6hd}@4L|j0b64> zAo(1fh0SAA))Tw2yc&g3L1S(eklPEX1a2~Tc2tE>zyxCP#nwQM2IWJ86_}bEXg)`G zygfO$_`SOA){Jmc*50K)$uqHiESuHryY2lfWDrOfd=>|s#X=UrLU@Kd1Z6Kce+vgR z9K!@N2eIpdT?ve@)Ktc3Vz9Jhpa7y9j*c74>H-qQA{6M)6S}7q>p&hv1RfeoT)@K{ zKwC^uyVKH|VQlDYx^&Wnp40GIn!DIz91R<+LoJ$#kwtxfK%@kEHnJ>Vv4r*yzas1g zp+cQFpzOky86FZjNuefh;-AdUZ-pr1&Cj#>DK-C z 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 Y3{Jmtnol88@8*D>)>X|4b$s}L0U~o#i~s-t literal 0 HcmV?d00001 From 2261e37a20ac43ee30c58d0d22d299a4d25374c2 Mon Sep 17 00:00:00 2001 From: Waldi Date: Fri, 17 Nov 2017 15:40:11 +0100 Subject: [PATCH 2/2] =?UTF-8?q?update=20OwnChat=20Image=20Size=20und=20anz?= =?UTF-8?q?eige=20Angepasst,=20funktion=20zur=20ermittlung=20der=20max=20u?= =?UTF-8?q?pload=20size=20erstellt=20und=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ChatKlassen/KontaktMessageBuilder.cs | 37 +- ChatController/ChatMainControl.xaml | 15 +- ChatController/ChatMainControl.xaml.cs | 46 +- ChatController/HauptKlassen/Chat.cs | 472 ++++++++++++++++-- ChatController/HauptKlassen/Login.cs | 44 +- .../LoginKlassen/ChatDatenUebergabe.cs | 16 +- 6 files changed, 558 insertions(+), 72 deletions(-) diff --git a/ChatController/ChatKlassen/KontaktMessageBuilder.cs b/ChatController/ChatKlassen/KontaktMessageBuilder.cs index e387313..35fc847 100644 --- a/ChatController/ChatKlassen/KontaktMessageBuilder.cs +++ b/ChatController/ChatKlassen/KontaktMessageBuilder.cs @@ -41,10 +41,11 @@ namespace ChatController.ChatKlassen DokumentVisibility = Visibility.Collapsed; _herunterladen = Visibility.Collapsed; _gifPictureVisibility = Visibility.Collapsed; + _picturePlaceHolderVisibility = Visibility.Collapsed; + + - - } // IMage Ansicht @@ -77,7 +78,33 @@ namespace ChatController.ChatKlassen HyperlinkVisibility = Visibility.Collapsed; DokumentVisibility = Visibility.Collapsed; _herunterladen = Visibility.Collapsed; + _picturePlaceHolderVisibility = Visibility.Collapsed; + + } + + //Konstruktor PlaceHolder + public KontaktMessageBuilder(string username, string message, string sendtime, bool isme, DateTime convertedSendTimeString, string originalImage, string imageName) + { + + Username = username; + UserMessage = message; + SendTime = sendtime; + InternalSendTime = convertedSendTimeString; + OriginalImage = originalImage; + OriginalImageName = imageName; + + Farbgebung(isme); + + + _pictureVisibility = Visibility.Collapsed; + ChatVisibility = Visibility.Collapsed; + SoundVisibility = Visibility.Collapsed; + HyperlinkVisibility = Visibility.Collapsed; + DokumentVisibility = Visibility.Collapsed; + _herunterladen = Visibility.Collapsed; + + _picturePlaceHolderVisibility = Visibility.Visible; } //Dokument Ansicht @@ -100,7 +127,8 @@ namespace ChatController.ChatKlassen SoundVisibility = Visibility.Collapsed; _herunterladen = Visibility.Collapsed; HyperlinkVisibility = Visibility.Collapsed; - + _picturePlaceHolderVisibility = Visibility.Collapsed; + } private void Farbgebung(bool isme) @@ -361,6 +389,9 @@ namespace ChatController.ChatKlassen private Visibility _pictureVisibility; public Visibility PictureVisibility { get { return _pictureVisibility; } set { _pictureVisibility = value; OnPropertyChanged("PictureVisibility"); } } + private Visibility _picturePlaceHolderVisibility; + public Visibility PicturePlaceHolderVisibility { get { return _picturePlaceHolderVisibility; } set { _picturePlaceHolderVisibility = value; OnPropertyChanged("PicturePlaceHolderVisibility"); } } + private Visibility _gifPictureVisibility; public Visibility GifPictureVisibility { get { return _gifPictureVisibility; } set { _gifPictureVisibility = value; OnPropertyChanged("GifPictureVisibility"); } } diff --git a/ChatController/ChatMainControl.xaml b/ChatController/ChatMainControl.xaml index 7ae49ed..1f131a0 100644 --- a/ChatController/ChatMainControl.xaml +++ b/ChatController/ChatMainControl.xaml @@ -268,15 +268,26 @@ - + - + + + + + + + + + + + +