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..35fc847 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,25 @@ namespace ChatController.ChatKlassen DokumentVisibility = Visibility.Collapsed; _herunterladen = Visibility.Collapsed; _gifPictureVisibility = Visibility.Collapsed; + _picturePlaceHolderVisibility = 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 +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 @@ -99,31 +113,43 @@ 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; + _picturePlaceHolderVisibility = 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 +373,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; } @@ -362,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"); } } @@ -382,6 +412,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 2b9ea30..33b7b46 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 @@ + + @@ -266,15 +268,26 @@ - + - + + + + + + + + + + + +