diff --git a/ChatController/ChatMainControl.xaml b/ChatController/ChatMainControl.xaml
index e8850f3..c044845 100644
--- a/ChatController/ChatMainControl.xaml
+++ b/ChatController/ChatMainControl.xaml
@@ -124,15 +124,15 @@
-
+
-
+
-
+
diff --git a/ChatController/ChatMainControl.xaml.cs b/ChatController/ChatMainControl.xaml.cs
index 383f8a6..4663b24 100644
--- a/ChatController/ChatMainControl.xaml.cs
+++ b/ChatController/ChatMainControl.xaml.cs
@@ -33,7 +33,7 @@ namespace ChatController
///
public partial class ChatMainControl : UserControl
{
- #region Vokabeln :)
+ #region Vokabeln
private Chat _chat;
private AktuellerKontakt _aktuellerKontakt;
@@ -43,9 +43,7 @@ namespace ChatController
private IOrderedEnumerable _Orderedmessagelist;
private IOrderedEnumerable _kontaktlist;
-
- private readonly List _messagelist = new List();
-
+
private ChatDatenUebergabe _chatDaten;
private bool scrollPrueferAktivieren = false;
@@ -86,6 +84,8 @@ namespace ChatController
HorcheAlleGruppenNachrichten();
LeseMessageInfoAusDatei();
+
+ Clientlist.Items.Refresh();
}
public AktuellerKontakt GetAktuellenKontakt()
@@ -153,12 +153,15 @@ namespace ChatController
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,
@@ -196,11 +199,10 @@ namespace ChatController
{
if(Clientlist.SelectedItem != null)
{
-
- StartWaiting();
+ // StartWaiting();
Cursor = Cursors.Wait;
- scrollPrueferAktivieren = false;
+ scrollPrueferAktivieren = false;
Chat.ItemsSource = null;
AktChatUser.Items.Clear();
@@ -218,24 +220,23 @@ namespace ChatController
AktChatUser.Items.Add(aktuellerKontakt);
_aktuellerKontakt = aktuellerKontakt;
- var x = _chat.LadeChatNachrichtenVomKontakt(aktuellerKontakt);
+ var x = _chat.LadeChatNachrichtenVomKontakt(aktuellerKontakt);
Chat.ItemsSource = x;
Chat.Items.MoveCurrentToLast();
Chat.ScrollIntoView(Chat.Items.CurrentItem);
-
+
Chat.ContextMenu = _chat.ErstelleKontextMenue();
SetContextHandler();
scrollPrueferAktivieren = true;
-
+
HorcheAktivNachNachrichten();
Cursor = Cursors.Arrow;
- EndWaiting();
+ // EndWaiting();
}
}
-
#endregion
#region Context Menue
@@ -457,7 +458,6 @@ namespace ChatController
_chat.SendMessage(Chatbox.Text, kontakt.GroupId);
- //UebergebeNachrichtAnKontaktList(Chatbox.Text);
Chatbox.Text = "";
if (Chatbox.Text.Equals(""))
@@ -503,8 +503,6 @@ namespace ChatController
}
//hier bereich wie Dokumentieren
-
-
}
private void Chatbox_OnKeyDownHandler(object sender, KeyEventArgs e)
@@ -525,8 +523,7 @@ namespace ChatController
_chat.SendMessage(Chatbox.Text, kontakt.GroupId);
- //UebergebeNachrichtAnKontaktList(Chatbox.Text);
-
+
Chatbox.Text = "";
}
@@ -549,36 +546,6 @@ namespace ChatController
}
}
- 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
@@ -1002,8 +969,8 @@ namespace ChatController
}
#endregion
-
- #region speichern sowie lesen der MessageSyncDatei / stylezwecke
+
+ #region speichern sowie lesen der MessageSyncDatei / stylezwecke (OwnChat only)
public void SpeichereMessageInfoInDatei()
{
List aa = new List();
@@ -1039,9 +1006,49 @@ namespace ChatController
}
}
}
- }
+ }
}
-
+ #endregion
+
+ #region Speichern Und LEsen Der MesageSyncDatei (Bewoplaner only)
+
+ public List UebergebeMessageInfoDatenFuerDb()
+ {
+ List < KontaktlistBuilder > aa = new List();
+
+ Clientlist.Items.Refresh();
+
+ foreach (var item in Clientlist.Items)
+ {
+ var kontakt = item as KontaktlistBuilder;
+
+ if (kontakt != null && kontakt.SetzeGelesen == 0 && !kontakt.ReceiveMs.Equals(""))
+ {
+ aa.Add(kontakt);
+ }
+ }
+
+ return aa;
+ }
+
+ public void ErhalteMessageInfoVonDb(Dictionary liste)
+ {
+ if (liste != null)
+ {
+ foreach (var kon in _kontaktlist)
+ {
+ foreach (var item in liste)
+ {
+ if (kon.GroupId == item.Key)
+ {
+ kon.SetzeGelesen = 0;
+ }
+ }
+ }
+ }
+ }
+
+
#endregion
}
}
diff --git a/ChatController/HauptKlassen/Chat.cs b/ChatController/HauptKlassen/Chat.cs
index 2c7daf2..639dce1 100644
--- a/ChatController/HauptKlassen/Chat.cs
+++ b/ChatController/HauptKlassen/Chat.cs
@@ -4,6 +4,7 @@ using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Drawing;
+using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.IO;
using System.Linq;
@@ -19,6 +20,7 @@ using System.Windows.Media;
using System.Windows.Media.Imaging;
using Application = System.Windows.Forms.Application;
using Clipboard = System.Windows.Forms.Clipboard;
+using Color = System.Drawing.Color;
using ContextMenu = System.Windows.Controls.ContextMenu;
using DataFormats = System.Windows.Forms.DataFormats;
using Image = System.Windows.Controls.Image;
@@ -950,9 +952,53 @@ namespace ChatController.HauptKlassen
string filename = Path.GetFileName(file);
-
- SendMediaMessage(filename, kontakt.GroupId, mdatei);
-
+ //Medium auflösung auf 80 % vom original setzen
+ //Image x = (Bitmap)((new ImageConverter()).ConvertFrom(mdatei));
+
+ // image wieder in byte[] umwandeln und übergeben
+ if (ImageExtensions.Contains(Path.GetExtension(filename).ToUpperInvariant())){
+ var scaledImage = ScaleImage(mdatei);
+
+ SendMediaMessage(filename, kontakt.GroupId, scaledImage);
+ }
+ else
+ {
+ SendMediaMessage(filename, kontakt.GroupId, mdatei);
+ }
+
+ }
+
+ private byte[] ScaleImage(byte[] mdatei)
+ {
+ try
+ {
+ MemoryStream ms = new MemoryStream(mdatei);
+ System.Drawing.Image Image = System.Drawing.Image.FromStream(ms);
+
+ int width = (int) (Image.Width / 100 * 80);
+ int height = (int) (Image.Height / 100 * 80);
+ System.Drawing.Bitmap bmpScaled = new System.Drawing.Bitmap(Image);
+
+ using (Graphics gr = Graphics.FromImage(Image))
+ {
+ gr.Clear(Color.Transparent);
+
+ // falls jemand mekert, muss die intergedönse erhöht werden
+ gr.InterpolationMode = InterpolationMode.NearestNeighbor; // InterpolationMode.HighQualityBicubic;
+
+ gr.DrawImage(bmpScaled, 0, 0, width, height);
+ }
+
+ ImageConverter converter = new ImageConverter();
+ byte[] imageData = (byte[]) converter.ConvertTo(bmpScaled, typeof(byte[]));
+
+ return imageData;
+ }
+ catch (Exception e)
+ {
+ MessageBox.Show(e.Message, "Fehler");
+ return mdatei;
+ }
}
private static byte[] ReadFully(Stream stream)
@@ -1283,7 +1329,10 @@ namespace ChatController.HauptKlassen
form.StartPosition = FormStartPosition.CenterScreen;
form.Size = imgbit.Size;
form.MinimumSize = new Size(150,150);
- form.MaximumSize = new Size(500,500);
+
+ var width = (int)Math.Round(System.Windows.SystemParameters.PrimaryScreenWidth / 1.25);
+ var height = (int)Math.Round(System.Windows.SystemParameters.PrimaryScreenWidth / 2);
+ form.MaximumSize = new Size(width,height);
form.FormBorderStyle = FormBorderStyle.Sizable;
form.MaximizeBox = false;
@@ -1353,7 +1402,10 @@ namespace ChatController.HauptKlassen
form.StartPosition = FormStartPosition.CenterScreen;
form.Size = imgbit.Size;
form.MinimumSize = new Size(150,150);
- form.MaximumSize = new Size(500,500);
+
+ var width = (int)Math.Round(System.Windows.SystemParameters.PrimaryScreenWidth / 1.25);
+ var height = (int)Math.Round(System.Windows.SystemParameters.PrimaryScreenWidth / 2);
+ form.MaximumSize = new Size(width, height);
form.FormBorderStyle = FormBorderStyle.Sizable;
form.MaximizeBox = false;
@@ -1366,8 +1418,7 @@ namespace ChatController.HauptKlassen
pb.Image = imgbit;
pb.SizeMode = PictureBoxSizeMode.StretchImage;
- //pb.MaximumSize = new Size(500,500);
-
+
form.Controls.Add(pb);
form.ShowDialog();
}
@@ -1409,7 +1460,7 @@ namespace ChatController.HauptKlassen
switch (jsonDatentyp.result)
{
- case "0": MessageBox.Show("Syncanforderung wurde für fünf Minuten in der Zukunft hinterlegt.", "Fehler", MessageBoxButton.OK); return true;// gebe grünes licht für Aktualieserung des Chattes / Bei Invalid access ChatMaincontroll Schließen
+ case "0": /*MessageBox.Show("Syncanforderung wurde für fünf Minuten in der Zukunft hinterlegt.", "Info", MessageBoxButton.OK);*/ return true;// gebe grünes licht für Aktualieserung des Chattes / Bei Invalid access ChatMaincontroll Schließen
break;
case "11": MessageBox.Show("Kundennummer unbekannt.\nDer Chat wird jetzt geschlossen", "Fehler", MessageBoxButton.OK); return false; //rausschmeißen ?!
break;
diff --git a/PrototypChat/MainWindow.xaml.cs b/PrototypChat/MainWindow.xaml.cs
index de80f87..440ed65 100644
--- a/PrototypChat/MainWindow.xaml.cs
+++ b/PrototypChat/MainWindow.xaml.cs
@@ -117,6 +117,9 @@ namespace ownChat
//// Environment.Exit(0);
//LoginMaske newLogin = new LoginMaske();
//newLogin.Show();
+
+ ChatMainControl.SpeichereMessageInfoInDatei();
+ Environment.Exit(0);
}
private void ChatMainControl_OnOnClose()