performance update

This commit is contained in:
Waldi
2017-10-20 14:41:03 +02:00
parent ea4c8b71ad
commit 9ba364280c
3 changed files with 180 additions and 88 deletions

View File

@@ -131,6 +131,7 @@ namespace ChatController
}
}
#region Styleetter für ownChatDesktop VErsion
public void SetzteStyleAufNull()
{
EmojiButton.Style = null;
@@ -138,7 +139,9 @@ namespace ChatController
ReloadGruppen.Visibility = Visibility.Visible;
_isDesktopVersion = false;
}
#endregion
#region Synconisation Veranlassen für Bewoplaner
public void SynchronisationVeranlassen()
{
try
@@ -161,13 +164,10 @@ namespace ChatController
DispatcherPriority.Normal,
(Action) delegate
{
Clientlist.Items.Refresh();
CollectionViewSource.GetDefaultView(Clientlist.Items).Refresh();
//Clientlist.Items.Refresh();
});
//this.Dispatch(delegate // hä ??
//{
// Clientlist.Items.Refresh();
//});
Thread.Sleep(TimeSpan.FromMinutes(5));
}
@@ -184,6 +184,7 @@ namespace ChatController
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)
@@ -286,7 +287,7 @@ namespace ChatController
private void Item3OnClick(object sender, RoutedEventArgs routedEventArgs)
{
var kontakt = (AktuellerKontakt)AktChatUser.Items[0];
_chat.Einfuegen(kontakt.GroupId);
_chat.Einfuegen(kontakt.GroupId,this);
}
private void Item4OnClick(object sender, RoutedEventArgs routedEventArgs)
@@ -417,14 +418,19 @@ namespace ChatController
if (AktChatUser.Items.Count > 0)
{
var kontakt = (AktuellerKontakt) AktChatUser.Items[0];
var medium = _chat.HoleMedium();
_chat.HoleUndSendeMediumAnKontakt(kontakt);
if(medium != null) {
_chat.AddeMediumDerNachrichtView(medium);
Chat.ItemsSource = null;
Chat.ItemsSource = _chat.LadeChatNachrichtenVomKontakt(kontakt);
Chat.Items.MoveCurrentToLast();
Chat.ScrollIntoView(Chat.Items.CurrentItem);
CollectionViewSource.GetDefaultView(Chat.ItemsSource).Refresh();
Chat.Items.MoveCurrentToLast();
Chat.ScrollIntoView(Chat.Items.CurrentItem);
_chat.SendeMediumAnKontakt(kontakt,medium);
}
}
else
{
@@ -441,20 +447,18 @@ namespace ChatController
if (!Chatbox.Text.Equals(""))
{
var kontakt = (AktuellerKontakt)AktChatUser.Items[0];
var text = Chatbox.Text;
_chat.AddeNachrichtDerView(Chatbox.Text);
CollectionViewSource.GetDefaultView(Chat.ItemsSource).Refresh();
_chat.SendMessage(Chatbox.Text, kontakt.GroupId);
// neu performance versuch Adde
Chatbox.Text = "";
//Lade Nachrichten nach
Chat.Items.MoveCurrentToLast();
Chat.ScrollIntoView(Chat.Items.CurrentItem);
_chat.SendMessage(Chatbox.Text, kontakt.GroupId);
Chatbox.Text = "";
if (Chatbox.Text.Equals(""))
{
Chatbox.Text = "Nachricht schreiben";
@@ -512,16 +516,17 @@ namespace ChatController
if (!AktChatUser.Items.IsEmpty && !Chatbox.Text.Equals(""))
{
var kontakt = (AktuellerKontakt)AktChatUser.Items[0];
var text = Chatbox.Text;
_chat.AddeNachrichtDerView(Chatbox.Text);
CollectionViewSource.GetDefaultView(Chat.ItemsSource).Refresh();
Chat.Items.MoveCurrentToLast();
Chat.ScrollIntoView(Chat.Items.CurrentItem);
_chat.SendMessage(Chatbox.Text, kontakt.GroupId);
Chatbox.Text = "";
//lade Nachrichten nach
}
else
{
@@ -685,43 +690,14 @@ namespace ChatController
(Action)delegate
{
if(kontakt != null) {
//neuer Aufruf villeicht nur von
//Cursor = Cursors.Wait;
Chat.ItemsSource = null;
//Wichtig Verbessern
var x = _chat.LadeChatNachrichtenVomKontakt(kontakt);
//foreach (var liste in _Orderedmessagelist)
//{
// foreach (var neu in alist)
// {
// if (liste.ChatMessageOid == neu.ChatMessageOid)
// {
// //_Orderedmessagelist.CreateOrderedEnumerable(neu,,true);
// //if (!liste.ReceiveMs.Equals(neu.ReceiveMs))
// //{
// // liste.ReceiveMs = neu.ReceiveMs;
// // liste.SetzeGelesen = 1;
// // //Vorher noch abfragen ob die id gleich den chat ist und dann nur wenn nicht zutrifft dann auf 1 setzen
// //}
// }
// }
//}
Chat.ItemsSource = x;
//Cursor = Cursors.Arrow;
CollectionViewSource.GetDefaultView(Chat.ItemsSource).Refresh();
Chat.Items.MoveCurrentToLast();
Chat.ScrollIntoView(Chat.Items.CurrentItem);
}
});
@@ -734,8 +710,8 @@ namespace ChatController
break;
}
Task.Delay(2000);
//Thread.Sleep(2000);
//Task.Delay(2000);
Thread.Sleep(2000);
}
}
@@ -986,6 +962,7 @@ namespace ChatController
#endregion
//muss erweitert werden
#region speichern sowie lesen der MessageSyncDatei / stylezwecke
public void SpeichereMessageInfoInDatei()
{

View File

@@ -1,35 +1,27 @@
using System;
using ChatController.ChatKlassen;
using ChatController.Klassen;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Net;
using System.Net.Http;
using System.Reflection;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Web;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Forms;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using ChatController.ChatKlassen;
using ChatController.Klassen;
using Newtonsoft.Json;
using Application = System.Windows.Forms.Application;
using Clipboard = System.Windows.Forms.Clipboard;
using ContextMenu = System.Windows.Controls.ContextMenu;
using Cursor = System.Windows.Input.Cursor;
using DataFormats = System.Windows.Forms.DataFormats;
using Image = System.Windows.Controls.Image;
using MenuItem = System.Windows.Forms.MenuItem;
using MessageBox = System.Windows.MessageBox;
using Size = System.Drawing.Size;
@@ -732,6 +724,22 @@ namespace ChatController.HauptKlassen
#endregion
#region Sende Normale Message an Kontakt
public void AddeNachrichtDerView(string nachricht)
{
try
{
var ChatMessage = _userMessages.Response.Messages.Last();
var time =DateTime.Now;
Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name, nachricht,time.ToString("dd MMMM yyyy HH:mm:ss"), true, time));
}
catch (Exception e)
{
MessageBox.Show(e.Message, "Fehler", MessageBoxButton.OK);
}
}
private HttpWebRequest requesten;
@@ -785,7 +793,7 @@ namespace ChatController.HauptKlassen
#region Sende Media Nachricht an Kontakt
public void HoleUndSendeMediumAnKontakt(AktuellerKontakt kontakt)
public string HoleMedium()
{
try
{
@@ -797,11 +805,98 @@ namespace ChatController.HauptKlassen
// openFileDialog1.Filter = "Office Dokumente |*.doc;*.xls;*.ppt;*.txt";
DialogResult result = openFileDialog1.ShowDialog();
if (result == System.Windows.Forms.DialogResult.OK)
{
VerarbeiteMedia(openFileDialog1.FileName,kontakt);
return openFileDialog1.FileName;
}
else
{
return null;
}
}
catch (Exception e)
{
MessageBox.Show("Fehler: " + e.Message, "Fehler", MessageBoxButton.OK);
return null;
}
}
public void AddeMediumDerNachrichtView(string file)
{
try
{
var ChatMessage = _userMessages.Response.Messages.Last();
var timeformated = DateTime.Now;
if (ImageExtensions.Contains(Path.GetExtension(file).ToUpperInvariant()))
{
BitmapImage logo = new BitmapImage();
logo.BeginInit();
logo.UriSource = new Uri(file);
logo.EndInit();
Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name, Path.GetFileName(file),
timeformated.ToString("dd MMMM yyyy HH:mm:ss"), true, logo,
timeformated, 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));
}
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));
}
}
catch (Exception e)
{
MessageBox.Show("Fehler: " + e.Message, "Fehler", MessageBoxButton.OK);
}
}
public void AddMediumContextDerNachrichtView(byte[] datei,string filename)
{
var ChatMessage = _userMessages.Response.Messages.Last();
var timeformated = DateTime.Now;
if (ImageExtensions.Contains(Path.GetExtension(filename).ToUpperInvariant()))
{
BitmapImage biImg = new BitmapImage();
MemoryStream ms = new MemoryStream(datei);
biImg.BeginInit();
biImg.StreamSource = ms;
biImg.EndInit();
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));
}
else
{
Messages.Add(new KontaktMessageBuilder(ChatMessage.User_Name, Path.GetFileName(filename),
timeformated.ToString("dd MMMM yyyy HH:mm:ss"), true, filename,
timeformated));
}
}
public void SendeMediumAnKontakt(AktuellerKontakt kontakt,string file)
{
try
{
VerarbeiteMedia(file,kontakt);
}
catch (Exception e)
{
@@ -819,9 +914,9 @@ namespace ChatController.HauptKlassen
string filename = Path.GetFileName(file);
SendMediaMessage(filename, kontakt.GroupId, mdatei);
//LoadKontakt();
}
private static byte[] ReadFully(Stream stream)
@@ -997,7 +1092,7 @@ namespace ChatController.HauptKlassen
#endregion
#region Fuege Daten Bilder usw via DragAndDrop in den Chat / muss noch bearbeitet werden
public void Einfuegen(long groupOid)
public void Einfuegen(long groupOid, ChatMainControl chatMainControl)
{
var d = System.Windows.Forms.Clipboard.GetDataObject();
@@ -1016,9 +1111,16 @@ namespace ChatController.HauptKlassen
if (File.Exists(fileList[0]))
{
filename = Path.GetFileName(fileList[0]);
//file = File.OpenRead(fileList[0]);
byte[] myBinary = File.ReadAllBytes(fileList[0]);
AddMediumContextDerNachrichtView(myBinary,filename);
CollectionViewSource.GetDefaultView(chatMainControl.Chat.ItemsSource).Refresh();
chatMainControl.Chat.Items.MoveCurrentToLast();
chatMainControl.Chat.ScrollIntoView(chatMainControl.Chat.Items.CurrentItem);
SendMediaMessage(filename, groupOid, myBinary);
}
@@ -1033,7 +1135,14 @@ namespace ChatController.HauptKlassen
if (d.GetDataPresent(DataFormats.Text))
{
string text = (string)d.GetData(DataFormats.StringFormat);
AddeNachrichtDerView(text);
CollectionViewSource.GetDefaultView(chatMainControl.Chat.ItemsSource).Refresh();
chatMainControl.Chat.Items.MoveCurrentToLast();
chatMainControl.Chat.ScrollIntoView(chatMainControl.Chat.Items.CurrentItem);
SendMessage(text, groupOid);
}
else
@@ -1045,6 +1154,13 @@ namespace ChatController.HauptKlassen
System.Drawing.Image img = pic;
AddMediumContextDerNachrichtView(ImageToByteArray(img),bildname);
CollectionViewSource.GetDefaultView(chatMainControl.Chat.ItemsSource).Refresh();
chatMainControl.Chat.Items.MoveCurrentToLast();
chatMainControl.Chat.ScrollIntoView(chatMainControl.Chat.Items.CurrentItem);
SendMediaMessage(bildname,groupOid, ImageToByteArray(img));
}
else
@@ -1394,7 +1510,6 @@ namespace ChatController.HauptKlassen
}
#endregion
//unter konstruktion
#region pruefe letzten Konversations timestamp für design element
public Dictionary<int, DateTime> PruefeTimeStampsBeiStart(List<KontaktlistBuilder> kontaktliste)

View File

@@ -174,7 +174,7 @@ namespace ChatController.HauptKlassen
{
try
{
var endurl = _url + "/api/user/login"; //loginwithchatcode
var endurl = _url + "/api/user/loginwithchatcode";
string postdaten = "";