diff --git a/ChatController/ChatController.csproj b/ChatController/ChatController.csproj
index 89f6433..91cc4b1 100644
--- a/ChatController/ChatController.csproj
+++ b/ChatController/ChatController.csproj
@@ -62,7 +62,7 @@
-
+
@@ -84,6 +84,11 @@
ChatControlWaitLayer.xaml
+
+ True
+ True
+ Resource.resx
+
@@ -127,9 +132,17 @@
+
+
+
+
+ PublicResXFileCodeGenerator
+ Resource.Designer.cs
+
+
\ No newline at end of file
diff --git a/ChatController/ChatKlassen/AktuellerKontakt.cs b/ChatController/ChatKlassen/AktuellerKontakt.cs
index 124c65a..9e169c7 100644
--- a/ChatController/ChatKlassen/AktuellerKontakt.cs
+++ b/ChatController/ChatKlassen/AktuellerKontakt.cs
@@ -1,32 +1,28 @@
using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
using System.Windows.Media;
namespace ChatController.ChatKlassen
{
public class AktuellerKontakt
{
- public KontaktlistBuilder Kontakt { get; set; }
+ public Contact Contact { get; set; }
- public string Name { get; private set; }
- public ImageSource Image { get; private set; }
+ public string Name { get; }
+ public ImageSource Image { get; }
public DateTime TimeStamp { get; set; }
public long GroupId { get; set; }
public long? CustomerOid { get; set; }
- public AktuellerKontakt(KontaktlistBuilder kontakt)
+ public AktuellerKontakt(Contact pContact)
{
- if(kontakt != null) {
- Kontakt = kontakt;
- Image = kontakt.Image;
- TimeStamp = kontakt.TimeStamp;
- Name = kontakt.Name;
- CustomerOid = kontakt.CustomerOid;
- GroupId = kontakt.GroupId;
+ if(pContact != null) {
+ Contact = pContact;
+ Image = pContact.Image;
+ TimeStamp = pContact.TimeStamp;
+ Name = pContact.Name;
+ CustomerOid = pContact.CustomerOid;
+ GroupId = pContact.GroupId;
}
}
}
diff --git a/ChatController/ChatKlassen/Contact.cs b/ChatController/ChatKlassen/Contact.cs
index e73fe44..0b46d0b 100644
--- a/ChatController/ChatKlassen/Contact.cs
+++ b/ChatController/ChatKlassen/Contact.cs
@@ -1,78 +1,56 @@
using System;
-using System.Collections.Generic;
using System.ComponentModel;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
using System.Windows.Media;
+using static System.String;
namespace ChatController.ChatKlassen
{
- public class KontaktlistBuilder
+ public class Contact
{
+ public string Name { get; }
- public string Name { get; private set; }
-
- private string _receiveMs;
- public string ReceiveMs
+ private string _ReceivedMessage;
+ public string ReceivedMessage
{
get
{
- if (!String.IsNullOrEmpty(_receiveMs) && _receiveMs.Length > 25)
+ if (!IsNullOrEmpty(_ReceivedMessage) && _ReceivedMessage.Length > 25)
{
- return _receiveMs.Substring(0, 25) + "...";
+ return _ReceivedMessage.Substring(0, 25) + "...";
}
- return _receiveMs;
- //var WordsArray = _receiveMs.Split();
-
- ////var verkuerzterText = _receiveMs.Substring(0,10);
- //if (WordsArray.Length > 4)
- //{
- // string Items = WordsArray[0] + " " + WordsArray[1] + " " + WordsArray[2] + " " + WordsArray[3] + "...";
-
- // return Items;
- //}
- //else
- //{
- // //if(_receiveMs.Length > 15)
- // return _receiveMs;
- //}
+ return _ReceivedMessage;
}
set
{
- _receiveMs = value;
- OnPropertyChanged("ReceiveMs");
+ _ReceivedMessage = value;
+ OnPropertyChanged(nameof(ReceivedMessage));
}
}
private Brush _color;
public Brush Color
{
- get
- {
- return _color;
- }
+ get => _color;
+
set
{
-
_color = value;
-
- OnPropertyChanged("Color");
+ OnPropertyChanged(nameof(Color));
}
}
- private int _setzeGelesen;
- public int SetzeGelesen
+ private int _NumberOfReadMessages;
+ public int NumberOfReadMessages
{
- get { return _setzeGelesen; }
+ get => _NumberOfReadMessages;
set
{
- _setzeGelesen = value;
+ _NumberOfReadMessages = value;
- if (_setzeGelesen == 1)
+ if (_NumberOfReadMessages == 1)
{
_color = new BrushConverter().ConvertFromString("#ff5e00") as SolidColorBrush;
}
@@ -81,207 +59,59 @@ namespace ChatController.ChatKlassen
_color = new SolidColorBrush(Colors.Gray);
}
- OnPropertyChanged("SetzeGelesen");
- OnPropertyChanged("Color");
+ OnPropertyChanged(nameof(NumberOfReadMessages));
+ OnPropertyChanged(nameof(Color));
}
}
- private Brush _kontaktChatColor;
- public Brush KontaktChatColor
+ private Brush _ContactChatColor;
+ public Brush ContactChatColor
{
- get
- {
- return _kontaktChatColor;
- }
+ get => _ContactChatColor;
set
{
- _kontaktChatColor = value;
-
- OnPropertyChanged("KontaktChatColor");
+ _ContactChatColor = value;
+ OnPropertyChanged(nameof(ContactChatColor));
}
}
- public ImageSource Image { get; private set; }
+ public ImageSource Image { get; }
public DateTime TimeStamp { get; set; }
public long GroupId { get; set; }
public long UserId { get; set; }
public long? CustomerOid { get; set; }
- public KontaktlistBuilder(string name, ImageSource image, string lastMs, DateTime timestamp, long groupid,long? customerOid, bool onlyEmployee, int userCount)
+ public Contact(string pName, ImageSource pImage, string pLastMessageText, DateTime pTimeStamp, long pGroupId,long? pCustomerOid, bool pOnlyEmployees, int pUserCount)
{
-
-#if DEBUG
- //lastMs =
- // "aas dgfal Dies ist ein laaaaaanger Text !Q!!! adg asgl sadlg jasg jas,g ans,g nasgd., a ag fdgg agsd g";
- //name = "Hans Hubert Christopherus Maximilian Schumacherus";
-#endif
-
- Name = name;
- ReceiveMs = lastMs;
- Image = image;
- TimeStamp = timestamp;
- GroupId = groupid;
- CustomerOid = customerOid;
- SetzeGelesen = 1;
-
-
-
-
-
+ Name = pName;
+ ReceivedMessage = pLastMessageText;
+ Image = pImage;
+ TimeStamp = pTimeStamp;
+ GroupId = pGroupId;
+ CustomerOid = pCustomerOid;
+ NumberOfReadMessages = 1;
+
if (CustomerOid != null)
{
- _kontaktChatColor = new BrushConverter().ConvertFromString("#3B7799") as SolidColorBrush;
- }else if (onlyEmployee && userCount > 2)
+ _ContactChatColor = new BrushConverter().ConvertFromString("#3B7799") as SolidColorBrush;
+ }
+ else if (pOnlyEmployees && pUserCount > 2)
{
-
- //Alle gruppen werden grün
- _kontaktChatColor = new BrushConverter().ConvertFromString("#45993B") as SolidColorBrush;
-
+ _ContactChatColor = new BrushConverter().ConvertFromString("#45993B") as SolidColorBrush;
}
else
{
- //Alles bleibt wie es war also schwarz
- _kontaktChatColor = new BrushConverter().ConvertFromString("#000000") as SolidColorBrush;
-
+ _ContactChatColor = new BrushConverter().ConvertFromString("#000000") as SolidColorBrush;
}
-
-
}
- //public KontaktlistBuilder(string name, StatusType statustyp, ImageSource image, long empfaengerid, ChatType typeChat, CompactCustomerDC customer)
- //{
- // this.Customer = customer;
- // this.Name = name;
- // this.StatusTyp = statustyp;
- // this.Image = image;
- // this.EmpfaengerOid = empfaengerid;
-
- // Receivems = "";
- // TypeChat = typeChat;
-
- // if (statustyp == StatusType.Online)
- // {
- // this.Color = new BrushConverter().ConvertFromString("#00ae00") as SolidColorBrush;
- // }
- // else if (statustyp == StatusType.Offline)
- // {
- // this.Color = new SolidColorBrush(Colors.Red);
- // }
- // else
- // {
- // this.Color = new SolidColorBrush(Colors.Orange);
- // }
-
- // if (typeChat == ChatType.Team)
- // {
- // _colorType = new SolidColorBrush(Colors.DarkViolet);
- // }
- // else if (typeChat == ChatType.Klienten)
- // {
- // _colorType = new SolidColorBrush(Colors.Blue);
- // }
- // else
- // {
- // _colorType = new SolidColorBrush(Colors.Green);
- // }
- //}
-
- //public string Name { get; private set; }
-
- //private StatusType _statustyp;
- //public StatusType StatusTyp
- //{
- // get { return _statustyp; }
- // set
- // {
- // _statustyp = value;
-
- // if (_statustyp == StatusType.Online)
- // {
- // _color = new BrushConverter().ConvertFromString("#00ae00") as SolidColorBrush;
- // }
- // else if (_statustyp == StatusType.Offline)
- // {
- // _color = new SolidColorBrush(Colors.Red);
- // }
- // else
- // {
- // _color = new SolidColorBrush(Colors.Orange);
- // }
-
- // OnPropertyChanged("Lastms");
- // }
- //}
-
- //public ImageSource Image { get; private set; }
-
- //public long EmpfaengerOid { get; private set; }
-
- //private string _receivems;
- //public string Receivems { get { return _receivems; } set { _receivems = value; OnPropertyChanged("Receivems"); } }
-
- //public ChatType TypeChat { get; set; }
-
- //private Brush _color;
- //public Brush Color
- //{
- // get
- // {
- // return _color;
- // }
- // set
- // {
- // if (StatusTyp == StatusType.Online)
- // {
- // _color = new BrushConverter().ConvertFromString("#00ae00") as SolidColorBrush;
- // }
- // else if (StatusTyp == StatusType.Offline)
- // {
- // _color = new SolidColorBrush(Colors.Red);
- // }
- // else
- // {
- // _color = new SolidColorBrush(Colors.Orange);
- // }
-
- // OnPropertyChanged("Color");
- // }
- //}
-
- //private Brush _colorType;
- //public Brush ColorType
- //{
- // get
- // {
- // return _colorType;
- // }
- // set
- // {
- // if (TypeChat == ChatType.Team)
- // {
- // _colorType = new SolidColorBrush(Colors.DarkViolet);
- // }
- // else if (TypeChat == ChatType.Klienten)
- // {
- // _colorType = new SolidColorBrush(Colors.Blue);
- // }
- // else
- // {
- // _colorType = new SolidColorBrush(Colors.Green);
- // }
-
- // OnPropertyChanged("ColorType");
- // }
- //}
- //public CompactCustomerDC Customer { get; set; }
-
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName)
{
var handler = PropertyChanged;
- if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
+ handler?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
}
diff --git a/ChatController/ChatMainControl.xaml.cs b/ChatController/ChatMainControl.xaml.cs
index b647ace..e16c958 100644
--- a/ChatController/ChatMainControl.xaml.cs
+++ b/ChatController/ChatMainControl.xaml.cs
@@ -7,8 +7,8 @@ using System.Net;
using System.Threading;
using System.Windows;
using System.Windows.Controls;
-using System.Windows.Controls.Primitives;
using System.Windows.Data;
+using System.Windows.Forms;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Navigation;
@@ -17,8 +17,18 @@ using System.Windows.Threading;
using ChatController.ChatKlassen;
using ChatController.HauptKlassen;
using ChatController.Klassen;
-
+using ChatController.LoginKlassen;
+using ChatController.Utilities;
+using Button = System.Windows.Controls.Button;
+using Cursors = System.Windows.Input.Cursors;
+using DataFormats = System.Windows.DataFormats;
+using KeyEventArgs = System.Windows.Input.KeyEventArgs;
+using MenuItem = System.Windows.Controls.MenuItem;
+using MessageBox = System.Windows.MessageBox;
+using Orientation = System.Windows.Controls.Orientation;
+using Panel = System.Windows.Controls.Panel;
using Path = System.IO.Path;
+using ScrollBar = System.Windows.Controls.Primitives.ScrollBar;
namespace ChatController
{
@@ -33,7 +43,7 @@ namespace ChatController
private ChatEmojiiControl _EmojiView;
private IOrderedEnumerable _OrderedMessages;
- private IOrderedEnumerable _ContactList;
+ private IOrderedEnumerable _ContactList;
private bool _ScrollPrueferAktivieren;
@@ -110,7 +120,7 @@ namespace ChatController
#region Lade KontaktDaten und Lade sie in den Chat
private void AktChatUser_OnMouseDoubleClick(object sender, MouseButtonEventArgs e)
{
- _Chat.ShowKontaktPicture(_AktuellerKontakt);
+ _Chat.ShowProfilePicture(_AktuellerKontakt);
}
private void Clientlist_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
@@ -124,10 +134,10 @@ namespace ChatController
AktChatUserList.Items.Clear();
- var kontakt = (KontaktlistBuilder)Clientlist.SelectedItem;
+ var kontakt = (Contact)Clientlist.SelectedItem;
- if(kontakt.SetzeGelesen == 1) {
- kontakt.SetzeGelesen = 0;
+ if(kontakt.NumberOfReadMessages == 1) {
+ kontakt.NumberOfReadMessages = 0;
Clientlist.Items.Refresh();
}
@@ -538,7 +548,7 @@ namespace ChatController
ChatListBox.ItemsSource = null;
- var kontakt = (KontaktlistBuilder)Clientlist.SelectedItem;
+ var kontakt = (Contact)Clientlist.SelectedItem;
var xy = _Chat.LadeWeiterNachrichten(kontakt);
@@ -596,57 +606,47 @@ namespace ChatController
_NewThread = null;
}
- var kontakt = (AktuellerKontakt)AktChatUserList.Items[0];
+ var kontakt = (AktuellerKontakt) AktChatUserList.Items[0];
- //thred besser verwalten
- _NewThread = new Thread(DoWork);
- _NewThread.IsBackground = true;
+ _NewThread = new Thread(DoWork) {IsBackground = true};
_NewThread.Start(kontakt);
-
}
private void DoWork(object o)
{
- bool _schaueNachMs = false;
-
- var kontakt = (AktuellerKontakt) o;
+ var currentContact = (AktuellerKontakt) o;
+
while (true)
{
Thread.Sleep(2000);
if (!disableKontaktNachrichtenThread)
{
- _schaueNachMs = _Chat.SchaueNachNeuenNachrichten(kontakt);
+ var hasNewMessages = _Chat.CheckIfNewMessagesExist(currentContact);
- if (_schaueNachMs == true)
+ if (hasNewMessages)
{
-
- this.Dispatcher.BeginInvoke(
- DispatcherPriority.Background,
+ Utils.NotifyIcon.ShowBalloonTip(Constants.NotificationTimeout, "ownChat", $"Hat neue Nachrichten: {currentContact.Name}({currentContact.Contact.Name})", ToolTipIcon.None);
+
+ Dispatcher.BeginInvoke(DispatcherPriority.Background,
(Action) delegate
{
- if (kontakt != null)
- {
+
+
+ _Chat.LadeChatNachrichtenVomKontakt(currentContact);
- var x = _Chat.LadeChatNachrichtenVomKontakt(kontakt);
+ CollectionViewSource.GetDefaultView(ChatListBox.ItemsSource).Refresh();
- CollectionViewSource.GetDefaultView(ChatListBox.ItemsSource).Refresh();
-
- ChatListBox.Items.MoveCurrentToLast();
- ChatListBox.ScrollIntoView(ChatListBox.Items.CurrentItem);
-
- }
+ ChatListBox.Items.MoveCurrentToLast();
+ ChatListBox.ScrollIntoView(ChatListBox.Items.CurrentItem);
});
-
}
}
else
{
break;
}
-
}
-
}
#endregion
@@ -686,18 +686,18 @@ namespace ChatController
{
if (liste.GroupId == neu.GroupId)
{
- if (!liste.ReceiveMs.Equals(neu.ReceiveMs)) {
+ if (!liste.ReceivedMessage.Equals(neu.ReceivedMessage)) {
- liste.ReceiveMs = neu.ReceiveMs;
+ liste.ReceivedMessage = neu.ReceivedMessage;
liste.TimeStamp = neu.TimeStamp;
if (aktuellerKontakt != null && neu.GroupId == aktuellerKontakt.GroupId)
{
- liste.SetzeGelesen = 0;
+ liste.NumberOfReadMessages = 0;
}
else
{
- liste.SetzeGelesen = 1;
+ liste.NumberOfReadMessages = 1;
}
}
}
@@ -746,7 +746,7 @@ namespace ChatController
if (String.IsNullOrEmpty(Suche.Text))
return true;
else
- return ((item as KontaktlistBuilder).Name.IndexOf(Suche.Text, StringComparison.OrdinalIgnoreCase) >= 0);
+ return ((item as Contact).Name.IndexOf(Suche.Text, StringComparison.OrdinalIgnoreCase) >= 0);
}
#endregion
@@ -933,10 +933,10 @@ namespace ChatController
#region speichern sowie lesen der MessageSyncDatei / stylezwecke (OwnChat only)
public void SpeichereMessageInfoInDatei()
{
- List aa = new List();
+ List aa = new List();
foreach (var kontakt in _ContactList)
{
- if(kontakt.SetzeGelesen == 0 && !kontakt.ReceiveMs.Equals("")) {
+ if(kontakt.NumberOfReadMessages == 0 && !kontakt.ReceivedMessage.Equals("")) {
aa.Add(kontakt);
}
}
@@ -947,7 +947,7 @@ namespace ChatController
public void LeseMessageInfoAusDatei()
{
- List aa = new List();
+ List aa = new List();
foreach (var kontakt in _ContactList)
{
aa.Add(kontakt);
@@ -962,7 +962,7 @@ namespace ChatController
{
if (kon.GroupId == item.Key)
{
- kon.SetzeGelesen = 0;
+ kon.NumberOfReadMessages = 0;
}
}
}
@@ -972,17 +972,17 @@ namespace ChatController
#region Speichern Und LEsen Der MesageSyncDatei (Bewoplaner only)
- public List UebergebeMessageInfoDatenFuerDb()
+ public List UebergebeMessageInfoDatenFuerDb()
{
- List < KontaktlistBuilder > aa = new List();
+ List < Contact > aa = new List();
Clientlist.Items.Refresh();
foreach (var item in Clientlist.Items)
{
- var kontakt = item as KontaktlistBuilder;
+ var kontakt = item as Contact;
- if (kontakt != null && kontakt.SetzeGelesen == 0 && !kontakt.ReceiveMs.Equals(""))
+ if (kontakt != null && kontakt.NumberOfReadMessages == 0 && !kontakt.ReceivedMessage.Equals(""))
{
aa.Add(kontakt);
}
@@ -1001,7 +1001,7 @@ namespace ChatController
{
if (kon.GroupId == item.Key)
{
- kon.SetzeGelesen = 0;
+ kon.NumberOfReadMessages = 0;
}
}
}
@@ -1017,7 +1017,9 @@ namespace ChatController
try
{
if (File.Exists(file))
+ {
File.Delete(file);
+ }
}
catch (Exception e)
{
diff --git a/ChatController/Data/OwnChatApi.cs b/ChatController/Data/OwnChatApi.cs
index 2d01e50..349c00a 100644
--- a/ChatController/Data/OwnChatApi.cs
+++ b/ChatController/Data/OwnChatApi.cs
@@ -1,36 +1,32 @@
using System;
-using System.Collections.Generic;
using System.IO;
-using System.Linq;
using System.Net;
-using System.Text;
-using System.Threading.Tasks;
-using System.Windows;
-using ChatController.Klassen;
+using ChatController.LoginKlassen;
+using ChatController.Utilities;
using Newtonsoft.Json;
namespace ChatController.Data
{
public class OwnChatApi
{
- private static String serverUrl;
- private static String apiKey;
- private static String tenant;
+ public static string ServerUrl { get; set; }
+ public static string ApiKey { get; set; }
+ public static string Tenant { get; set; }
- public static long GetMaximumAllowedFileUploadSize(string apikey, string customerid)
+ public static long GetMaximumAllowedFileUploadSize(string pApiKey, string pCustomerId)
{
- var endurl = serverUrl + "/api/ownchat/uploadmaxsize";// + apikey + "/" + customerid;
+ var url = ServerUrl + Constants.MaxUploadFileSizeUrl;
- WebRequest request = WebRequest.Create(endurl);
- request.Headers["Token"] = apikey;
- request.Headers["CustomerID"] = customerid;
+ var webRequest = WebRequest.Create(url);
+ webRequest.Headers[Constants.Token] = pApiKey;
+ webRequest.Headers[Constants.CustomerId] = pCustomerId;
- request.Credentials = CredentialCache.DefaultCredentials;
- request.Proxy = null;
+ webRequest.Credentials = CredentialCache.DefaultCredentials;
+ webRequest.Proxy = null;
- using (WebResponse response = request.GetResponse())
+ using (var response = webRequest.GetResponse())
{
- string responseFromServer = ReadStream(response);
+ var responseFromServer = ReadStream(response);
var definiti = new {file_upload_max_size = ""};
@@ -38,71 +34,72 @@ namespace ChatController.Data
return Convert.ToInt64(jsonDatentyp.file_upload_max_size);
}
-
}
- private UserMessages GetMessages(long groupId)
+ public static UserMessages GetMessages(long pGroupId)
{
- var endurl = serverUrl + "/api/chat/messages?groupid=" + groupId;
+ var url = ServerUrl + Constants.LoadMessagesForGroupUrl + pGroupId;
- WebRequest request = WebRequest.Create(endurl);
+ var webRequest = WebRequest.Create(url);
- request.Credentials = CredentialCache.DefaultCredentials;
- request.Headers["Token"] = apiKey;
- request.Headers["CustomerID"] = tenant;
+ webRequest.Credentials = CredentialCache.DefaultCredentials;
+ webRequest.Headers[Constants.Token] = ApiKey;
+ webRequest.Headers[Constants.CustomerId] = Tenant;
- using (WebResponse response = request.GetResponse())
+ using (var response = webRequest.GetResponse())
{
-
- string responseFromServer = ReadStream(response);
+ var serverResponse = ReadStream(response);
- if (!String.IsNullOrEmpty(responseFromServer))
+ if (!string.IsNullOrEmpty(serverResponse))
{
- var jsonDaten = JsonConvert.DeserializeObject(responseFromServer);
- return jsonDaten;
-
+ return JsonConvert.DeserializeObject(serverResponse);
}
-
}
return null;
}
- private ChatGruppenDaten GetAllChatGroups()
+ public ChatGruppenDaten GetAllChatGroups()
{
- var endurl = serverUrl + "/api/chat/groups";
+ var endurl = ServerUrl + Constants.GetChatGroupsUrl;
- WebRequest request = WebRequest.Create(endurl);
+ var webRequest = WebRequest.Create(endurl);
- request.Credentials = CredentialCache.DefaultCredentials;
- request.Headers["Token"] = apiKey;
- request.Headers["CustomerID"] = tenant;
+ webRequest.Credentials = CredentialCache.DefaultCredentials;
+ webRequest.Headers[Constants.Token] = ApiKey;
+ webRequest.Headers[Constants.CustomerId] = Tenant;
- using (WebResponse response = request.GetResponse())
+ using (var response = webRequest.GetResponse())
{
- string responseFromServer = ReadStream(response);
- return JsonConvert.DeserializeObject(responseFromServer);
+ var serverResponse = ReadStream(response);
+ return JsonConvert.DeserializeObject(serverResponse);
}
}
- private static string ReadStream(WebResponse response)
+ public static string ReadStream(WebResponse response)
{
try
{
- using (Stream dataStream = response.GetResponseStream())
+ var serverResponse = Empty;
+
+ using (var dataStream = response.GetResponseStream())
{
- using (StreamReader reader = new StreamReader(dataStream))
+ if(dataStream == null)
{
- string responseFromServer = reader.ReadToEnd();
+ return serverResponse;
+ }
+
+ using (var reader = new StreamReader(dataStream))
+ {
+ serverResponse = reader.ReadToEnd();
- return responseFromServer;
+ return serverResponse;
}
}
}
- catch (Exception e)
+ catch (Exception exception)
{
- // MessageBox.Show(e.Message);
return null;
}
}
diff --git a/ChatController/HauptKlassen/Chat.cs b/ChatController/HauptKlassen/Chat.cs
index b6240e4..df51cdf 100644
--- a/ChatController/HauptKlassen/Chat.cs
+++ b/ChatController/HauptKlassen/Chat.cs
@@ -1,10 +1,10 @@
using ChatController.ChatKlassen;
using ChatController.Klassen;
+
using Newtonsoft.Json;
+
using System;
using System.Collections.Generic;
-using System.ComponentModel;
-using System.Diagnostics;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
@@ -20,6 +20,10 @@ using System.Windows.Data;
using System.Windows.Forms;
using System.Windows.Media;
using System.Windows.Media.Imaging;
+
+using ChatController.LoginKlassen;
+using ChatController.Utilities;
+
using Application = System.Windows.Forms.Application;
using Clipboard = System.Windows.Forms.Clipboard;
using Color = System.Drawing.Color;
@@ -33,307 +37,141 @@ namespace ChatController.HauptKlassen
{
public class Chat
{
- private readonly List Kontaktliste = new List();
- private readonly List Messages = new List();
+ private readonly List _Contacts = new List();
+ private readonly List _Messages = new List();
- public ChatDatenUebergabe ChatDaten;
+ public ChatDatenUebergabe ChatDaten { get; set; }
- private UserMessages _userMessages;
- private UserMessages _weitereUserMessages;
+ private UserMessages _UserMessages;
+ private UserMessages _AdditionalUserMessages;
- private string _nextPage = null;
- private bool _hasNextPage = false;
+ private string _NextPage;
+ private bool _HasNextPage;
- public static readonly List ImageExtensions = new List { ".JPG", ".JPE", ".BMP", ".GIF", ".PNG", ".JPEG" };
- public static readonly List DokumentExtension = new List { ".TXT", ".PPT", ".XLS", ".DOC",".PDF" };
-
- private long lastTimeStamp=0;
+ private long _LastTimeStamp;
public Chat(ChatDatenUebergabe chatDaten)
{
ChatDaten = chatDaten;
}
- #region Gruppen In Kontaktliste Wandler
- public IOrderedEnumerable GroupklassenInChatKontakteUmwandler()
+ public IOrderedEnumerable GroupklassenInChatKontakteUmwandler()
{
foreach (var kontakt in ChatDaten.AlleGruppen.Response)
{
foreach (var value in kontakt.Value)
{
- string message = "";
- DateTime timestamp = new DateTime();
+ var message = "";
- var lastMS = value.LastMessage;
+ var lastMessage = value.LastMessage;
- DateTime timeformated = new DateTime();
+ var timeformated = new DateTime();
-
- if (lastMS != null)
+ if(lastMessage?.Text != null)
{
- if (lastMS.Text != null)
- {
- message = lastMS.Text;
-
-
- }
+ message = lastMessage.Text;
}
- if( value.LastMessage != null) {
- timestamp = DateTime.Parse(lastMS.Timestamp.Date);
+ if(value.LastMessage != null) {
+ var timestamp = DateTime.Parse(lastMessage.Timestamp.Date);
var clientZone = TimeZoneInfo.Local;
timeformated = TimeZoneInfo.ConvertTimeFromUtc(timestamp, clientZone);
}
-
- if (message.Equals("") && value.LastMessage != null && !value.LastMessage.File.Equals(""))
+ if(string.IsNullOrEmpty(message) && !string.IsNullOrEmpty(value.LastMessage?.File))
{
message = Path.GetFileName(value.LastMessage.File);
}
long? customerOid = null;
- bool isC = false;
- bool isE = false;
- foreach (var user in value.Users)
+ var isEmployee = false;
+
+ foreach(var user in value.Users)
{
- //oid des
- if (user.Oid != ChatDaten.Userid)
+ if(user.Oid != ChatDaten.Userid)
{
- if (!user.Is_Employee && !String.IsNullOrEmpty(user.Userid_Manage))
+ if(!user.Is_Employee && !string.IsNullOrEmpty(user.Userid_Manage))
{
-
- customerOid = Int64.Parse(user.Userid_Manage.Substring(1));
- isC = true;
+ customerOid = long.Parse(user.Userid_Manage.Substring(1));
}
}
}
- if (value.Onlyemployees && value.Users.Length == 2)
+ if(value.OnlyEmployees && value.Users.Length == 2)
{
- isE = true;
+ isEmployee = true;
}
- //null steht für employee
- Kontaktliste.Add(new KontaktlistBuilder(value.Name, AvatarToImageSourceConverter(value.Avatar,isE,isC),
- message, timeformated, value.Oid, customerOid, value.Onlyemployees,value.Users.Length));
+ _Contacts.Add(new Contact(value.Name, Utils.AvatarToImageSourceConverter(value.Avatar, isEmployee), message, timeformated, value.Oid, customerOid, value.OnlyEmployees, value.Users.Length));
- if(lastMS != null && lastMS.Timestamp != null && lastMS.Timestamp.Date != null) {
- TimeSpan span = (DateTime.Parse(lastMS.Timestamp.Date) - new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc));
- long unixTime = System.Convert.ToInt64(span.TotalSeconds);
+ if(lastMessage?.Timestamp?.Date != null) {
+ var span = DateTime.Parse(lastMessage.Timestamp.Date) - new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
+ var unixTime = Convert.ToInt64(span.TotalSeconds);
- if (lastTimeStamp < unixTime)
+ if (_LastTimeStamp < unixTime)
{
- lastTimeStamp = unixTime;
+ _LastTimeStamp = unixTime;
}
}
}
}
- var sortedKontaktliste = Kontaktliste.OrderByDescending(r => r.TimeStamp);
+ var sortedKontaktliste = _Contacts.OrderByDescending(r => r.TimeStamp);
return sortedKontaktliste;
- //Search Bereich
- //CollectionView view = (CollectionView)CollectionViewSource.GetDefaultView(Clientlist.ItemsSource);
- //view.SortDescriptions.Add(new SortDescription("TimeStamp", ListSortDirection.Descending));
- //// view.SortDescriptions.Add(new SortDescription("StatusType", ListSortDirection.Descending));
- //view.Filter = UserFilter;
}
- private ImageSource AvatarToImageSourceConverter(string avatar,bool isEmployee, bool isCustomer)
+ public IOrderedEnumerable LadeChatNachrichtenVomKontakt(AktuellerKontakt pContact)
{
- if (!avatar.Equals(""))
+ if (pContact != null)
{
- try
+ HoleNachrichtenVomServer(pContact.GroupId);
+ _Messages.Clear();
+
+ foreach (var message in _UserMessages.Response.Messages)
{
- Bitmap bitmap;
- var request = WebRequest.Create(avatar);
- using (var response = request.GetResponse())
- using (var stream = response.GetResponseStream())
+ var time = DateTime.Parse(message.Timestamp.Date);
+ var clientTimeZone = TimeZoneInfo.Local;
+ var formattedTime = TimeZoneInfo.ConvertTimeFromUtc(time, clientTimeZone);
+ var isMyOwnMessage = message.UserId == ChatDaten.Userid.Value;
+ var textMessage = message.Text ?? string.Empty;
+
+ if(string.IsNullOrEmpty(textMessage))
{
- bitmap = new Bitmap(stream);
+ textMessage = message.Original_Filename;
}
- MemoryStream ms = new MemoryStream();
- bitmap.Save(ms, ImageFormat.Png);
- ms.Position = 0;
- BitmapImage bi = new BitmapImage();
- bi.BeginInit();
- bi.CacheOption = BitmapCacheOption.OnLoad;
- bi.StreamSource = ms;
- bi.EndInit();
- ms.Dispose();
- ms.Close();
-
- return bi;
- }
- catch (Exception e)
- {
- return null;
- }
- }
- else
- {
- //team default png
- string defImage = "pack://application:,,,/ChatController;component/Ressourcen/team_default.png";
-
- if (isEmployee == true)//original true
- {
- //employee default png
- defImage = "pack://application:,,,/ChatController;component/Ressourcen/employee_default.png";
- }
-
- if (isCustomer == true)
- {
- //client default png
- defImage = "pack://application:,,,/ChatController;component/Ressourcen/client_default.png";
- }
-
- try
- {
- BitmapImage bix = new BitmapImage();
- bix.BeginInit();
- bix.UriSource = new Uri (defImage);//"pack://application:,,,/ChatController;component/Ressourcen/mitarbeiter-avatar.png"
- bix.EndInit();
- return bix;
- }
- catch (Exception e)
- {
- return null;
- }
- }
- }
- #endregion
-
- #region Lade Nachrichten vom Kontakt in den Chat
- public IOrderedEnumerable LadeChatNachrichtenVomKontakt(AktuellerKontakt kontakt)
- {
- if (kontakt != null)
- {
- HoleNachrichtenVomServer(kontakt.GroupId);
- Messages.Clear();
-
- foreach (var ChatMessage in _userMessages.Response.Messages)
- {
- if (ChatMessage.UserId == ChatDaten.Userid.Value)
+ if (!string.IsNullOrEmpty(message.File))
{
- //var timeformated = DateTime.Parse(ChatMessage2.Timestamp.Date);
-
- var time = DateTime.Parse(ChatMessage.Timestamp.Date);
- var clientZone = TimeZoneInfo.Local;
- var timeformated = TimeZoneInfo.ConvertTimeFromUtc(time, clientZone);
-
-
- if (!ChatMessage.File.Equals(""))
- {
- string textn = "";
-
- if (ChatMessage.Text != null)
- textn = ChatMessage.Text;
-
- if (textn.Equals(""))
- textn = ChatMessage.Original_Filename;
-
- if (ImageExtensions.Contains(Path.GetExtension(ChatMessage.File).ToUpperInvariant()))
- {
- //string textn = "";
-
- //if (ChatMessage2.Text != null)
- // textn = ChatMessage2.Text;
-
- //if (textn.Equals(""))
- // textn = ChatMessage2.Original_Filename;
-
- Messages.Add(new ChatMessage(ChatMessage.User_Name, textn,
- timeformated, true, LadeBildNach(ChatMessage.Smaller_Image),
- ChatMessage.File, ChatMessage.Original_Filename));
- }
- else
- if (DokumentExtension.Contains(Path.GetExtension(ChatMessage.File).ToUpperInvariant()))
- {
- Messages.Add(new ChatMessage(ChatMessage.User_Name, textn, timeformated, ChatMessage.Smaller_Image, true, ChatMessage.File));
- }
- else
- {
- //MP4 und gifs und so unbehandelten dreck
- Messages.Add(new ChatMessage(ChatMessage.User_Name, textn, timeformated, ChatMessage.Smaller_Image, true,ChatMessage.File));
- }
- }
- else
- {
- Messages.Add(new ChatMessage(ChatMessage.User_Name, ChatMessage.Text,
- timeformated, true)); //dd MMMM yyyy HH:mm:ss
- }
+ _Messages.Add(Constants.ImageFileExtensions.Contains(Path.GetExtension(message.File).ToUpperInvariant()) ?
+ new ChatMessage(message.User_Name, textMessage, formattedTime, isMyOwnMessage, DownloadImage(message.Smaller_Image), message.File, message.Original_Filename) :
+ new ChatMessage(message.User_Name, textMessage, formattedTime, message.Smaller_Image, isMyOwnMessage, message.File));
}
else
{
- //var timeformated = DateTime.Parse(ChatMessage2.Timestamp.Date);
-
- var time = DateTime.Parse(ChatMessage.Timestamp.Date);
- var clientZone = TimeZoneInfo.Local;
- var timeformated = TimeZoneInfo.ConvertTimeFromUtc(time, clientZone);
-
- if (!ChatMessage.File.Equals(""))
- {
- string textn = "";
-
- if (ChatMessage.Text != null)
- textn = ChatMessage.Text;
-
- if (textn.Equals(""))
- textn = ChatMessage.Original_Filename;
-
- if (ImageExtensions.Contains(Path.GetExtension(ChatMessage.File).ToUpperInvariant()))
- {
-
- Messages.Add(new ChatMessage(ChatMessage.User_Name, textn,
- timeformated, false, LadeBildNach(ChatMessage.Smaller_Image),
- ChatMessage.File, ChatMessage.Original_Filename));
- }
- else
- if (DokumentExtension.Contains(Path.GetExtension(ChatMessage.File).ToUpperInvariant()))
- {
- //Dokument
- Messages.Add(new ChatMessage(ChatMessage.User_Name,textn, timeformated, ChatMessage.Smaller_Image, false, ChatMessage.File));
- }
- else
- {
- //ALLERLEI UNBEHANDELTER KRAM
- Messages.Add(new ChatMessage(ChatMessage.User_Name, textn, timeformated, ChatMessage.Smaller_Image, false, ChatMessage.File));
- }
- }
- else
- {
- //Message
- Messages.Add(new ChatMessage(ChatMessage.User_Name, ChatMessage.Text, timeformated, false));
- }
+ _Messages.Add(new ChatMessage(message.User_Name, message.Text, formattedTime, isMyOwnMessage));
}
}
-
-
- var x = Messages.OrderBy(r => r.SendTime);
-
- return x;
- }
- else
- {
- return Messages.OrderBy(r => r.SendTime);
}
+
+ return _Messages.OrderBy(r => r.SendTime);
}
- private ImageSource LadeBildNach(string link)
+ private static ImageSource DownloadImage(string pUri)
{
try
{
- BitmapImage bix = new BitmapImage();
- bix.BeginInit();
- bix.UriSource = new Uri(link);
- bix.CacheOption = BitmapCacheOption.OnDemand;
- bix.EndInit();
+ var bitmapImage = new BitmapImage();
- return bix;
+ bitmapImage.BeginInit();
+ bitmapImage.UriSource = new Uri(pUri);
+ bitmapImage.CacheOption = BitmapCacheOption.OnDemand;
+ bitmapImage.EndInit();
+
+ return bitmapImage;
}
- catch (Exception edf)
+ catch (Exception exception)
{
return null;
}
@@ -345,231 +183,118 @@ namespace ChatController.HauptKlassen
{
var endurl = ChatDaten.ServerUrl + "/api/chat/messages?groupid=" + groupId;
- WebRequest request = WebRequest.Create(endurl);
+ var webRequest = WebRequest.Create(endurl);
- request.Credentials = CredentialCache.DefaultCredentials;
- request.Headers["Token"] = ChatDaten.AuthToken;
- request.Headers["CustomerID"] = ChatDaten.Kundennummer;
+ webRequest.Credentials = CredentialCache.DefaultCredentials;
+ webRequest.Headers[Constants.Token] = ChatDaten.AuthToken;
+ webRequest.Headers[Constants.CustomerId] = ChatDaten.Kundennummer;
- // Get the response.
- using (WebResponse response = request.GetResponse())
+ using (var response = webRequest.GetResponse())
{
- // Display the status.
- var statusResponse = ((HttpWebResponse) response).StatusDescription;
+ var responseFromServer = Utils.ReadStream(response);
-
- string responseFromServer = ReadStream(response);
-
- //verarbeite hier zu json
if (!responseFromServer.Equals(""))
{
- _userMessages = null;
- //################# Deserialisierung mit Json ###############################
+ _UserMessages = null;
+
var jsonDaten = JsonConvert.DeserializeObject(responseFromServer);
- _userMessages = jsonDaten;
-
- if (_userMessages.Response.HasMorePages == true)
+ _UserMessages = jsonDaten;
+
+ if (_UserMessages.Response.HasMorePages)
{
- _nextPage = _userMessages.Response.NextPage;
- _hasNextPage = true;
+ _NextPage = _UserMessages.Response.NextPage;
+ _HasNextPage = true;
}
else
{
- _hasNextPage = false;
+ _HasNextPage = false;
}
}
- else
- {
- // MessageBox.Show("Keine Daten Vorhanden.");
- }
}
}
catch (Exception e)
{
MessageBox.Show(e.Message, "Fehler", MessageBoxButton.OK);
}
-
- }
-
- private string ReadStream(WebResponse response)
- {
- try
- {
- Stream dataStream = response.GetResponseStream();
-
- StreamReader reader = new StreamReader(dataStream);
-
- string responseFromServer = reader.ReadToEnd();
-
-
- dataStream.Dispose();
- reader.Dispose();
-
- dataStream.Close();
- reader.Close();
-
- return responseFromServer;
- }
- catch (Exception e)
- {
- // MessageBox.Show(e.Message);
- return null;
- }
}
- #endregion
-
- #region Lade Weiter Nachrichten
-
- public IOrderedEnumerable LadeWeiterNachrichten(KontaktlistBuilder kontakt)
+ public IOrderedEnumerable LadeWeiterNachrichten(Contact kontakt)
{
- if (_hasNextPage == true)
+ if (_HasNextPage)
{
- HoleWeitereNachrichtenVomServer(kontakt.GroupId, _nextPage);
+ HoleWeitereNachrichtenVomServer(kontakt.GroupId, _NextPage);
- foreach (var ChatMessage in _weitereUserMessages.Response.Messages)
+ foreach (var ChatMessage in _AdditionalUserMessages.Response.Messages)
{
- if (ChatMessage.UserId == ChatDaten.Userid.Value)
+ var time = DateTime.Parse(ChatMessage.Timestamp.Date);
+ var clientZone = TimeZoneInfo.Local;
+ var timeformated = TimeZoneInfo.ConvertTimeFromUtc(time, clientZone);
+
+ var isLoggedInUsersMessage = ChatMessage.UserId == ChatDaten.Userid.Value;
+
+ if (!string.IsNullOrEmpty(ChatMessage.File))
{
- //var timeformated = DateTime.Parse(ChatMessage2.Timestamp.Date);
+ var messageText = "";
- var time = DateTime.Parse(ChatMessage.Timestamp.Date);
- var clientZone = TimeZoneInfo.Local;
- var timeformated = TimeZoneInfo.ConvertTimeFromUtc(time, clientZone);
-
-
- if (!ChatMessage.File.Equals("")) // Bilder werden Sichtbar
+ if (ChatMessage.Text != null)
{
- string textn = "";
-
- if (ChatMessage.Text != null)
- textn = ChatMessage.Text;
-
- if (textn.Equals(""))
- textn = ChatMessage.Original_Filename;
-
-
- if (ImageExtensions.Contains(Path.GetExtension(ChatMessage.File).ToUpperInvariant()))
- {
- Messages.Add(new ChatMessage(ChatMessage.User_Name,textn,
- timeformated, true, LadeBildNach(ChatMessage.Smaller_Image),
- ChatMessage.File,ChatMessage.Original_Filename));
- }
- else
- if (DokumentExtension.Contains(Path.GetExtension(ChatMessage.File).ToUpperInvariant()))
- {
- Messages.Add(new ChatMessage(ChatMessage.User_Name,textn, timeformated, ChatMessage.Smaller_Image, true, ChatMessage.File));
- }
- else
- {
- // Der Ganze Unbehndelte Kram
- Messages.Add(new ChatMessage(ChatMessage.User_Name,textn, timeformated, ChatMessage.Smaller_Image, true, ChatMessage.File));
- }
+ messageText = ChatMessage.Text;
}
- else
+
+ if (string.IsNullOrEmpty(messageText))
{
- Messages.Add(new ChatMessage(ChatMessage.User_Name, ChatMessage.Text,
- timeformated, true));
+ messageText = ChatMessage.Original_Filename;
}
+
+ _Messages.Add(Constants.ImageFileExtensions.Contains(Path.GetExtension(ChatMessage.File).ToUpperInvariant()) ?
+ new ChatMessage(ChatMessage.User_Name, messageText, timeformated, isLoggedInUsersMessage, DownloadImage(ChatMessage.Smaller_Image), ChatMessage.File, ChatMessage.Original_Filename) :
+ new ChatMessage(ChatMessage.User_Name, messageText, timeformated, ChatMessage.Smaller_Image, isLoggedInUsersMessage, ChatMessage.File));
}
else
{
- //var timeformated = DateTime.Parse(ChatMessage2.Timestamp.Date);
-
- var time = DateTime.Parse(ChatMessage.Timestamp.Date);
- var clientZone = TimeZoneInfo.Local;
- var timeformated = TimeZoneInfo.ConvertTimeFromUtc(time, clientZone);
-
- if (!ChatMessage.File.Equals(""))
- {
- //image
- string textn = "";
-
- if (ChatMessage.Text != null)
- textn = ChatMessage.Text;
-
- if (textn.Equals(""))
- textn = ChatMessage.Original_Filename;
-
- if (ImageExtensions.Contains(Path.GetExtension(ChatMessage.File).ToUpperInvariant()))
- {
- Messages.Add(new ChatMessage(ChatMessage.User_Name, textn,
- timeformated, false, LadeBildNach(ChatMessage.Smaller_Image),
- ChatMessage.File,ChatMessage.Original_Filename));
- }
- else
- if (DokumentExtension.Contains(Path.GetExtension(ChatMessage.File).ToUpperInvariant()))
- {
- //Dokument
- Messages.Add(new ChatMessage(ChatMessage.User_Name, textn, timeformated, ChatMessage.Smaller_Image, false, ChatMessage.File));
- }
- else
- {
- //Der Ganze Unbehandelte Kram MP4 und So
- Messages.Add(new ChatMessage(ChatMessage.User_Name,textn, timeformated, ChatMessage.Smaller_Image, false, ChatMessage.File));
- }
- }
- else
- {
- Messages.Add(new ChatMessage(ChatMessage.User_Name, ChatMessage.Text,
- timeformated, false));
- }
+ _Messages.Add(new ChatMessage(ChatMessage.User_Name, ChatMessage.Text, timeformated, true));
}
}
}
-
- var x = Messages.OrderBy(r => r.SendTime);
-
- return x;
+ return _Messages.OrderBy(r => r.SendTime);
}
- private void HoleWeitereNachrichtenVomServer(long groupId,string page)
+ private void HoleWeitereNachrichtenVomServer(long pGroupId, string pPage)
{
try
{
- var pa = page.Split('=');
- var endurl = ChatDaten.ServerUrl + "/api/chat/messages?groupid=" + groupId+"&page="+pa[1];
+ var page = pPage.Split('=');
+ var endurl = ChatDaten.ServerUrl + "/api/chat/messages?groupid=" + pGroupId + "&page=" + page[1];
- WebRequest request = WebRequest.Create(endurl);
+ var request = WebRequest.Create(endurl);
request.Credentials = CredentialCache.DefaultCredentials;
- request.Headers["Token"] = ChatDaten.AuthToken;
- request.Headers["CustomerID"] = ChatDaten.Kundennummer;
+ request.Headers[Constants.Token] = ChatDaten.AuthToken;
+ request.Headers[Constants.CustomerId] = ChatDaten.Kundennummer;
- // Get the response.
- WebResponse response = request.GetResponse();
+ var response = request.GetResponse();
- // Display the status.
- var statusResponse = ((HttpWebResponse)response).StatusDescription;
+ var responseFromServer = Utils.ReadStream(response);
-
- string responseFromServer = ReadStream(response);
-
- //verarbeite hier zu json
- if (!responseFromServer.Equals(""))
+ if (!string.IsNullOrEmpty(responseFromServer))
{
- _weitereUserMessages = null;
- //################# Deserialisierung mit Json ###############################
- var jsonDaten = JsonConvert.DeserializeObject(responseFromServer);
+ _AdditionalUserMessages = null;
+
+ var userMessages = JsonConvert.DeserializeObject(responseFromServer);
- _weitereUserMessages = jsonDaten;
+ _AdditionalUserMessages = userMessages;
- if (_weitereUserMessages.Response.HasMorePages == true) //neu
+ if (_AdditionalUserMessages.Response.HasMorePages)
{
- _nextPage = _weitereUserMessages.Response.NextPage;
- _hasNextPage = true;
+ _NextPage = _AdditionalUserMessages.Response.NextPage;
+ _HasNextPage = true;
}
else
{
- _hasNextPage = false;
+ _HasNextPage = false;
}
-
- }
- else
- {
- // MessageBox.Show("Keine Daten Vorhanden.");
}
response.Close();
@@ -580,47 +305,38 @@ namespace ChatController.HauptKlassen
}
}
- #endregion
+ private double? _FormerMessagesCount;
- #region Prüfe ob Neue Nachrichten vorhanden sind
-
- private double? _oldMessageCount;
-
- public bool SchaueNachNeuenNachrichten(AktuellerKontakt kontakt)
+ public bool CheckIfNewMessagesExist(AktuellerKontakt pCurrentContact)
{
- TimeSpan span = (DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc));
- long timespan = System.Convert.ToInt64(span.TotalSeconds);
- //long timespan = //lastTs.TotalSeconds;
+ var span = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
+ var timespan = Convert.ToInt64(span.TotalSeconds);
- //Debug.Print(String.Format("Kontakt: {0}, Anzahl: {1}", kontakt.Name, _userMessages.Response.Messages.Length));
- if (_userMessages != null && _userMessages.Response.Messages.Length > 0)
+ if (_UserMessages != null && _UserMessages.Response.Messages.Length > 0)
{
- timespan = _userMessages.Response.Messages.First().Created_At;
+ timespan = _UserMessages.Response.Messages.First().Created_At;
}
- if (kontakt != null)
+ if (pCurrentContact != null)
{
- var newMsCount = SendOwnChatNewsRequest(kontakt.GroupId, timespan);
+ var currentMessagesCount = SendOwnChatNewsRequest(pCurrentContact.GroupId, timespan);
- if (_oldMessageCount == null)
+ if (_FormerMessagesCount == null)
{
- _oldMessageCount = newMsCount;
+ _FormerMessagesCount = currentMessagesCount;
}
- if (newMsCount.Value == _oldMessageCount.Value)
+ if (currentMessagesCount != null && _FormerMessagesCount != null && currentMessagesCount.Equals(_FormerMessagesCount))
{
return false;
}
- else
- {
- _oldMessageCount = newMsCount;
- return true;
- }
- }
- else
- {
- return false;
+
+ _FormerMessagesCount = currentMessagesCount;
+
+ return true;
}
+
+ return false;
}
private double? SendOwnChatNewsRequest(long groupId, long lastStamp)
@@ -629,25 +345,19 @@ namespace ChatController.HauptKlassen
{
var endurl = ChatDaten.ServerUrl + "/api/ownchat/news/" + groupId+"/"+lastStamp;
- WebRequest request = WebRequest.Create(endurl);
+ var request = WebRequest.Create(endurl);
request.Credentials = CredentialCache.DefaultCredentials;
- request.Headers["Token"] = ChatDaten.AuthToken;
- request.Headers["CustomerID"] = ChatDaten.Kundennummer;
+ request.Headers[Constants.Token] = ChatDaten.AuthToken;
+ request.Headers[Constants.CustomerId] = ChatDaten.Kundennummer;
- // Get the response.
- WebResponse response = request.GetResponse();
+ var response = request.GetResponse();
- // Display the status.
- var statusResponse = ((HttpWebResponse)response).StatusDescription;
-
-
- string responseFromServer = ReadStream(response);
+ var responseFromServer = Utils.ReadStream(response);
var jsonDaten = JsonConvert.DeserializeObject(responseFromServer);
return jsonDaten.MessageCount;
-
}
catch (Exception e)
{
@@ -655,44 +365,37 @@ namespace ChatController.HauptKlassen
}
}
- #endregion
-
- #region Prüfe für alle ob neue Nachrichten vorhanden sind
-
public double SchaueNachAllenMessageCounts()
{
- TimeSpan span = (DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc));
- long unixTime = System.Convert.ToInt64(span.TotalSeconds);
+ var span = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
+ var unixTime = Convert.ToInt64(span.TotalSeconds);
- var x = SendeTimestampForEach(0, unixTime);
+ var x = SendeTimestampForEach(0);
+
if (x > 0)
{
- lastTimeStamp = unixTime;
+ _LastTimeStamp = unixTime;
}
+
return x;
}
- private double SendeTimestampForEach(long groupId, long lastStamp)
+ private double SendeTimestampForEach(long groupId)
{
try
{
- var endurl = ChatDaten.ServerUrl + "/api/ownchat/news/" + groupId + "/" + lastTimeStamp; //lastStamp
+ var endurl = ChatDaten.ServerUrl + "/api/ownchat/news/" + groupId + "/" + _LastTimeStamp;
- WebRequest request = WebRequest.Create(endurl);
+ var request = WebRequest.Create(endurl);
request.Credentials = CredentialCache.DefaultCredentials;
- request.Headers["Token"] = ChatDaten.AuthToken;
- request.Headers["CustomerID"] = ChatDaten.Kundennummer;
+ request.Headers[Constants.Token] = ChatDaten.AuthToken;
+ request.Headers[Constants.CustomerId] = ChatDaten.Kundennummer;
((HttpWebRequest) request).KeepAlive = false;
- // Get the response.
- WebResponse response = request.GetResponse();
+ var response = request.GetResponse();
- // Display the status.
- var statusResponse = ((HttpWebResponse)response).StatusDescription;
-
-
- string responseFromServer = ReadStream(response);
+ var responseFromServer = Utils.ReadStream(response);
var jsonDaten = JsonConvert.DeserializeObject(responseFromServer);
@@ -705,150 +408,115 @@ namespace ChatController.HauptKlassen
}
}
- public IOrderedEnumerable NeueGroupklassenKontakte()
+ public IOrderedEnumerable NeueGroupklassenKontakte()
{
- List Kontakt = new List();
+ var contacts = new List();
- var daten = GruppenHolen();
+ var groupData = GruppenHolen();
- foreach (var kontakt in daten.Response)
+ foreach (var contact in groupData.Response)
{
- foreach (var value in kontakt.Value)
+ foreach (var value in contact.Value)
{
- string message = "";
- DateTime timestamp = new DateTime();
- DateTime timeformated = new DateTime();
+ var message = "";
+ var timeformated = new DateTime();
- var lastMS = value.LastMessage;
+ var lastMessage = value.LastMessage;
- if (lastMS != null)
+ if (lastMessage?.Text != null)
{
- if (lastMS.Text != null)
- {
- message = lastMS.Text;
- timestamp = DateTime.Parse(lastMS.Timestamp.Date);
+ message = lastMessage.Text;
+ var timestamp = DateTime.Parse(lastMessage.Timestamp.Date);
- var clientZone = TimeZoneInfo.Local;
- timeformated = TimeZoneInfo.ConvertTimeFromUtc(timestamp, clientZone);
- }
+ var clientZone = TimeZoneInfo.Local;
+ timeformated = TimeZoneInfo.ConvertTimeFromUtc(timestamp, clientZone);
}
- if (message.Equals("") && value.LastMessage != null && !value.LastMessage.File.Equals(""))
+ if (string.IsNullOrEmpty(message) && !string.IsNullOrEmpty(value.LastMessage?.File))
{
message = Path.GetFileName(value.LastMessage.File);
}
long? customerOid = null;
- bool isC = false;
- bool isE = false;
+ var isEmployee = false;
+
foreach (var user in value.Users)
{
- //oid des
if (user.Oid != ChatDaten.Userid)
{
- if (!user.Is_Employee && !String.IsNullOrEmpty(user.Userid_Manage))
+ if (!user.Is_Employee && !string.IsNullOrEmpty(user.Userid_Manage))
{
- customerOid = Int64.Parse(user.Userid_Manage.Substring(1));
- isC = true;
+ customerOid = long.Parse(user.Userid_Manage.Substring(1));
}
-
}
}
- if (value.Onlyemployees && value.Users.Length == 2)
+ if (value.OnlyEmployees && value.Users.Length == 2)
{
- isE = true;
+ isEmployee = true;
}
-
- //null steht für employee
- Kontakt.Add(new KontaktlistBuilder(value.Name, AvatarToImageSourceConverter(value.Avatar,isE,isC),
- message, timeformated, value.Oid, customerOid, value.Onlyemployees, value.Users.Length));
+ contacts.Add(new Contact(value.Name, Utils.AvatarToImageSourceConverter(value.Avatar, isEmployee), message, timeformated, value.Oid, customerOid, value.OnlyEmployees, value.Users.Length));
- if (lastMS != null && lastMS.Timestamp != null && lastMS.Timestamp.Date != null) {
- TimeSpan span = (DateTime.Parse(lastMS.Timestamp.Date) - new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc));
- long unixTime = System.Convert.ToInt64(span.TotalSeconds);
+ if (lastMessage?.Timestamp?.Date != null) {
+ var span = DateTime.Parse(lastMessage.Timestamp.Date) - new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
+ var unixTime = Convert.ToInt64(span.TotalSeconds);
- if (lastTimeStamp < unixTime)
+ if (_LastTimeStamp < unixTime)
{
- lastTimeStamp = unixTime;
+ _LastTimeStamp = unixTime;
}
}
-
}
}
-
- var sortedKontaktliste = Kontakt.OrderByDescending(r => r.TimeStamp);
-
- return sortedKontaktliste;
-
-
- //Search Bereich
- //CollectionView view = (CollectionView)CollectionViewSource.GetDefaultView(Clientlist.ItemsSource);
- //view.SortDescriptions.Add(new SortDescription("TimeStamp", ListSortDirection.Descending));
- //// view.SortDescriptions.Add(new SortDescription("StatusType", ListSortDirection.Descending));
- //view.Filter = UserFilter;
+ return contacts.OrderByDescending(r => r.TimeStamp);
}
private ChatGruppenDaten GruppenHolen()
{
try
{
- var endurl = ChatDaten.ServerUrl + "/api/chat/groups";
+ var url = ChatDaten.ServerUrl + Constants.GetChatGroupsUrl;
- WebRequest request = WebRequest.Create(endurl);
+ var request = WebRequest.Create(url);
request.Credentials = CredentialCache.DefaultCredentials;
- request.Headers["Token"] = ChatDaten.AuthToken;
- request.Headers["CustomerID"] = ChatDaten.Kundennummer;
+ request.Headers[Constants.Token] = ChatDaten.AuthToken;
+ request.Headers[Constants.CustomerId] = ChatDaten.Kundennummer;
- // Get the response.
- WebResponse response = request.GetResponse();
+ var response = request.GetResponse();
- // Display the status.
- var statusResponse = ((HttpWebResponse)response).StatusDescription;
-
-
- string responseFromServer = ReadStream(response);
-
- //verarbeite hier zu json
- //################# Deserialisierung mit Json ###############################
+ var responseFromServer = Utils.ReadStream(response);
var jsonDaten = JsonConvert.DeserializeObject(responseFromServer);
-
response.Close();
-
return jsonDaten;
}
catch (Exception e)
{
- MessageBox.Show(e.Message, "Fehler", MessageBoxButton.OK);
+ MessageBox.Show(e.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
return null;
}
-
}
- #endregion
-
- #region Sende Normale Message an Kontakt
- public void AddeNachrichtDerView(string nachricht)
+ public void AddeNachrichtDerView(string pMessage)
{
try
{
- string username = "";
+ var username = "";
- foreach (var daten in ChatDaten.AngemeldeterUser.Response)
+ var user = ChatDaten.AngemeldeterUser.Response.Values.FirstOrDefault();
+ if(user != null)
{
- username = daten.Value.Firstname + " " + daten.Value.Lastname;
+ username = $"{user.Firstname} {user.Lastname}";
}
-
+
var time = DateTime.Now;
- Messages.Add(new ChatMessage(username, nachricht,
- time, true));
+ _Messages.Add(new ChatMessage(username, pMessage, time, true));
}
catch (Exception e)
@@ -903,31 +571,15 @@ namespace ChatController.HauptKlassen
}
}
- #endregion
-
- #region Sende Media Nachricht an Kontakt
-
public string HoleMedium()
{
try
{
- OpenFileDialog openFileDialog1 = new OpenFileDialog();
+ var openFileDialog = new OpenFileDialog {Filter = Resource.OpenFileDialogFilter_DocumentsAndImages};
- //if (typ == 1)
- openFileDialog1.Filter = "Office Dokumente |*.doc;*.xls;*.ppt;*.txt;*.pdf|Bilder |*.jpg;*.png;*.jpeg;*.jpe;*.gif;*.bmp";
- //else
- // openFileDialog1.Filter = "Office Dokumente |*.doc;*.xls;*.ppt;*.txt";
-
- DialogResult result = openFileDialog1.ShowDialog();
+ var result = openFileDialog.ShowDialog();
- if (result == System.Windows.Forms.DialogResult.OK)
- {
- return openFileDialog1.FileName;
- }
- else
- {
- return null;
- }
+ return result == DialogResult.OK ? openFileDialog.FileName : null;
}
catch (Exception e)
{
@@ -936,83 +588,77 @@ namespace ChatController.HauptKlassen
}
}
- public void AddeMediumDerNachrichtView(string file,string originalFilePath)
+ public void AddeMediumDerNachrichtView(string pFile, string pOriginalFilePath)
{
try
{
- var ChatMessage = _userMessages.Response.Messages.Last();
-
- var timeformated = DateTime.Now;
-
- if (ImageExtensions.Contains(Path.GetExtension(file).ToUpperInvariant()))
+ if(string.IsNullOrEmpty(pFile) || string.IsNullOrEmpty(pOriginalFilePath))
{
- byte[] mdatei;
- using (Stream reader = File.OpenRead(file))
+ return;
+ }
+
+ var message = _UserMessages.Response.Messages.Last();
+
+ var sendTime = DateTime.Now;
+
+ if (Constants.ImageFileExtensions.Contains(Path.GetExtension(pFile).ToUpperInvariant()))
+ {
+ byte[] mediaFile;
+ using (Stream reader = File.OpenRead(pFile))
{
- mdatei = ReadFully(reader);
+ mediaFile = ReadFully(reader);
}
- MemoryStream mss = new MemoryStream(mdatei);
- System.Drawing.Image Img = System.Drawing.Image.FromStream(mss);
+ var memoryStream = new MemoryStream(mediaFile);
+ var image = System.Drawing.Image.FromStream(memoryStream);
-
- using (System.Drawing.Bitmap dImg = new System.Drawing.Bitmap(Img))
+ using (var bitmap = new Bitmap(image))
{
- using (MemoryStream ms = new MemoryStream())
+ using (var stream = new MemoryStream())
{
short orient = 0;
- int orientationId = 0x0112;
+ const int orientationId = 0x0112;
- if (Img.PropertyIdList.Contains(orientationId))
+ if (image.PropertyIdList.Contains(orientationId))
{
- PropertyItem item = Img.GetPropertyItem(orientationId);
-
+ var item = image.GetPropertyItem(orientationId);
orient = BitConverter.ToInt16(item.Value, 0);
- dImg.SetPropertyItem(item);
+ bitmap.SetPropertyItem(item);
}
+ var flipType = OrientationToFlipType(orient.ToString());
- var x = OrientationToFlipType(orient.ToString());
+ bitmap.RotateFlip(flipType);
- dImg.RotateFlip(x);
-
- dImg.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
+ bitmap.Save(stream, ImageFormat.Jpeg);
- System.Windows.Media.Imaging.BitmapImage bImg = new System.Windows.Media.Imaging.BitmapImage();
+ var bitmapImage = new BitmapImage();
- bImg.BeginInit();
- bImg.StreamSource = new MemoryStream(ms.ToArray());
- bImg.EndInit();
+ bitmapImage.BeginInit();
+ bitmapImage.StreamSource = new MemoryStream(stream.ToArray());
+ bitmapImage.EndInit();
- System.Windows.Controls.Image img = new System.Windows.Controls.Image();
- img.Source = bImg;
-
- //original image
- string filename = Path.GetFileName(originalFilePath).ToLower();
+ var filename = Path.GetFileName(pOriginalFilePath).ToLower();
filename = filename.Replace(".bmp", ".jpg");
-
- //Path.GetFileName(file)
- Messages.Add(new ChatMessage(ChatMessage.User_Name, filename ,
- timeformated, true, bImg,
- file, filename));
+
+ _Messages.Add(new ChatMessage(message.User_Name, filename, sendTime, true, bitmapImage, pFile, filename));
}
}
- mss.Dispose();
- mss.Close();
+ memoryStream.Dispose();
+ memoryStream.Close();
}
- else if (DokumentExtension.Contains(Path.GetExtension(file).ToUpperInvariant()))
+ else if (Constants.DocumentFileExtension.Contains(Path.GetExtension(pFile).ToUpperInvariant()))
{
- Messages.Add(new ChatMessage(ChatMessage.User_Name, Path.GetFileName(file), timeformated, ChatMessage.Smaller_Image, true,file));
+ _Messages.Add(new ChatMessage(message.User_Name, Path.GetFileName(pFile), sendTime, message.Smaller_Image, true, pFile));
}
else
{
- //MP4 und gifs und so unbehandelten dreck
- Messages.Add(new ChatMessage(ChatMessage.User_Name, Path.GetFileName(file), timeformated, ChatMessage.Smaller_Image, true, file));
+ _Messages.Add(new ChatMessage(message.User_Name, Path.GetFileName(pFile), sendTime, message.Smaller_Image, true, pFile));
}
}
@@ -1022,29 +668,34 @@ namespace ChatController.HauptKlassen
}
}
- public void AddMediumContextDerNachrichtView(byte[] datei,string filename)
+ public void AddMediumContextDerNachrichtView(byte[] pFile, string pFileName)
{
- var ChatMessage = _userMessages.Response.Messages.Last();
-
- var timeformated = DateTime.Now;
-
- if (ImageExtensions.Contains(Path.GetExtension(filename).ToUpperInvariant()))
+ if(string.IsNullOrEmpty(pFileName))
{
- BitmapImage biImg = new BitmapImage();
- MemoryStream ms = new MemoryStream(datei);
- biImg.BeginInit();
- biImg.StreamSource = ms;
- biImg.EndInit();
+ return;
+ }
+
+ var message = _UserMessages.Response.Messages.Last();
- ms.Close();
- ImageSource logo = biImg;
+ var sendtime = DateTime.Now;
- Messages.Add(new ChatMessage(ChatMessage.User_Name, Path.GetFileName(filename),
- timeformated, true, logo, filename, Path.GetFileName(filename)));
+ if (Constants.ImageFileExtensions.Contains(Path.GetExtension(pFileName).ToUpperInvariant()))
+ {
+ var bitmapImage = new BitmapImage();
+ var memoryStream = new MemoryStream(pFile);
+
+ bitmapImage.BeginInit();
+ bitmapImage.StreamSource = memoryStream;
+ bitmapImage.EndInit();
+
+ memoryStream.Close();
+ ImageSource logo = bitmapImage;
+
+ _Messages.Add(new ChatMessage(message.User_Name, Path.GetFileName(pFileName), sendtime, true, logo, pFileName, Path.GetFileName(pFileName)));
}
else
{
- Messages.Add(new ChatMessage(ChatMessage.User_Name, Path.GetFileName(filename), timeformated, ChatMessage.Smaller_Image, true, filename));
+ _Messages.Add(new ChatMessage(message.User_Name, Path.GetFileName(pFileName), sendtime, message.Smaller_Image, true, pFileName));
}
}
@@ -1060,161 +711,146 @@ namespace ChatController.HauptKlassen
}
}
- private void VerarbeiteMedia(string file,AktuellerKontakt kontakt, string originalFilePath)
+ private void VerarbeiteMedia(string pFile, AktuellerKontakt pContact, string pOriginalFilePath)
{
- byte[] mdatei;
- using (Stream reader = File.OpenRead(file))
+ if(string.IsNullOrEmpty(pOriginalFilePath))
{
- mdatei = ReadFully(reader);
+ return;
}
- string filename = Path.GetFileName(originalFilePath).ToLower();
+ byte[] mediaFile;
+ using (Stream reader = File.OpenRead(pFile))
+ {
+ mediaFile = ReadFully(reader);
+ }
+
+ var fileName = Path.GetFileName(pOriginalFilePath).ToLower();
- //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())){
+ if (Constants.ImageFileExtensions.Contains(Path.GetExtension(fileName).ToUpperInvariant())){
- filename = filename.Replace(".bmp", ".jpg");
+ fileName = fileName.Replace(".bmp", ".jpg");
- SendMediaMessage(filename, kontakt.GroupId, mdatei);
+ SendMediaMessage(fileName, pContact.GroupId, mediaFile);
}
else
{
- SendMediaMessage(filename, kontakt.GroupId, mdatei);
+ SendMediaMessage(fileName, pContact.GroupId, mediaFile);
}
-
}
- public string ScaleImage(string file,string format)
+ public string ScaleImage(string pFile, string pFormat)
{
try
{
- byte[] mdatei;
- using (Stream reader = File.OpenRead(file))
+ byte[] mediaFile;
+ using (Stream reader = File.OpenRead(pFile))
{
- mdatei = ReadFully(reader);
+ mediaFile = ReadFully(reader);
}
-
- MemoryStream ms = new MemoryStream(mdatei);
- System.Drawing.Image Image = System.Drawing.Image.FromStream(ms);
+ var memoryStream = new MemoryStream(mediaFile);
+ var image = System.Drawing.Image.FromStream(memoryStream);
- float width = 0;
- float height = 0;
- //Querformat
- if (Image.Height < Image.Width )
+ float width, height;
+
+ if (image.Height < image.Width )
{
-
- if (Image.Height > 1080)
+ if (image.Height > 1080)
{
- float factor = (float)Image.Height / 1080;
+ var factor = (float)image.Height / 1080;
height = 1080;
- width = Image.Width / factor;
+ width = image.Width / factor;
}
else
{
- return file;
+ return pFile;
}
}
- else if(Image.Height < 1080 && Image.Width < 1080 )
+ else if(image.Height < 1080 && image.Width < 1080 )
{
- return file;
+ return pFile;
}
- else // Hochformat
+ else
{
- if (Image.Width > 1080)
+ if (image.Width > 1080)
{
- float factor = (float)Image.Width / 1080;
+ var factor = (float)image.Width / 1080;
width = 1080;
- height = Image.Height / factor;
+ height = image.Height / factor;
}
else
{
- return file;
+ return pFile;
}
}
-
-
- System.Drawing.Bitmap bmpScaled = new System.Drawing.Bitmap(Image,new Size((int)width,(int)height));
- int orientationId = 0x0112;
+ var scaledBitmap = new Bitmap(image, new Size((int) width, (int) height));
+
+ const int orientationId = 0x0112;
- if (Image.PropertyIdList.Contains(orientationId)) {
- PropertyItem item = Image.GetPropertyItem(orientationId);
+ if (image.PropertyIdList.Contains(orientationId)) {
+ var item = image.GetPropertyItem(orientationId);
- bmpScaled.SetPropertyItem(item);
+ scaledBitmap.SetPropertyItem(item);
}
- using (Graphics gr = Graphics.FromImage(Image))
+ using (var graphics = Graphics.FromImage(image))
{
- gr.Clear(Color.Transparent);
+ graphics.Clear(Color.Transparent);
- // falls jemand mekert, muss die intergedönse erhöht werden
- gr.InterpolationMode = InterpolationMode.Low; // InterpolationMode.HighQualityBicubic;
+ graphics.InterpolationMode = InterpolationMode.Low;
-
- gr.DrawImage(bmpScaled, (int)width, (int)height);
- //bitMap = gr.GetHdc();
+ graphics.DrawImage(scaledBitmap, (int) width, (int) height);
}
- ImageConverter converter = new ImageConverter();
+ var imageConverter = new ImageConverter();
- byte[] imageData = (byte[])converter.ConvertTo(bmpScaled, typeof(byte[]));
-
-
- string filePath = System.IO.Path.GetTempPath() + Guid.NewGuid().ToString() + format;
+ var imageData = (byte[])imageConverter.ConvertTo(scaledBitmap, typeof(byte[]));
+ var filePath = Path.GetTempPath() + Guid.NewGuid() + pFormat;
- //".JPG", ".JPE", ".BMP", ".GIF", ".PNG", ".JPEG"
- if (format.Equals(".JPG") || format.Equals(".JPE") || format.Equals(".JPEG") || format.Equals(".BMP"))
+ if (pFormat.Equals(".JPG") || pFormat.Equals(".JPE") || pFormat.Equals(".JPEG") || pFormat.Equals(".BMP"))
{
- bmpScaled.Save(filePath, ImageFormat.Jpeg);
- }else if (format.Equals(".PNG"))
- {
- bmpScaled.Save(filePath, ImageFormat.Png);
+ scaledBitmap.Save(filePath, ImageFormat.Jpeg);
}
- else if (format.Equals(".GIF"))
+ else if (pFormat.Equals(".PNG"))
{
- bmpScaled.Save(filePath, ImageFormat.Gif);
+ scaledBitmap.Save(filePath, ImageFormat.Png);
+ }
+ else if (pFormat.Equals(".GIF"))
+ {
+ scaledBitmap.Save(filePath, ImageFormat.Gif);
}
if (File.Exists(filePath))
{
- FileInfo f = new FileInfo(filePath);
- long s1 = f.Length;
+ var fileInfo = new FileInfo(filePath);
+ var fileInfoLength = fileInfo.Length;
- if (ChatDaten.MaxUploadSize < s1)
+ if (ChatDaten.MaxUploadSize < fileInfoLength)
{
File.Delete(filePath);
- return "";
+ return string.Empty;
}
}
else
{
- return "";
+ return string.Empty;
}
- //byte[] datei;
- //using (Stream reader = File.OpenRead(filePath))
- //{
- // datei = ReadFully(reader);
- //}
- ms.Dispose();
- ms.Close();
+ memoryStream.Dispose();
+ memoryStream.Close();
return filePath;
}
catch (Exception e)
{
- //MessageBox.Show(e.Message, "Fehler");
- return file;
+ return pFile;
}
}
@@ -1224,86 +860,62 @@ namespace ChatController.HauptKlassen
{
case 1:
return RotateFlipType.RotateNoneFlipNone;
- break;
case 2:
return RotateFlipType.RotateNoneFlipX;
- break;
case 3:
return RotateFlipType.Rotate180FlipNone;
- break;
case 4:
return RotateFlipType.Rotate180FlipX;
- break;
case 5:
return RotateFlipType.Rotate90FlipX;
- break;
case 6:
return RotateFlipType.Rotate90FlipNone;
- break;
case 7:
return RotateFlipType.Rotate270FlipX;
- break;
case 8:
return RotateFlipType.Rotate270FlipNone;
- break;
default:
return RotateFlipType.RotateNoneFlipNone;
}
}
- private static byte[] ReadFully(Stream stream)
+ private static byte[] ReadFully(Stream pStream)
{
- byte[] buffer = new byte[32768];
- using (MemoryStream ms = new MemoryStream())
+ using(var memStream = new MemoryStream())
{
- while (true)
- {
- int read = stream.Read(buffer, 0, buffer.Length);
- if (read <= 0)
- {
- return ms.ToArray();
- }
-
- ms.Write(buffer, 0, read);
- }
+ pStream.CopyTo(memStream);
+ return memStream.ToArray();
}
}
- private HttpRequestMessage httpRequest;
+ private HttpRequestMessage _HttpRequest;
- private async void SendMediaMessage(string message, long groupId, byte[] mediaDatei)
+ private async void SendMediaMessage(string pMessage, long pGroupId, byte[] pMediaFile)
{
try
{
- #region test Multiplatform
- using (MultipartFormDataContent multiPartContent = new MultipartFormDataContent())
+ using (var multiPartContent = new MultipartFormDataContent())
{
- Uri requestUri = new Uri(ChatDaten.ServerUrl + "/api/chat/messages/send");
+ var requestUri = new Uri(ChatDaten.ServerUrl + "/api/chat/messages/send");
- multiPartContent.Add(new ByteArrayContent(mediaDatei, 0, mediaDatei.Count()), "file", message);
- multiPartContent.Add(new StringContent(groupId + ""), "groupid");
+ multiPartContent.Add(new ByteArrayContent(pMediaFile, 0, pMediaFile.Length), "file", pMessage);
+ multiPartContent.Add(new StringContent(pGroupId.ToString()), "groupid");
- httpRequest = new HttpRequestMessage();
- httpRequest.Method = HttpMethod.Post;
- httpRequest.RequestUri = requestUri;
- httpRequest.Content = multiPartContent;
-
- httpRequest.Headers.Add("Token", ChatDaten.AuthToken);
- httpRequest.Headers.Add("CustomerID", ChatDaten.Kundennummer);
+ _HttpRequest = new HttpRequestMessage
+ {
+ Method = HttpMethod.Post,
+ RequestUri = requestUri,
+ Content = multiPartContent
+ };
+ _HttpRequest.Headers.Add(Constants.Token, ChatDaten.AuthToken);
+ _HttpRequest.Headers.Add(Constants.CustomerId, ChatDaten.Kundennummer);
- HttpResponseMessage httpResponse = null;
+ var httpClient = new HttpClient();
+ var httpResponse = await httpClient.SendAsync(_HttpRequest, CancellationToken.None).ConfigureAwait(false);
- HttpClient httpClient = new HttpClient();
- //httpClient.Timeout = TimeSpan.FromSeconds(300);
- httpResponse = await httpClient.SendAsync(httpRequest, CancellationToken.None).ConfigureAwait(false);
-
-
- string antwortResponse = await httpResponse.Content.ReadAsStringAsync();
-
- //MessageBox.Show(antwortResponse);
+ var antwortResponse = await httpResponse.Content.ReadAsStringAsync();
}
- #endregion
}
catch (Exception e)
{
@@ -1311,20 +923,17 @@ namespace ChatController.HauptKlassen
}
}
- #endregion
-
- #region Context Menue Für Chat inkl. Funktionen
public ContextMenu ErstelleKontextMenue()
{
- ContextMenu context = new ContextMenu();
+ var contextMenu = new ContextMenu();
- System.Windows.Controls.MenuItem item1 = new System.Windows.Controls.MenuItem(); // jeweils umbenenen Speichern unter
- System.Windows.Controls.MenuItem item2 = new System.Windows.Controls.MenuItem(); // Einfügen
- System.Windows.Controls.MenuItem item3 = new System.Windows.Controls.MenuItem(); // Kopieren
+ System.Windows.Controls.MenuItem item1 = new System.Windows.Controls.MenuItem();
+ System.Windows.Controls.MenuItem item2 = new System.Windows.Controls.MenuItem();
+ System.Windows.Controls.MenuItem item3 = new System.Windows.Controls.MenuItem();
- context.Items.Add(item1);
- context.Items.Add(item2);
- context.Items.Add(item3);
+ contextMenu.Items.Add(item1);
+ contextMenu.Items.Add(item2);
+ contextMenu.Items.Add(item3);
item1.Header = "Speichern unter";
@@ -1336,83 +945,70 @@ namespace ChatController.HauptKlassen
item3.Header = "Kopieren";
item3.Visibility = Visibility.Visible;
- //Image icon = new Image();
- //icon.Source = new BitmapImage(new Uri(@"..\..\Ressource\ClipboardDisabled.png", UriKind.Relative));
- //icon.Height = 16;
- //icon.Width = 16;//(new Size(16, 16));
- //item1.Icon = icon;
-
- return context;
+ return contextMenu;
}
- #region Speichere Chat Doku / Media aufm PC
- public void SpeichernUnterFunkion(ChatMessage item)
+ public void SpeichernUnterFunkion(ChatMessage pChatMessage)
{
- if (item.ImageSources != null)
+ if (pChatMessage.ImageSources != null)
{
-
- SpeichernUnter(1, Path.GetFileName(item.OriginalImage),
- DownloadMediaDatei(item.OriginalImage));
+ SpeichernUnter(1, Path.GetFileName(pChatMessage.OriginalImage), DownloadMediaDatei(pChatMessage.OriginalImage));
}
}
- private byte[] DownloadMediaDatei(string pfad)
+ private static byte[] DownloadMediaDatei(string pFilePath)
{
+ byte[] mediaFile = null;
+
try
{
- byte[] pic = null;
-
- using (WebClient client = new WebClient())
+ using(var webClient = new WebClient())
{
- pic = client.DownloadData(pfad);
+ mediaFile = webClient.DownloadData(pFilePath);
}
- return pic;
+ return mediaFile;
}
- catch (Exception e)
+ catch(Exception e)
{
- //throw new Exception(e.Message);
MessageBox.Show("Fehler: " + e.Message, "Fehler", MessageBoxButton.OK);
- return null;
}
+
+ return mediaFile;
}
- private void SpeichernUnter(int filterTyp, string dateiname, byte[] datensatz)
+ private static void SpeichernUnter(int pFilterType, string pFileName, byte[] pMediaFile)
{
try
{
- SaveFileDialog saveFileDialog1 = new SaveFileDialog();
+ var saveFileDialog = new SaveFileDialog {FileName = Path.GetFileName(pFileName)};
- saveFileDialog1.FileName = Path.GetFileName(dateiname);
-
- if (filterTyp == 1) // Bilder
+ switch(pFilterType)
{
- saveFileDialog1.Filter = "Bilder |*.jpg;*.png;*.jpeg;*.jpe;*.gif;*.bmp";
- saveFileDialog1.Title = "Bild Speichern";
- saveFileDialog1.ShowDialog();
+ case 1:
+ saveFileDialog.Filter = Resource.SaveFileDialogFilter_Images;
+ saveFileDialog.Title = Resource.SaveFIleDialogTitle_Images;
+ saveFileDialog.ShowDialog();
+ break;
+ case 2:
+ saveFileDialog.Filter = Resource.SaveFileDialogFilter_Documents;
+ saveFileDialog.Title = Resource.SaveFIleDialogTitle_Documents;
+ saveFileDialog.ShowDialog();
+ break;
+ case 3:
+ saveFileDialog.Filter = Resource.SaveFileDialogFilter_Audio;
+ saveFileDialog.Title = Resource.SaveFIleDialogTitle_Audio;
+ saveFileDialog.ShowDialog();
+ break;
}
- if (filterTyp == 2) //Office
+ if (!string.IsNullOrEmpty(saveFileDialog.FileName))
{
- saveFileDialog1.Filter = "Office Dokumente |*.doc;*.xls;*.ppt;*.txt";
- saveFileDialog1.Title = "Dokument Speichern";
- saveFileDialog1.ShowDialog();
- }
+ var fileStream = (FileStream)saveFileDialog.OpenFile();
- if (filterTyp == 3) // Audio
- {
- saveFileDialog1.Filter = "Audio Datei|*.wav;*.mp3;*.wma;*.aac;*.ogg;";
- saveFileDialog1.Title = "Audio Speichern";
- saveFileDialog1.ShowDialog();
- }
+ fileStream.Write(pMediaFile, 0, pMediaFile.Length);
- if (saveFileDialog1.FileName != "")
- {
- FileStream fs = (FileStream)saveFileDialog1.OpenFile();
-
- fs.Write(datensatz, 0, datensatz.Length);
-
- fs.Close();
+ fileStream.Close();
}
}
catch (Exception e)
@@ -1421,40 +1017,35 @@ namespace ChatController.HauptKlassen
}
}
- #endregion
-
- #region Fuege Daten Bilder usw via DragAndDrop in den Chat
- public void Einfuegen(long groupOid, ChatMainControl chatMainControl)
+ public void Einfuegen(long pGroupOid, ChatMainControl pChatMainControl)
{
- var d = System.Windows.Forms.Clipboard.GetDataObject();
+ var dataObject = Clipboard.GetDataObject();
- if (d.GetDataPresent(DataFormats.FileDrop))
+ if(dataObject == null)
+ {
+ return;
+ }
+
+ if (dataObject.GetDataPresent(DataFormats.FileDrop))
{
try
{
- string[] fileList = d.GetData(DataFormats.FileDrop) as string[];
-
- string filename = "";
-
- FileStream file = null;
-
- if (fileList != null)
+ if (dataObject.GetData(DataFormats.FileDrop) is string[] fileList)
{
if (File.Exists(fileList[0]))
{
- filename = Path.GetFileName(fileList[0]);
+ var fileName = Path.GetFileName(fileList[0]);
- byte[] myBinary = File.ReadAllBytes(fileList[0]);
+ var mediaFile = File.ReadAllBytes(fileList[0]);
+
+ AddMediumContextDerNachrichtView(mediaFile, fileName);
- AddMediumContextDerNachrichtView(myBinary,filename);
-
- CollectionViewSource.GetDefaultView(chatMainControl.ChatListBox.ItemsSource).Refresh();
+ CollectionViewSource.GetDefaultView(pChatMainControl.ChatListBox.ItemsSource).Refresh();
- chatMainControl.ChatListBox.Items.MoveCurrentToLast();
- chatMainControl.ChatListBox.ScrollIntoView(chatMainControl.ChatListBox.Items.CurrentItem);
+ pChatMainControl.ChatListBox.Items.MoveCurrentToLast();
+ pChatMainControl.ChatListBox.ScrollIntoView(pChatMainControl.ChatListBox.Items.CurrentItem);
-
- SendMediaMessage(filename, groupOid, myBinary);
+ SendMediaMessage(fileName, pGroupOid, mediaFile);
}
}
}
@@ -1463,52 +1054,53 @@ namespace ChatController.HauptKlassen
MessageBox.Show("Fehler: " + e.Message, "Fehler", MessageBoxButton.OK);
}
}
- else
- if (d.GetDataPresent(DataFormats.Text))
+ else
+ {
+ if (dataObject.GetDataPresent(DataFormats.Text))
{
- string text = (string)d.GetData(DataFormats.StringFormat);
+ var text = (string) dataObject.GetData(DataFormats.StringFormat);
AddeNachrichtDerView(text);
- CollectionViewSource.GetDefaultView(chatMainControl.ChatListBox.ItemsSource).Refresh();
+ CollectionViewSource.GetDefaultView(pChatMainControl.ChatListBox.ItemsSource).Refresh();
- chatMainControl.ChatListBox.Items.MoveCurrentToLast();
- chatMainControl.ChatListBox.ScrollIntoView(chatMainControl.ChatListBox.Items.CurrentItem);
+ pChatMainControl.ChatListBox.Items.MoveCurrentToLast();
+ pChatMainControl.ChatListBox.ScrollIntoView(pChatMainControl.ChatListBox.Items.CurrentItem);
- SendMessage(text, groupOid);
+ SendMessage(text, pGroupOid);
}
- else
- if (d.GetDataPresent(DataFormats.Bitmap))
- {
- Bitmap pic = (Bitmap)d.GetData(DataFormats.Bitmap);
+ else if (dataObject.GetDataPresent(DataFormats.Bitmap))
+ {
+ var bitmap = (Bitmap) dataObject.GetData(DataFormats.Bitmap);
- var bildname = GeneriereZuffalsNamen() + ".jpg";
+ var imageName = GenerateTempName() + ".jpg";
- System.Drawing.Image img = pic;
-
- AddMediumContextDerNachrichtView(ImageToByteArray(img),bildname);
+ System.Drawing.Image image = bitmap;
+
+ AddMediumContextDerNachrichtView(ImageToByteArray(image), imageName);
- CollectionViewSource.GetDefaultView(chatMainControl.ChatListBox.ItemsSource).Refresh();
+ CollectionViewSource.GetDefaultView(pChatMainControl.ChatListBox.ItemsSource).Refresh();
- chatMainControl.ChatListBox.Items.MoveCurrentToLast();
- chatMainControl.ChatListBox.ScrollIntoView(chatMainControl.ChatListBox.Items.CurrentItem);
+ pChatMainControl.ChatListBox.Items.MoveCurrentToLast();
+ pChatMainControl.ChatListBox.ScrollIntoView(pChatMainControl.ChatListBox.Items.CurrentItem);
- SendMediaMessage(bildname,groupOid, ImageToByteArray(img));
- }
- else
- {
- MessageBox.Show("Der Zwischen-Speicher kann nicht verarbeitet werden.", "Fehler", MessageBoxButton.OK);
- }
+ SendMediaMessage(imageName, pGroupOid, ImageToByteArray(image));
+ }
+ else
+ {
+ MessageBox.Show("Der Zwischen-Speicher kann nicht verarbeitet werden.", "Fehler", MessageBoxButton.OK);
+ }
+ }
}
- public static byte[] ImageToByteArray(System.Drawing.Image image)
+ public static byte[] ImageToByteArray(System.Drawing.Image pImage)
{
try
{
- using (var ms = new MemoryStream())
+ using (var memoryStream = new MemoryStream())
{
- image.Save(ms, ImageFormat.Bmp);
- return ms.ToArray();
+ pImage.Save(memoryStream, ImageFormat.Bmp);
+ return memoryStream.ToArray();
}
}
catch (Exception e)
@@ -1518,72 +1110,58 @@ namespace ChatController.HauptKlassen
}
}
- private string GeneriereZuffalsNamen()
+ private static string GenerateTempName()
{
- int lenght = 6;
- const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" +
- "abcdefghijklmnopqrstuvwxyz" +
- "0123456789";
+ const int length = 6;
+ const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
var random = new Random();
- String Code = new string(Enumerable.Repeat(chars, lenght)
- .Select(s => s[random.Next(s.Length)]).ToArray());
+
+ var tempName = new string(Enumerable.Repeat(chars, length).Select(s => s[random.Next(s.Length)]).ToArray());
- return Code;
+ return tempName;
}
- #endregion
- #region Kopierne der Dinger im Chat für Alle Bereiche
-
- public void Kopieren(object data, int typ)
+ public void Kopieren(object pData, int pDataType)
{
- if (typ == 1) // Text
- {
- Clipboard.SetData(DataFormats.Text, data);
- }
-
- if (typ == 2) // Bild
+ switch(pDataType)
{
- Clipboard.SetData(DataFormats.Bitmap, data);
- }
-
- if (typ == 3) //Dokument
- {
- Clipboard.SetData(DataFormats.FileDrop, data);
+ case 1:
+ Clipboard.SetData(DataFormats.Text, pData);
+ break;
+ case 2:
+ Clipboard.SetData(DataFormats.Bitmap, pData);
+ break;
+ case 3:
+ Clipboard.SetData(DataFormats.FileDrop, pData);
+ break;
}
}
- #endregion
-
- #endregion
-
- #region Zeige Kontakt Bild
-
- public void ShowKontaktPicture(AktuellerKontakt curItem )
+ public void ShowProfilePicture(AktuellerKontakt pCurrentContact)
{
try
{
- using (Form form = new Form())
+ using (var form = new Form())
{
- Image imgg = new Image();
+ var image = new Image {Source = pCurrentContact.Image};
- imgg.Source = curItem.Image;
+ var encoder = new BmpBitmapEncoder();
+ var memoryStream = new MemoryStream();
+
+ encoder.Frames.Add(BitmapFrame.Create((BitmapSource) image.Source));
+ encoder.Save(memoryStream);
+
+ var imageFromStream = System.Drawing.Image.FromStream(memoryStream);
- BmpBitmapEncoder encoder = new BmpBitmapEncoder();
- MemoryStream ms = new MemoryStream();
- encoder.Frames.Add(BitmapFrame.Create((BitmapSource) imgg.Source));
- encoder.Save(ms);
- System.Drawing.Image img = System.Drawing.Image.FromStream(ms);
-
- Bitmap imgbit = new Bitmap(img);
+ var bitmap = new Bitmap(imageFromStream);
form.StartPosition = FormStartPosition.CenterScreen;
- form.Size = imgbit.Size;
+ form.Size = bitmap.Size;
form.Height += 60;
form.MinimumSize = new Size(150,150);
- var width = (int)Math.Round(System.Windows.SystemParameters.PrimaryScreenWidth / 1.25);
- var height = (int)Math.Round(System.Windows.SystemParameters.PrimaryScreenWidth / 2);
-
+ var width = (int) Math.Round(SystemParameters.PrimaryScreenWidth / 1.25);
+ var height = (int) Math.Round(SystemParameters.PrimaryScreenWidth / 2);
form.MaximumSize = new Size(width,height);
form.FormBorderStyle = FormBorderStyle.Sizable;
@@ -1591,23 +1169,23 @@ namespace ChatController.HauptKlassen
form.MaximizeBox = false;
form.Text = "ownChat";
- form.Icon = Icon.ExtractAssociatedIcon(Application.ExecutablePath);
-
- PictureBox pb = new PictureBox();
- pb.Dock = DockStyle.Fill;
- pb.Image = imgbit;
+ form.Icon = Icon.ExtractAssociatedIcon(Application.ExecutablePath);
- pb.SizeMode = PictureBoxSizeMode.CenterImage;
+ var pictureBox = new PictureBox
+ {
+ Dock = DockStyle.Fill,
+ Image = bitmap,
+ SizeMode = PictureBoxSizeMode.CenterImage,
+ MaximumSize = new Size(500, 500)
+ };
- pb.MaximumSize = new Size(500,500);
-
- form.Controls.Add(pb);
+ form.Controls.Add(pictureBox);
form.ShowDialog();
}
}
catch (Exception e)
{
- MessageBox.Show("Fehler: "+e.Message,"Fehler",MessageBoxButton.OK);
+ MessageBox.Show("Fehler: " + e.Message, "Fehler" , MessageBoxButton.OK);
}
}
@@ -1615,261 +1193,140 @@ namespace ChatController.HauptKlassen
{
try
{
-
var webClient = new WebClient();
webClient.DownloadDataCompleted += (s, e) =>
{
try
{
-
- using (Form form = new Form())
+ using (var form = new Form())
{
using (var ms = new MemoryStream(e.Result))
{
- System.Drawing.Image Img = System.Drawing.Image.FromStream(ms);
+ var image = System.Drawing.Image.FromStream(ms);
- using (System.Drawing.Bitmap dImg = new System.Drawing.Bitmap(Img))
+ using (var bitmap = new Bitmap(image))
{
- using (MemoryStream mss = new MemoryStream())
+ short orient = 0;
+ const int orientationId = 0x0112;
+
+ if (image.PropertyIdList.Contains(orientationId))
{
- short orient = 0;
- int orientationId = 0x0112;
+ var item = image.GetPropertyItem(orientationId);
- if (Img.PropertyIdList.Contains(orientationId))
- {
- PropertyItem item = Img.GetPropertyItem(orientationId);
+ orient = BitConverter.ToInt16(item.Value, 0);
- orient = BitConverter.ToInt16(item.Value, 0);
+ bitmap.SetPropertyItem(item);
+ }
- dImg.SetPropertyItem(item);
+ var flipType = OrientationToFlipType(orient.ToString());
- }
+ bitmap.RotateFlip(flipType);
+ form.StartPosition = FormStartPosition.CenterScreen;
+ form.ClientSize = bitmap.Size;
+ form.FormBorderStyle = FormBorderStyle.Sizable;
+ form.Icon = Icon.ExtractAssociatedIcon(Application.ExecutablePath);
+
+ using (var pictureBox = new PictureBox())
+ {
+ pictureBox.Dock = DockStyle.Fill;
+ pictureBox.Image = bitmap;
- var x = OrientationToFlipType(orient.ToString());
+ pictureBox.SizeMode = PictureBoxSizeMode.Zoom;
- dImg.RotateFlip(x);
+ form.Controls.Add(pictureBox);
- form.StartPosition = FormStartPosition.CenterScreen;
- form.ClientSize = dImg.Size;
- //form.MinimumSize = new Size(180, 180);
- form.FormBorderStyle = FormBorderStyle.Sizable;
- form.Icon = Icon.ExtractAssociatedIcon(Application.ExecutablePath);
- using (var pb = new PictureBox())
- {
- pb.Dock = DockStyle.Fill;
- pb.Image = dImg;
+ downloadCompletedCallback?.Invoke();
- pb.SizeMode = PictureBoxSizeMode.Zoom;
-
- form.Controls.Add(pb);
-
- downloadCompletedCallback?.Invoke();
-
- form.ShowDialog();
-
- }
-
- //form.Size = dImg.Size; //imgbit
- //form.MinimumSize = new Size(180, 180);
-
- //#region Screen Size-ing
-
- //int width = 0;
- //int height = 0;
- //int targetwidth =
- // (int) Math.Round(System.Windows.SystemParameters.PrimaryScreenWidth / 1.25);
-
-
- ////Querformat
- //if (dImg.Height < dImg.Width)
- //{
-
- // float factor = (float) dImg.Height / targetwidth;
-
- // height = targetwidth;
-
- // width = (int) Math.Round(dImg.Width / factor);
-
- //}
- //else // Hochformat
- //{
- // float factor = (float) dImg.Width / targetwidth;
-
- // width = targetwidth;
-
- // height = (int) Math.Round(dImg.Height / factor);
-
- //}
-
- //if (dImg.Width < targetwidth)
- //{
- // width = dImg.Width;
- // height = dImg.Height;
- //}
-
-
- //int targetheight =
- // (int) Math.Round(System.Windows.SystemParameters.PrimaryScreenHeight / 1.25);
-
-
- ////Querformat
- //if (dImg.Height < dImg.Width)
- //{
-
- // float factor = (float) dImg.Width / targetheight;
-
- // width = targetheight;
-
- // height = (int) Math.Round(dImg.Height / factor);
-
- //}
- //else // Hochformat
- //{
- // float factor = (float) dImg.Height / targetheight;
-
- // height = targetheight;
-
- // width = (int) Math.Round(dImg.Width / factor);
-
- //}
-
- //if (dImg.Height < targetheight)
- //{
- // width = dImg.Width;
- // height = dImg.Height;
- //}
-
-
- //if (width < 150 || height < 150)
- //{
- // width = 150;
- // height = 150;
- //}
-
- //#endregion
-
- //form.MaximumSize = new Size(width, height);
-
-
- //form.FormBorderStyle = FormBorderStyle.Sizable;
-
- //form.MaximizeBox = false;
-
- //form.Text = "ownChat";
- //form.Icon = Icon.ExtractAssociatedIcon(Application.ExecutablePath);
-
- //PictureBox pb = new PictureBox();
- //pb.Dock = DockStyle.Fill;
- //pb.Image = dImg; //imgbit
-
- //pb.SizeMode = PictureBoxSizeMode.CenterImage;
-
- //form.Controls.Add(pb);
- //form.ShowDialog();
+ form.ShowDialog();
}
}
}
-
}
}
catch (Exception edf)
{
- MessageBox.Show("Fehler: " + edf.Message, "Fehler", MessageBoxButton.OK);
+ MessageBox.Show("Fehler: " + edf.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
}
};
- webClient.DownloadDataAsync(new Uri(curItem.OriginalImage));
+ webClient.DownloadDataAsync(new Uri(curItem.OriginalImage));
}
catch (Exception e)
{
- MessageBox.Show("Fehler: " + e.Message, "Fehler", MessageBoxButton.OK);
+ MessageBox.Show("Fehler: " + e.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
}
}
- #endregion
-
- #region Synchronisation Veranlassen für Bewoplaner OwnChat Version
- //sync für alles und jeden
- //public bool DoSync = true;
-
- public bool DoSynchronisation( string apikey, string customerid)
+ public bool DoSynchronisation(string pApiKey, string pCustomerId)
{
try
{
- var endurl = ChatDaten.ServerUrl + "/api/ownchat/sync/schedule/"+apikey+"/" +customerid;
+ var endurl = ChatDaten.ServerUrl + "/api/ownchat/sync/schedule/"+pApiKey+"/" +pCustomerId;
- WebRequest request = WebRequest.Create(endurl);
+ var request = WebRequest.Create(endurl);
request.Credentials = CredentialCache.DefaultCredentials;
request.Proxy = null;
- WebResponse response = request.GetResponse();
+ var response = request.GetResponse();
- // Display the status.
- var statusResponse = ((HttpWebResponse)response).StatusDescription;
-
- string responseFromServer = ReadStream(response);
+ var serverResponse = Utils.ReadStream(response);
var definiti = new { result = "" };
- var jsonDatentyp = JsonConvert.DeserializeAnonymousType(responseFromServer, definiti);
-
+ var jsonDatentyp = JsonConvert.DeserializeAnonymousType(serverResponse, definiti);
switch (jsonDatentyp.result)
{
- 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;
- case "12": MessageBox.Show("Der API-Key ist falsch -> Auth-Error.\nDer Chat wird jetzt geschlossen", "Fehler", MessageBoxButton.OK); return false;//rausschmeißen ?!
- break;
- case "13": MessageBox.Show("Es existiert kein API-Key für die angegebene Kundennummer.\nDer Chat wird jetzt geschlossen", "Fehler", MessageBoxButton.OK); return false;//rausschmeißen ?!
- break;
- case "x": MessageBox.Show("MySQL Error.\nDer Chat wird jetzt geschlossen", "Fehler",MessageBoxButton.OK); return false;//rausschmeißen ?!
- break;
+ case "0":
+ return true;
+ case "11":
+ MessageBox.Show("Kundennummer unbekannt.\nDer Chat wird jetzt geschlossen", "Fehler", MessageBoxButton.OK);
+ return false;
+ case "12":
+ MessageBox.Show("Der API-Key ist falsch -> Auth-Error.\nDer Chat wird jetzt geschlossen", "Fehler", MessageBoxButton.OK);
+ return false;
+ case "13":
+ MessageBox.Show("Es existiert kein API-Key für die angegebene Kundennummer.\nDer Chat wird jetzt geschlossen", "Fehler", MessageBoxButton.OK);
+ return false;
+ case "x":
+ MessageBox.Show("MySQL Error.\nDer Chat wird jetzt geschlossen", "Fehler",MessageBoxButton.OK);
+ return false;
+ default:
+ return false;
}
-
- return false;
}
catch (Exception e)
{
- MessageBox.Show("Die verbindung konnte nicht aufgebaut werden.", "Fehler ", MessageBoxButton.OK);
+ MessageBox.Show("Die Verbindung konnte nicht aufgebaut werden.", "Fehler ", MessageBoxButton.OK);
return false;
}
}
- #endregion
-
- #region Maximal erlaubte File Größe
-
- public long GetMaiximumAllowedFileUploadSize(string apikey,string customerid)
+ public long GetMaiximumAllowedFileUploadSize(string pToken, string pCustomerId)
{
try
{
- var endurl = ChatDaten.ServerUrl + "/api/ownchat/uploadmaxsize";// + apikey + "/" + customerid;
+ var endurl = ChatDaten.ServerUrl + "/api/ownchat/uploadmaxsize";
- WebRequest request = WebRequest.Create(endurl);
- request.Headers["Token"] = apikey;
- request.Headers["CustomerID"] = customerid;
+ var request = WebRequest.Create(endurl);
+ request.Headers[Constants.Token] = pToken;
+ request.Headers[Constants.CustomerId] = pCustomerId;
request.Credentials = CredentialCache.DefaultCredentials;
request.Proxy = null;
- WebResponse response = request.GetResponse();
+ var response = request.GetResponse();
- // Display the status.
- var statusResponse = ((HttpWebResponse)response).StatusDescription;
-
- string responseFromServer = ReadStream(response);
+ var responseFromServer = Utils.ReadStream(response);
var definiti = new { file_upload_max_size = "" };
var jsonDatentyp = JsonConvert.DeserializeAnonymousType(responseFromServer, definiti);
-
return Convert.ToInt64(jsonDatentyp.file_upload_max_size);
}
catch (Exception e)
@@ -1878,45 +1335,28 @@ namespace ChatController.HauptKlassen
}
}
-
- #endregion
-
- #region Neue Gruppen Holen für OwnChatDesktop
public ChatGruppenDaten GruppenAktuallisieren()
{
try
{
var endurl = ChatDaten.ServerUrl + "/api/chat/groups";
- WebRequest request = WebRequest.Create(endurl);
+ var request = WebRequest.Create(endurl);
request.Credentials = CredentialCache.DefaultCredentials;
- request.Headers["Token"] = ChatDaten.AuthToken;
- request.Headers["CustomerID"] = ChatDaten.Kundennummer;
+ request.Headers[Constants.Token] = ChatDaten.AuthToken;
+ request.Headers[Constants.CustomerId] = ChatDaten.Kundennummer;
- // Get the response.
- WebResponse response = request.GetResponse();
-
- // Display the status.
- var statusResponse = ((HttpWebResponse)response).StatusDescription;
-
-
- string responseFromServer = ReadStream(response);
+ var response = request.GetResponse();
+ var serverResponse = Utils.ReadStream(response);
response.Close();
- //verarbeite hier zu json
- if (!responseFromServer.Equals(""))
+
+ if (!string.IsNullOrEmpty(serverResponse))
{
- //################# Deserialisierung mit Json ###############################
- var jsonDaten = JsonConvert.DeserializeObject(responseFromServer);
+ var jsonDaten = JsonConvert.DeserializeObject(serverResponse);
- //_groupconect = jsonDaten;
- //// var serv = jsonDaten[_chatcode].ServerName;
-
- ////MessageBox.Show(responseFromServer);
- //_gruppeholenverbindungsaufbauOK = true;
-
return jsonDaten;
}
return null;
@@ -1928,94 +1368,64 @@ namespace ChatController.HauptKlassen
}
}
- public IOrderedEnumerable GroupklassenAktuallisieren(ChatGruppenDaten chatDaten)
+ public IOrderedEnumerable GroupklassenAktuallisieren(ChatGruppenDaten chatDaten)
{
try
{
- Kontaktliste.Clear();
- foreach (var kontakt in chatDaten.Response)
+ _Contacts.Clear();
+ foreach (var contact in chatDaten.Response)
{
-
- foreach (var value in kontakt.Value)
+ foreach (var value in contact.Value)
{
- //var val = Kontaktliste.Find(item => item.GroupId == value.Oid);
+ var message = "";
+ var timestamp = new DateTime();
- //if (val == null) //was tun wenn der nicht merh drinne ist ?? dann ist das ja auch null
- //{
- string message = "";
- DateTime timestamp = new DateTime();
+ var lastMessage = value.LastMessage;
- var lastMS = value.LastMessage;
-
-
- if (lastMS != null)
+ if (lastMessage?.Text != null)
{
- if (lastMS.Text != null)
- {
- message = lastMS.Text;
- timestamp = DateTime.Parse(lastMS.Timestamp.Date);
- }
+ message = lastMessage.Text;
+ timestamp = DateTime.Parse(lastMessage.Timestamp.Date);
}
- if (message.Equals("") && value.LastMessage != null && !value.LastMessage.File.Equals(""))
+ if (string.IsNullOrEmpty(message) && value.LastMessage != null && !string.IsNullOrEmpty(value.LastMessage.File))
{
message = Path.GetFileName(value.LastMessage.File);
}
long? customerOid = null;
- bool isC = false;
- bool isE = false;
+ var isEmployee = false;
+
foreach (var user in value.Users)
{
- if (user.Oid != ChatDaten.Userid && !String.IsNullOrEmpty(user.Userid_Manage))
+ if (user.Oid != ChatDaten.Userid && !string.IsNullOrEmpty(user.Userid_Manage))
{
if (!user.Is_Employee)
{
- customerOid = Int64.Parse(user.Userid_Manage.Substring(1));
- isC = true;
+ customerOid = long.Parse(user.Userid_Manage.Substring(1));
}
}
}
- if (value.Onlyemployees && value.Users.Length == 2)
+ if (value.OnlyEmployees && value.Users.Length == 2)
{
- isE = true;
+ isEmployee = true;
}
-
- Kontaktliste.Add(new KontaktlistBuilder(value.Name,
- AvatarToImageSourceConverter(value.Avatar,isE,isC),
- message, timestamp, value.Oid, customerOid, value.Onlyemployees, value.Users.Length));
- //}
- //else
- //{
- // //Item Bereits vorhanden
- //}
+
+ _Contacts.Add(new Contact(value.Name, Utils.AvatarToImageSourceConverter(value.Avatar, isEmployee), message, timestamp, value.Oid, customerOid, value.OnlyEmployees, value.Users.Length));
}
}
-
- var sortedKontaktliste = Kontaktliste.OrderByDescending(r => r.TimeStamp);
-
- return sortedKontaktliste;
+ return _Contacts.OrderByDescending(r => r.TimeStamp);
}
catch (Exception e)
{
- MessageBox.Show("Bein sortieren der Aktualisierten Kontakte ist ein Fehler aufgetreten.\nFehler:\n",
- "Fehler", MessageBoxButton.OK);
+ MessageBox.Show("Beim Sortieren der aktualisierten Kontakte ist ein Fehler aufgetreten.", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
return null;
}
-
- //Search Bereich
- //CollectionView view = (CollectionView)CollectionViewSource.GetDefaultView(Clientlist.ItemsSource);
- //view.SortDescriptions.Add(new SortDescription("TimeStamp", ListSortDirection.Descending));
- //// view.SortDescriptions.Add(new SortDescription("StatusType", ListSortDirection.Descending));
- //view.Filter = UserFilter;
}
- #endregion
- #region pruefe letzten Konversations timestamp für design element
-
- public Dictionary PruefeTimeStampsBeiStart(List kontaktliste)
+ public Dictionary PruefeTimeStampsBeiStart(List kontaktliste)
{
try
{
@@ -2077,7 +1487,7 @@ namespace ChatController.HauptKlassen
}
}
- public void SpeichereTimeStampsInDatei( List kontaktliste )
+ public void SpeichereTimeStampsInDatei( List kontaktliste )
{
try
{
@@ -2162,7 +1572,5 @@ namespace ChatController.HauptKlassen
}
return Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
}
-
- #endregion
}
}
diff --git a/ChatController/HauptKlassen/Login.cs b/ChatController/HauptKlassen/Login.cs
index 5620746..3f9d882 100644
--- a/ChatController/HauptKlassen/Login.cs
+++ b/ChatController/HauptKlassen/Login.cs
@@ -1,66 +1,68 @@
using System;
using System.Collections.Generic;
using System.IO;
-using System.Linq;
using System.Net;
using System.Text;
-using System.Threading.Tasks;
using System.Web;
using System.Windows;
+
using ChatController.Klassen;
+using ChatController.LoginKlassen;
+using ChatController.Utilities;
+
using Newtonsoft.Json;
namespace ChatController.HauptKlassen
{
public class Login
{
- private string _url = ""; //"https://bewoplaner.beyondsoft.de/voucher_check.php"; // alt
+ private string _Url = "";
- private string _newUrl = "https://dict.ownchat.de/api/server/resolve/1/"; //https://dict.ownchat.de/api/server/resolve/{type}/{customerid} //type = Diensttyp(1,2,oder 3), customerid = Kudennummer des Kunden
+ private readonly string _NewUrl = "https://dict.ownchat.de/api/server/resolve/1/";
- public string _serverUrl = "";
- private string _authToken = "";
+ public string ServerUrl { get; set; } = "";
+ private string _AuthToken = "";
- private readonly string _benutzername;
- private readonly string _passwort;
- private readonly string _kundennummer;
- private readonly string _chatCode;
- private readonly string _apikey;
+ private readonly string _UserName;
+ private readonly string _Password;
+ private readonly string _Tenant;
+ private readonly string _ChatCode;
+ private readonly string _ApiKey;
- private long? _userid;
+ private long? _UserId;
- private bool _verbindungsaufbauOK = false;
- private bool _ownchatVerbindungsaufbauOK = false;
- private bool _gruppeholenverbindungsaufbauOK = false;
+ private bool _ownchatVerbindungsaufbauOK;
+ private bool _gruppeholenverbindungsaufbauOK;
private AuthentifizierungsDaten _serverconect;
- private UserDaten _angemeldeterUser;
- private ChatGruppenDaten _alleGruppen;
+ private UserDaten _LoggedInUser;
+ private ChatGruppenDaten _AllGroups;
- private bool showMessageBox = true;
+ private readonly bool _ShouldShowMessageBox = true;
- public Login(string kundennummer, string chatCode,string benutzername,string passwort)
+ public Login(string pTenant, string pChatCode, string pUserName, string pPassword)
{
- _kundennummer = kundennummer;
- _chatCode = chatCode;
- _benutzername = benutzername;
- _passwort = passwort;
- _apikey = "0000";//default damit nichts kaput geht
+ _Tenant = pTenant;
+ _ChatCode = pChatCode;
+ _UserName = pUserName;
+ _Password = pPassword;
+ _ApiKey = "0000";//default damit nichts kaput geht
}
- public Login(string kundennummer, string chatCode, string benutzername, string passwort,string apikey)
+
+ public Login(string pTenant, string pChatCode, string pUserName, string pPassword,string pApiKey)
{
- _kundennummer = kundennummer;
- _chatCode = chatCode;
- _benutzername = benutzername;
- _passwort = passwort;
- _apikey = apikey;
+ _Tenant = pTenant;
+ _ChatCode = pChatCode;
+ _UserName = pUserName;
+ _Password = pPassword;
+ _ApiKey = pApiKey;
}
//
- public Login(string kundennummer)
+ public Login(string pTenant)
{
- _kundennummer = kundennummer;
- showMessageBox = false;
+ _Tenant = pTenant;
+ _ShouldShowMessageBox = false;
ServerErmittlung();
}
@@ -69,24 +71,24 @@ namespace ChatController.HauptKlassen
if(ServerErmittlung()){
Dictionary dic = new Dictionary();
- dic.Add("username", _benutzername);
- dic.Add("password", _passwort);
- dic.Add("chatcode",_chatCode);
+ dic.Add("username", _UserName);
+ dic.Add("password", _Password);
+ dic.Add("chatcode",_ChatCode);
VerbindeMitChatServer(dic);
if (_ownchatVerbindungsaufbauOK)
{
- GruppenHolen();
+ GetGroups();
}
if (_gruppeholenverbindungsaufbauOK)
{
- long maxUploadSize = GetMaiximumAllowedFileUploadSize(_authToken,_kundennummer);
+ long maxUploadSize = GetMaiximumAllowedFileUploadSize(_AuthToken,_Tenant);
- ChatDatenUebergabe ubergabe = new ChatDatenUebergabe(_serverconect, _angemeldeterUser, _alleGruppen, _serverUrl, _authToken, _userid, _kundennummer,_apikey, maxUploadSize);
+ ChatDatenUebergabe ubergabe = new ChatDatenUebergabe(_serverconect, _LoggedInUser, _AllGroups, ServerUrl, _AuthToken, _UserId, _Tenant,_ApiKey, maxUploadSize);
return ubergabe;
}
@@ -96,14 +98,13 @@ namespace ChatController.HauptKlassen
public bool ServerErmittlung()
{
- if (_serverUrl.Equals(""))
+ if (string.IsNullOrEmpty(ServerUrl))
{
try
{
+ var serverURl = _NewUrl + _Tenant;
- string serverURl = _newUrl + _kundennummer;
-
- WebRequest request = WebRequest.Create(serverURl);
+ var request = WebRequest.Create(serverURl);
request.Credentials = CredentialCache.DefaultCredentials;
@@ -115,165 +116,145 @@ namespace ChatController.HauptKlassen
}
catch (Exception e)
{
- if (showMessageBox)
+ if (_ShouldShowMessageBox)
{
- MessageBox.Show("Fehler: Es konnte keine Verbindung aufgebaut werden.", "ownChat Fehler",
- MessageBoxButton.OK, MessageBoxImage.Error);
+ MessageBox.Show("Fehler: Es konnte keine Verbindung aufgebaut werden.", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
}
+
return false;
}
- // Display the status.
- var statusResponse = ((HttpWebResponse) response).StatusDescription;
-
- string responseFromServer = Utilities.Utils.ReadStream(response);
+ var responseFromServer = Utils.ReadStream(response);
try
{
- var jsonDatentyp =
- JsonConvert.DeserializeObject(responseFromServer);
+ var jsonDatentyp = JsonConvert.DeserializeObject(responseFromServer);
- if (jsonDatentyp.Status == 1)
+ switch(jsonDatentyp.Status)
{
- if (showMessageBox)
- {
- MessageBox.Show(
- "Fehler: Kundennummer unbekannt.\nBitte überprüfen Sie die Anmeldeinformationen.",
- "ownChat Info", MessageBoxButton.OK, MessageBoxImage.Asterisk);
- }
- return false;
- }
- else if (jsonDatentyp.Status == 2)
- {
- if (showMessageBox)
- {
- MessageBox.Show("Der Diensttyp ist für die angegebene Kundennummer nicht definiert.",
- "ownChat Info",
- MessageBoxButton.OK, MessageBoxImage.Asterisk);
- }
- return false;
- }
- else
- {
- _url = jsonDatentyp.URL;
+ case 1:
+ if (_ShouldShowMessageBox)
+ {
+ MessageBox.Show("Fehler: Kundennummer unbekannt.\nBitte überprüfen Sie die Anmeldeinformationen.", "ownChat Info", MessageBoxButton.OK, MessageBoxImage.Asterisk);
+ }
+
+ return false;
+ case 2:
+ if (_ShouldShowMessageBox)
+ {
+ MessageBox.Show("Der Diensttyp ist für die angegebene Kundennummer nicht definiert.", "ownChat Info", MessageBoxButton.OK, MessageBoxImage.Asterisk);
+ }
+
+ return false;
}
+
+ _Url = jsonDatentyp.Url;
}
catch (Exception eds)
{
try
{
- var jsonDatentyp =
- JsonConvert.DeserializeObject(responseFromServer);
+ var jsonDatentyp = JsonConvert.DeserializeObject(responseFromServer);
- if (jsonDatentyp.Status == 1)
+ switch(jsonDatentyp.Status)
{
- if (showMessageBox)
- {
- MessageBox.Show(
- "Fehler: Kundennummer unbekannt.\nBitte überprüfen Sie die Anmeldeinformationen.",
- "ownChat Info", MessageBoxButton.OK, MessageBoxImage.Asterisk);
- }
- return false;
- }
- else if (jsonDatentyp.Status == 2)
- {
- if (showMessageBox)
- {
- MessageBox.Show(
- "Der Diensttyp ist für die angegebene Kundennummer nicht definiert.",
- "ownChat Info", MessageBoxButton.OK, MessageBoxImage.Asterisk);
- }
- return false;
- }
- else
- {
- _url = jsonDatentyp.URL;
+ case 1:
+ if (_ShouldShowMessageBox)
+ {
+ MessageBox.Show("Fehler: Kundennummer unbekannt.\nBitte überprüfen Sie die Anmeldeinformationen.", "ownChat Info", MessageBoxButton.OK, MessageBoxImage.Asterisk);
+ }
+
+ return false;
+ case 2:
+ if (_ShouldShowMessageBox)
+ {
+ MessageBox.Show("Der Diensttyp ist für die angegebene Kundennummer nicht definiert.", "ownChat Info", MessageBoxButton.OK, MessageBoxImage.Asterisk);
+ }
+
+ return false;
}
+
+ _Url = jsonDatentyp.Url;
}
catch (Exception e)
{
- if (showMessageBox)
+ if (_ShouldShowMessageBox)
{
- MessageBox.Show("Fehler: " + e.Message, "ownChat Fehler", MessageBoxButton.OK,
- MessageBoxImage.Error);
+ MessageBox.Show("Fehler: " + e.Message, "ownChat Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
}
-
}
}
response.Close();
- _serverUrl = _url;
+ ServerUrl = _Url;
return true;
}
catch (Exception e)
{
- if (showMessageBox)
+ if (_ShouldShowMessageBox)
{
- MessageBox.Show("Fehler: " + e.Message, "ownChat Fehler", MessageBoxButton.OK,
- MessageBoxImage.Error);
+ MessageBox.Show("Fehler: " + e.Message, "ownChat Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
}
+
return false;
}
}
- else
- {
- return true;
- }
+
+ return true;
}
private void VerbindeMitChatServer(Dictionary postparameter)
{
- string fehlermeldung = "";
try
{
- var endurl = _url + "/api/user/loginwithchatcode";
+ var endurl = _Url + "/api/user/loginwithchatcode";
- string postdaten = "";
+ var postdaten = "";
- int i = 0;
+ var i = 0;
foreach (var key in postparameter.Keys)
{
postdaten += HttpUtility.UrlEncode(key) + "=" + HttpUtility.UrlEncode(postparameter[key]) + "&";
}
- WebRequest requesten = WebRequest.Create(endurl);
+ var webRequest = WebRequest.Create(endurl);
- requesten.Method = "POST";
- requesten.ContentType = "application/x-www-form-urlencoded";
- requesten.Headers["CustomerID"] = _kundennummer;
+ webRequest.Method = "POST";
+ webRequest.ContentType = "application/x-www-form-urlencoded";
+ webRequest.Headers[Constants.CustomerId] = _Tenant;
- byte[] daten = Encoding.ASCII.GetBytes(postdaten);
+ var daten = Encoding.ASCII.GetBytes(postdaten);
- requesten.ContentLength = daten.Length;
+ webRequest.ContentLength = daten.Length;
- Stream requestStream = requesten.GetRequestStream();
+ var requestStream = webRequest.GetRequestStream();
requestStream.Write(daten, 0, daten.Length);
requestStream.Close();
- HttpWebResponse myHttpWebResponse = (HttpWebResponse)requesten.GetResponse();
+ var myHttpWebResponse = (HttpWebResponse)webRequest.GetResponse();
- Stream responseStream = myHttpWebResponse.GetResponseStream();
+ var responseStream = myHttpWebResponse.GetResponseStream();
- StreamReader myStreamReader = new StreamReader(responseStream, Encoding.Default);
+ var myStreamReader = new StreamReader(responseStream, Encoding.Default);
- string pageContent = myStreamReader.ReadToEnd();
+ var pageContent = myStreamReader.ReadToEnd();
- if (!pageContent.Equals(""))
+ if (!string.IsNullOrEmpty(pageContent))
{
var jsonDaten = JsonConvert.DeserializeObject(pageContent);
- if (jsonDaten.Success == true)
+ if (jsonDaten.Success)
{
foreach (var datev in jsonDaten.Response)
{
- _authToken = datev.Value.Token;
- _userid = datev.Value.Oid;
+ _AuthToken = datev.Value.Token;
+ _UserId = datev.Value.Oid;
}
- _angemeldeterUser = jsonDaten;
+ _LoggedInUser = jsonDaten;
_ownchatVerbindungsaufbauOK = true;
}
@@ -281,21 +262,15 @@ namespace ChatController.HauptKlassen
{
if (jsonDaten.Errors.chatcode_failed != null)
{
- if (showMessageBox)
+ if (_ShouldShowMessageBox)
{
- MessageBox.Show(
- "Fehler: " + jsonDaten.Errors.chatcode_failed[0] +
- "\nBitte überprüfen Sie die Anmeldeinformationen.", "Info", MessageBoxButton.OK,
- MessageBoxImage.Asterisk);
+ MessageBox.Show("Fehler: " + jsonDaten.Errors.chatcode_failed[0] + "\nBitte überprüfen Sie die Anmeldeinformationen.", "Info", MessageBoxButton.OK, MessageBoxImage.Error);
}
}else if (jsonDaten.Errors.login_failed != null)
{
- if (showMessageBox)
+ if (_ShouldShowMessageBox)
{
- MessageBox.Show(
- "Fehler: " + jsonDaten.Errors.login_failed[0] +
- "\nBitte überprüfen Sie die Anmeldeinformationen.", "Info", MessageBoxButton.OK,
- MessageBoxImage.Asterisk);
+ MessageBox.Show("Fehler: " + jsonDaten.Errors.login_failed[0] + "\nBitte überprüfen Sie die Anmeldeinformationen.", "Info", MessageBoxButton.OK, MessageBoxImage.Error);
}
}
@@ -309,95 +284,83 @@ namespace ChatController.HauptKlassen
}
catch (Exception e)
{
- if (showMessageBox)
+ if (_ShouldShowMessageBox)
{
MessageBox.Show("Fehler:" + e.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
}
}
}
- private void GruppenHolen()
+ private void GetGroups()
{
try
{
- var endurl = _url + "/api/chat/groups";
+ var endurl = _Url + Constants.GetChatGroupsUrl;
- WebRequest request = WebRequest.Create(endurl);
+ var request = WebRequest.Create(endurl);
request.Credentials = CredentialCache.DefaultCredentials;
- request.Headers["Token"] = _authToken;
- request.Headers["CustomerID"] = _kundennummer;
+ request.Headers[Constants.Token] = _AuthToken;
+ request.Headers[Constants.CustomerId] = _Tenant;
- using (WebResponse response = request.GetResponse())
+ using (var response = request.GetResponse())
{
+ var serverResponse = Utils.ReadStream(response);
- // Display the status.
- var statusResponse = ((HttpWebResponse) response).StatusDescription;
-
- string responseFromServer = Utilities.Utils.ReadStream(response);
-
- if (!responseFromServer.Equals(""))
+ if (!string.IsNullOrEmpty(serverResponse))
{
- var jsonDaten = JsonConvert.DeserializeObject(responseFromServer);
+ var jsonDaten = JsonConvert.DeserializeObject(serverResponse);
- _alleGruppen = jsonDaten;
+ _AllGroups = jsonDaten;
_gruppeholenverbindungsaufbauOK = true;
}
-
}
}
catch (Exception e)
{
- if (showMessageBox)
+ if (_ShouldShowMessageBox)
{
MessageBox.Show("Fehler: " + e.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
}
}
-
}
#region Maximal erlaubte File Größe
- public long GetMaiximumAllowedFileUploadSize(string token, string customerid)
+ public long GetMaiximumAllowedFileUploadSize(string pToken, string pCustomerId)
{
- long maxsize = 0;
+ long maximumFileSize;
+
try
{
- var endurl = _serverUrl + "/api/ownchat/uploadmaxsize";// + apikey + "/" + customerid;
+ var endurl = ServerUrl + Constants.MaxUploadFileSizeUrl;
- WebRequest request = WebRequest.Create(endurl);
- request.Headers["Token"] = token;
- request.Headers["CustomerID"] = customerid;
+ var request = WebRequest.Create(endurl);
+ request.Headers[Constants.Token] = pToken;
+ request.Headers[Constants.CustomerId] = pCustomerId;
request.Credentials = CredentialCache.DefaultCredentials;
request.Proxy = null;
- using (WebResponse response = request.GetResponse())
+ using (var response = request.GetResponse())
{
-
- // Display the status.
- var statusResponse = ((HttpWebResponse) response).StatusDescription;
-
- string responseFromServer = Utilities.Utils.ReadStream(response);
+ var responseFromServer = Utils.ReadStream(response);
var definiti = new {file_upload_max_size = ""};
var jsonDatentyp = JsonConvert.DeserializeAnonymousType(responseFromServer, definiti);
- maxsize = Convert.ToInt64(jsonDatentyp.file_upload_max_size);
-
+ maximumFileSize = Convert.ToInt64(jsonDatentyp.file_upload_max_size);
}
-
}
catch (Exception e)
{
return 0;
}
- return maxsize;
+ return maximumFileSize;
}
#endregion
-
}
}
diff --git a/ChatController/LoginControl.xaml.cs b/ChatController/LoginControl.xaml.cs
index 59aee19..e981a6d 100644
--- a/ChatController/LoginControl.xaml.cs
+++ b/ChatController/LoginControl.xaml.cs
@@ -1,39 +1,26 @@
using System;
using System.Collections.Generic;
using System.IO;
-using System.Linq;
using System.Net;
-using System.Net.Http;
using System.Reflection;
-using System.Runtime.InteropServices;
using System.Text;
-using System.Threading;
-using System.Threading.Tasks;
using System.Web;
using System.Windows;
-using System.Windows.Data;
-using System.Windows.Documents;
-using System.Windows.Forms;
using System.Windows.Input;
-using System.Windows.Media;
-using System.Windows.Media.Imaging;
-using System.Windows.Navigation;
-using System.Windows.Shapes;
+
using ChatController.HauptKlassen;
using ChatController.Klassen;
+using ChatController.LoginKlassen;
using Newtonsoft.Json;
+
using Cursors = System.Windows.Input.Cursors;
using KeyEventArgs = System.Windows.Input.KeyEventArgs;
using MessageBox = System.Windows.MessageBox;
using Path = System.IO.Path;
-using UserControl = System.Windows.Controls.UserControl;
namespace ChatController
{
- ///
- /// Interaktionslogik für Login.xaml
- ///
- public partial class LoginControl : UserControl
+ public partial class LoginControl
{
public delegate void LoginDelegate(ChatDatenUebergabe cdu);
@@ -55,11 +42,11 @@ namespace ChatController
LeseDateiFallsVorhanden();
//var version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
- lblVersion.Content = String.Format("Version: {0}", _version);
+ lblVersion.Content = $"Version: {_version}";
#if DEBUG
- TextBoxBenutzerName.Text = "JettenL";
- TextBoxPasswort.Password = "Blubb123";
+ TextBoxBenutzerName.Text = "MuellerL";
+ TextBoxPasswort.Password = "12345";
#endif
}
@@ -80,35 +67,21 @@ namespace ChatController
{
try
{
- //TODO Abfrage einführen die prüft ob eine verbindung ueberhaupt hergestellt werde kann | FehlerMeldungen Genauer Definieren
- if (!TextBoxKundennummer.Text.Equals("") && !TextBoxChatCode.Text.Equals("") &&
- !TextBoxBenutzerName.Text.Equals("") && !TextBoxPasswort.Password.Equals(""))
+ //TODO Abfrage einführen, die prüft, ob eine Verbindung überhaupt hergestellt werden kann | Fehlermeldungen genauer definieren
+ if (!TextBoxKundennummer.Text.Equals("") && !TextBoxChatCode.Text.Equals("") && !TextBoxBenutzerName.Text.Equals("") && !TextBoxPasswort.Password.Equals(""))
{
Cursor = Cursors.Wait;
- Login _login = new Login(TextBoxKundennummer.Text, TextBoxChatCode.Text, TextBoxBenutzerName.Text, TextBoxPasswort.Password);
+ var _login = new Login(TextBoxKundennummer.Text, TextBoxChatCode.Text, TextBoxBenutzerName.Text, TextBoxPasswort.Password);
var x = _login.AnmeldevorgangDurchFuehren();
if (OnLogin != null && x != null)
{
AutosetDaten();
- //if (Merken.IsChecked == true)
- //{
- // SpeichereDatenInDatei();
- //}
- //else
- //{
- // LoescheGespeicherteDatei();
- //}
- OnLogin(x);
+ OnLogin?.Invoke(x);
}
- //else
- //{
- // Auskommentiert weil bereits abgefangen
- // MessageBox.Show("Fehler bei der Anmeldung. Bitte überprüfen Sie die Anmeldeinformationen.", "Info", MessageBoxButton.OK, MessageBoxImage.Asterisk);
- //}
Cursor = Cursors.Arrow;
}
diff --git a/ChatController/LoginKlassen/AuthentifizierungsDaten.cs b/ChatController/LoginKlassen/AuthenticationData.cs
similarity index 56%
rename from ChatController/LoginKlassen/AuthentifizierungsDaten.cs
rename to ChatController/LoginKlassen/AuthenticationData.cs
index a7c9dc2..69bd617 100644
--- a/ChatController/LoginKlassen/AuthentifizierungsDaten.cs
+++ b/ChatController/LoginKlassen/AuthenticationData.cs
@@ -1,10 +1,4 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace ChatController.Klassen
+namespace ChatController.LoginKlassen
{
public class AuthentifizierungsDaten
{
@@ -15,13 +9,13 @@ namespace ChatController.Klassen
public class NewAuthentifizierungsDatenTyp1
{
public int Status { get; set; }
- public string URL { get; set; }
+ public string Url { get; set; }
}
public class NewAuthentifizierungsDatenTyp2
{
public int Status { get; set; }
- public string URL { get; set; }
- public int SYNCTYPE { get; set; }
+ public string Url { get; set; }
+ public int SyncType { get; set; }
}
}
diff --git a/ChatController/LoginKlassen/ChatDatenUebergabe.cs b/ChatController/LoginKlassen/ChatDatenUebergabe.cs
index 43eccd4..1c6b06f 100644
--- a/ChatController/LoginKlassen/ChatDatenUebergabe.cs
+++ b/ChatController/LoginKlassen/ChatDatenUebergabe.cs
@@ -1,23 +1,17 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace ChatController.Klassen
+namespace ChatController.LoginKlassen
{
public class ChatDatenUebergabe
{
- private AuthentifizierungsDaten _serverconect { get; set; }
- private UserDaten _angemeldeterUser { get; set; }
- private ChatGruppenDaten _alleGruppen { get; set; }
+ private AuthentifizierungsDaten _serverconect { get; }
+ private UserDaten _angemeldeterUser { get; }
+ private ChatGruppenDaten _alleGruppen { get; }
- private string _serverUrl { get; set; }
- private string _authToken { get; set; }
- private long? _userid { get; set; }
- private string _kundennummer { get; set; }
- private string _apikey { get; set; }
- private long _maxUploadSize { get; set; }
+ private string _ServerUrl { get; }
+ private string _AuthToken { get; }
+ private long? _Userid { get; }
+ private string _Tenant { get; }
+ private string _ApiKey { get; }
+ private long _MaxUploadSize { get; }
public ChatDatenUebergabe(AuthentifizierungsDaten serverConect, UserDaten angemeldeterUser, ChatGruppenDaten alleGruppen, string serverUrl, string authToken, long? userid, string kundennummer, string apikey,long maxUploadSize)
{
@@ -25,120 +19,30 @@ namespace ChatController.Klassen
_angemeldeterUser = angemeldeterUser;
_alleGruppen = alleGruppen;
- _serverUrl = serverUrl;
- _authToken = authToken;
- _userid = userid;
- _kundennummer = kundennummer;
- _apikey = apikey;
- _maxUploadSize = maxUploadSize;
+ _ServerUrl = serverUrl;
+ _AuthToken = authToken;
+ _Userid = userid;
+ _Tenant = kundennummer;
+ _ApiKey = apikey;
+ _MaxUploadSize = maxUploadSize;
}
- public AuthentifizierungsDaten Serverconect
- {
- get
- {
- return _serverconect;
- }
- private set
- {
- _serverconect = value;
- }
- }
+ public AuthentifizierungsDaten Serverconect => _serverconect;
- public UserDaten AngemeldeterUser
- {
- get
- {
- return _angemeldeterUser;
- }
- private set
- {
- _angemeldeterUser = value;
- }
- }
+ public UserDaten AngemeldeterUser => _angemeldeterUser;
- public ChatGruppenDaten AlleGruppen
- {
- get
- {
- return _alleGruppen;
- }
- private set
- {
- _alleGruppen = value;
- }
- }
+ public ChatGruppenDaten AlleGruppen => _alleGruppen;
- public string ServerUrl
- {
- get
- {
- return _serverUrl;
- }
- private set
- {
- _serverUrl = value;
- }
- }
+ public string ServerUrl => _ServerUrl;
- public string AuthToken
- {
- get
- {
- return _authToken;
- }
- private set
- {
- _authToken = value;
- }
- }
+ public string AuthToken => _AuthToken;
- public long? Userid
- {
- get
- {
- return _userid;
- }
- private set
- {
- _userid = value;
- }
- }
+ public long? Userid => _Userid;
+
+ public string Kundennummer => _Tenant;
- public string Kundennummer
- {
- get
- {
- return _kundennummer;
- }
- private set
- {
- _kundennummer = value;
- }
- }
+ public string ApiKey => _ApiKey;
- public string ApiKey
- {
- get
- {
- return _apikey;
- }
- private set
- {
- _apikey = value;
- }
- }
-
- public long MaxUploadSize
- {
- get
- {
- return _maxUploadSize;
- }
- private set
- {
- _maxUploadSize = value;
- }
- }
+ public long MaxUploadSize => _MaxUploadSize;
}
}
diff --git a/ChatController/LoginKlassen/ChatGruppenDaten.cs b/ChatController/LoginKlassen/ChatGruppenDaten.cs
index e35c329..ec51124 100644
--- a/ChatController/LoginKlassen/ChatGruppenDaten.cs
+++ b/ChatController/LoginKlassen/ChatGruppenDaten.cs
@@ -1,10 +1,6 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
+using System.Collections.Generic;
-namespace ChatController.Klassen
+namespace ChatController.LoginKlassen
{
public class ChatGruppenDaten
{
@@ -14,19 +10,18 @@ namespace ChatController.Klassen
public bool Success { get; set; }
}
-
public class GroupInput
{
public long Oid { get; set; }
public string Name { get; set; }
public string Avatar { get; set; }
public string Mobile { get; set; }
- public GroupLastMessage LastMessage { get; set; }
+ public GroupLatestMessage LastMessage { get; set; }
public GroupUsers[] Users { get; set; }
- public bool Onlyemployees { get; set; }
+ public bool OnlyEmployees { get; set; }
}
- public class GroupLastMessage
+ public class GroupLatestMessage
{
public long Id { get; set; }
public string Text { get; set; }
@@ -56,7 +51,7 @@ namespace ChatController.Klassen
public class LastMessageTimeStamp
{
public string Date { get; set; }
- public int TimezoneType { get; set; }
- public string Timezone { get; set; }
+ public int TimeZoneType { get; set; }
+ public string TimeZone { get; set; }
}
}
diff --git a/ChatController/LoginKlassen/UserDaten.cs b/ChatController/LoginKlassen/UserDaten.cs
index 26c0193..97946aa 100644
--- a/ChatController/LoginKlassen/UserDaten.cs
+++ b/ChatController/LoginKlassen/UserDaten.cs
@@ -1,10 +1,6 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
+using System.Collections.Generic;
-namespace ChatController.Klassen
+namespace ChatController.LoginKlassen
{
public class UserDaten
{
diff --git a/ChatController/LoginKlassen/UserMessages.cs b/ChatController/LoginKlassen/UserMessages.cs
index 7620d69..6fc873b 100644
--- a/ChatController/LoginKlassen/UserMessages.cs
+++ b/ChatController/LoginKlassen/UserMessages.cs
@@ -1,12 +1,6 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace ChatController.Klassen
+namespace ChatController.LoginKlassen
{
- class UserMessages
+ public class UserMessages
{
public UserMessageInput Response { get; set; }
public string Message { get; set; }
diff --git a/ChatController/Utilities/Constants.cs b/ChatController/Utilities/Constants.cs
index 5831077..0e3453b 100644
--- a/ChatController/Utilities/Constants.cs
+++ b/ChatController/Utilities/Constants.cs
@@ -26,5 +26,7 @@ namespace ChatController.Utilities
public static readonly string ConfigFile = "ownChat.txt";
public static readonly string CompanyName = "beyondSoft";
public static readonly string ApplicationFolderName = "OwnChat";
+
+ public static readonly int NotificationTimeout = 1500;
}
}
diff --git a/ChatController/Utilities/Utils.cs b/ChatController/Utilities/Utils.cs
index 23bdd59..322a7ed 100644
--- a/ChatController/Utilities/Utils.cs
+++ b/ChatController/Utilities/Utils.cs
@@ -3,6 +3,7 @@ using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Net;
+using System.Windows.Forms;
using System.Windows.Media;
using System.Windows.Media.Imaging;
@@ -10,6 +11,8 @@ namespace ChatController.Utilities
{
public class Utils
{
+ public static NotifyIcon NotifyIcon = new NotifyIcon {Icon = Resource.ownchat_favicon, Visible = true};
+
public static ImageSource AvatarToImageSourceConverter(string pAvatarPath, bool pIsEmployee)
{
return CreateImageSourceFromPath(pAvatarPath, false, pIsEmployee);
diff --git a/PrototypChat/LoginMaske.xaml.cs b/PrototypChat/LoginMaske.xaml.cs
index 07e68bb..f31d2a6 100644
--- a/PrototypChat/LoginMaske.xaml.cs
+++ b/PrototypChat/LoginMaske.xaml.cs
@@ -1,4 +1,4 @@
-using ChatController.Klassen;
+using ChatController.LoginKlassen;
namespace ownChat
{
diff --git a/PrototypChat/MainWindow.xaml.cs b/PrototypChat/MainWindow.xaml.cs
index 8a173c8..23de1fe 100644
--- a/PrototypChat/MainWindow.xaml.cs
+++ b/PrototypChat/MainWindow.xaml.cs
@@ -1,6 +1,7 @@
using System;
using System.Windows;
-using ChatController.Klassen;
+
+using ChatController.LoginKlassen;
using Point = System.Windows.Point;