Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/Chat
This commit is contained in:
@@ -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,
|
||||
@@ -198,11 +199,10 @@ namespace ChatController
|
||||
{
|
||||
if(Clientlist.SelectedItem != null)
|
||||
{
|
||||
|
||||
StartWaiting();
|
||||
// StartWaiting();
|
||||
|
||||
Cursor = Cursors.Wait;
|
||||
scrollPrueferAktivieren = false;
|
||||
scrollPrueferAktivieren = false;
|
||||
Chat.ItemsSource = null;
|
||||
|
||||
AktChatUser.Items.Clear();
|
||||
@@ -220,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
|
||||
@@ -459,7 +458,6 @@ namespace ChatController
|
||||
|
||||
_chat.SendMessage(Chatbox.Text, kontakt.GroupId);
|
||||
|
||||
//UebergebeNachrichtAnKontaktList(Chatbox.Text);
|
||||
Chatbox.Text = "";
|
||||
|
||||
if (Chatbox.Text.Equals(""))
|
||||
@@ -505,8 +503,6 @@ namespace ChatController
|
||||
}
|
||||
|
||||
//hier bereich wie Dokumentieren
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void Chatbox_OnKeyDownHandler(object sender, KeyEventArgs e)
|
||||
@@ -527,8 +523,7 @@ namespace ChatController
|
||||
|
||||
_chat.SendMessage(Chatbox.Text, kontakt.GroupId);
|
||||
|
||||
//UebergebeNachrichtAnKontaktList(Chatbox.Text);
|
||||
|
||||
|
||||
Chatbox.Text = "";
|
||||
|
||||
}
|
||||
@@ -551,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
|
||||
@@ -1004,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<KontaktlistBuilder> aa = new List<KontaktlistBuilder>();
|
||||
@@ -1041,11 +1006,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
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user