This commit is contained in:
Waldi
2017-11-09 12:20:03 +01:00
parent c84f595f45
commit c6310e1923
2 changed files with 100 additions and 49 deletions

View File

@@ -33,7 +33,7 @@ namespace ChatController
/// </summary>
public partial class ChatMainControl : UserControl
{
#region Vokabeln :)
#region Vokabeln
private Chat _chat;
private AktuellerKontakt _aktuellerKontakt;
@@ -43,9 +43,7 @@ namespace ChatController
private IOrderedEnumerable<KontaktMessageBuilder> _Orderedmessagelist;
private IOrderedEnumerable<KontaktlistBuilder> _kontaktlist;
private readonly List<KontaktMessageBuilder> _messagelist = new List<KontaktMessageBuilder>();
private ChatDatenUebergabe _chatDaten;
private bool scrollPrueferAktivieren = false;
@@ -155,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,
@@ -459,7 +460,6 @@ namespace ChatController
_chat.SendMessage(Chatbox.Text, kontakt.GroupId);
//UebergebeNachrichtAnKontaktList(Chatbox.Text);
Chatbox.Text = "";
if (Chatbox.Text.Equals(""))
@@ -505,8 +505,6 @@ namespace ChatController
}
//hier bereich wie Dokumentieren
}
private void Chatbox_OnKeyDownHandler(object sender, KeyEventArgs e)
@@ -527,8 +525,7 @@ namespace ChatController
_chat.SendMessage(Chatbox.Text, kontakt.GroupId);
//UebergebeNachrichtAnKontaktList(Chatbox.Text);
Chatbox.Text = "";
}
@@ -551,36 +548,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
@@ -1004,8 +971,8 @@ namespace ChatController
}
#endregion
#region speichern sowie lesen der MessageSyncDatei / stylezwecke
#region speichern sowie lesen der MessageSyncDatei / stylezwecke (OwnChat only)
public void SpeichereMessageInfoInDatei()
{
List<KontaktlistBuilder> aa = new List<KontaktlistBuilder>();
@@ -1041,11 +1008,49 @@ namespace ChatController
}
}
}
}
}
}
#endregion
#region Speichern Und LEsen Der MesageSyncDatei (Bewoplaner only)
public List<KontaktlistBuilder> UebergebeMessageInfoDatenFuerDb()
{
List < KontaktlistBuilder > aa = new List<KontaktlistBuilder>();
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<long,DateTime> liste)
{
if (liste != null)
{
foreach (var kon in _kontaktlist)
{
foreach (var item in liste)
{
if (kon.GroupId == item.Key)
{
kon.SetzeGelesen = 0;
}
}
}
}
}
#endregion
}
}

View File

@@ -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);
// This is said to give best quality when resizing images
gr.InterpolationMode = InterpolationMode.Default; // 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)