From 85b1ee34f309ce32b25317a82d87a470280e460d Mon Sep 17 00:00:00 2001 From: Christian Date: Mon, 18 Dec 2017 18:22:13 +0100 Subject: [PATCH] cb --- ChatController/ChatController.csproj | 1 + .../ChatKlassen/AktuellerKontakt.cs | 4 +- .../ChatKlassen/KontaktlistBuilder.cs | 8 +- ChatController/ChatMainControl.xaml.cs | 92 +++- ChatController/Data/OwnChatApi.cs | 110 +++++ ChatController/HauptKlassen/Chat.cs | 423 +++++++++--------- ChatController/HauptKlassen/Login.cs | 58 +-- .../LoginKlassen/ChatDatenUebergabe.cs | 22 +- .../LoginKlassen/ChatGruppenDaten.cs | 2 + 9 files changed, 451 insertions(+), 269 deletions(-) create mode 100644 ChatController/Data/OwnChatApi.cs diff --git a/ChatController/ChatController.csproj b/ChatController/ChatController.csproj index a3bdcbd..2415e60 100644 --- a/ChatController/ChatController.csproj +++ b/ChatController/ChatController.csproj @@ -68,6 +68,7 @@ ChatMainControl.xaml + diff --git a/ChatController/ChatKlassen/AktuellerKontakt.cs b/ChatController/ChatKlassen/AktuellerKontakt.cs index d58cefd..124c65a 100644 --- a/ChatController/ChatKlassen/AktuellerKontakt.cs +++ b/ChatController/ChatKlassen/AktuellerKontakt.cs @@ -15,7 +15,7 @@ namespace ChatController.ChatKlassen public ImageSource Image { get; private set; } public DateTime TimeStamp { get; set; } public long GroupId { get; set; } - public long? CustomerPersonOid { get; set; } + public long? CustomerOid { get; set; } public AktuellerKontakt(KontaktlistBuilder kontakt) @@ -25,7 +25,7 @@ namespace ChatController.ChatKlassen Image = kontakt.Image; TimeStamp = kontakt.TimeStamp; Name = kontakt.Name; - CustomerPersonOid = kontakt.CustomerPersonOid; + CustomerOid = kontakt.CustomerOid; GroupId = kontakt.GroupId; } } diff --git a/ChatController/ChatKlassen/KontaktlistBuilder.cs b/ChatController/ChatKlassen/KontaktlistBuilder.cs index dff80d7..e73fe44 100644 --- a/ChatController/ChatKlassen/KontaktlistBuilder.cs +++ b/ChatController/ChatKlassen/KontaktlistBuilder.cs @@ -106,9 +106,9 @@ namespace ChatController.ChatKlassen public DateTime TimeStamp { get; set; } public long GroupId { get; set; } public long UserId { get; set; } - public long? CustomerPersonOid { get; set; } + public long? CustomerOid { get; set; } - public KontaktlistBuilder(string name, ImageSource image, string lastMs, DateTime timestamp, long groupid,long? customerPersonOid,bool onlyEmployee, int userCount) + public KontaktlistBuilder(string name, ImageSource image, string lastMs, DateTime timestamp, long groupid,long? customerOid, bool onlyEmployee, int userCount) { #if DEBUG @@ -122,14 +122,14 @@ namespace ChatController.ChatKlassen Image = image; TimeStamp = timestamp; GroupId = groupid; - CustomerPersonOid = customerPersonOid; + CustomerOid = customerOid; SetzeGelesen = 1; - if (CustomerPersonOid != null) + if (CustomerOid != null) { _kontaktChatColor = new BrushConverter().ConvertFromString("#3B7799") as SolidColorBrush; }else if (onlyEmployee && userCount > 2) diff --git a/ChatController/ChatMainControl.xaml.cs b/ChatController/ChatMainControl.xaml.cs index 1da2b3e..1082694 100644 --- a/ChatController/ChatMainControl.xaml.cs +++ b/ChatController/ChatMainControl.xaml.cs @@ -54,7 +54,7 @@ namespace ChatController public Thread AlleKontakteThread; public bool AlleNachrichtenThreadBool = true; private double? AlleNachrichtenCount = null; - + private List createdTempFiles = new List(); private Dictionary> menuItemName2Callback = new Dictionary>(); @@ -95,7 +95,7 @@ namespace ChatController { var kontakt = (AktuellerKontakt)AktChatUserList.Items[0]; - if (kontakt.CustomerPersonOid == null) + if (kontakt.CustomerOid == null) { return null; } @@ -177,8 +177,21 @@ namespace ChatController ChatListBox.ItemsSource = x; - ChatListBox.Items.MoveCurrentToLast(); - ChatListBox.ScrollIntoView(ChatListBox.Items.CurrentItem); + //ChatListBox.Items.MoveCurrentToLast(); + //ChatListBox.ScrollIntoView(ChatListBox.Items.CurrentItem); + + if (VisualTreeHelper.GetChildrenCount(ChatListBox) > 0) + { + Border border = (Border)VisualTreeHelper.GetChild(ChatListBox, 0); + ScrollViewer scrollViewer = (ScrollViewer)VisualTreeHelper.GetChild(border, 0); + scrollViewer.ScrollToBottom(); + } + + //if (ChatListBox.Items.Count > 0) + //{ + // ChatListBox.SelectedIndex = ChatListBox.Items.Count - 1; + // ChatListBox.ScrollIntoView(ChatListBox.SelectedItem); + //} ChatListBox.ContextMenu = _chat.ErstelleKontextMenue(); SetContextHandler(); @@ -186,6 +199,8 @@ namespace ChatController HorcheAktivNachNachrichten(); Cursor = Cursors.Arrow; + + disableKontaktNachrichtenThread = false; // EndWaiting(); } @@ -335,7 +350,7 @@ namespace ChatController //prüfe ob dokumentation erlaubt var kontakt = (AktuellerKontakt)AktChatUserList.Items[0]; - if (kontakt.CustomerPersonOid == null && ChatListBox.ContextMenu.Items.Count > 3) + if (kontakt.CustomerOid == null && ChatListBox.ContextMenu.Items.Count > 3) { var contextItems = ChatListBox.ContextMenu.Items; var ContextItemSpeichernUnter = (MenuItem)contextItems[3]; @@ -643,6 +658,8 @@ namespace ChatController var kontakt = (AktuellerKontakt) o; while (true) { + Thread.Sleep(2000); + if (!disableKontaktNachrichtenThread) { _schaueNachMs = _chat.SchaueNachNeuenNachrichten(kontakt); @@ -673,7 +690,7 @@ namespace ChatController { break; } - Thread.Sleep(2000); + } } @@ -785,7 +802,7 @@ namespace ChatController private void Chat_OnMouseDoubleClick(object sender, MouseButtonEventArgs e) { Cursor = Cursors.Wait; - StartWaiting(); + var chatItems = ChatListBox.SelectedItems; if (chatItems.Count > 0) @@ -796,7 +813,8 @@ namespace ChatController if (item != null && item.ImageSources != null) { - _chat.ShowPicture(item); + StartWaiting(); + _chat.ShowPicture(item, EndWaiting); } else if(item != null && item.Dokpfad != null) { @@ -805,12 +823,10 @@ namespace ChatController } } - EndWaiting(); Cursor = Cursors.Arrow; } else { - EndWaiting(); Cursor = Cursors.Arrow; } } @@ -842,25 +858,41 @@ namespace ChatController } private void LoadDokument(string link, String filename) - { - string path = @"c:\temp\" + filename; - - if (!File.Exists(path)) + { + try { - using (WebClient webClient = new WebClient()) - { - webClient.DownloadFile(link, path); - } + StartWaiting(); - if (File.Exists(path)) + string path = Path.Combine(Path.GetTempPath(), filename); + createdTempFiles.Add(path); + if (!File.Exists(path)) + { + using (WebClient webClient = new WebClient()) + { + webClient.DownloadFile(link, path); + } + + if (File.Exists(path)) + { + Process.Start(path); + } + } + else { Process.Start(path); } } - else + catch (Exception e) { - Process.Start(path); - } + + } + finally + { + EndWaiting(); + } + + + } #endregion @@ -1023,5 +1055,21 @@ namespace ChatController } #endregion + + public void DeleteTempFiles() + { + foreach (var file in createdTempFiles) + { + try + { + if (File.Exists(file)) + File.Delete(file); + } + catch (Exception e) + { + //ignore + } + } + } } } diff --git a/ChatController/Data/OwnChatApi.cs b/ChatController/Data/OwnChatApi.cs new file mode 100644 index 0000000..2d01e50 --- /dev/null +++ b/ChatController/Data/OwnChatApi.cs @@ -0,0 +1,110 @@ +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 Newtonsoft.Json; + +namespace ChatController.Data +{ + public class OwnChatApi + { + private static String serverUrl; + private static String apiKey; + private static String tenant; + + public static long GetMaximumAllowedFileUploadSize(string apikey, string customerid) + { + var endurl = serverUrl + "/api/ownchat/uploadmaxsize";// + apikey + "/" + customerid; + + WebRequest request = WebRequest.Create(endurl); + request.Headers["Token"] = apikey; + request.Headers["CustomerID"] = customerid; + + request.Credentials = CredentialCache.DefaultCredentials; + request.Proxy = null; + + using (WebResponse response = request.GetResponse()) + { + string responseFromServer = ReadStream(response); + + var definiti = new {file_upload_max_size = ""}; + + var jsonDatentyp = JsonConvert.DeserializeAnonymousType(responseFromServer, definiti); + + return Convert.ToInt64(jsonDatentyp.file_upload_max_size); + } + + } + + private UserMessages GetMessages(long groupId) + { + + var endurl = serverUrl + "/api/chat/messages?groupid=" + groupId; + + WebRequest request = WebRequest.Create(endurl); + + request.Credentials = CredentialCache.DefaultCredentials; + request.Headers["Token"] = apiKey; + request.Headers["CustomerID"] = tenant; + + using (WebResponse response = request.GetResponse()) + { + + string responseFromServer = ReadStream(response); + + if (!String.IsNullOrEmpty(responseFromServer)) + { + var jsonDaten = JsonConvert.DeserializeObject(responseFromServer); + return jsonDaten; + + } + + } + + return null; + } + + private ChatGruppenDaten GetAllChatGroups() + { + var endurl = serverUrl + "/api/chat/groups"; + + WebRequest request = WebRequest.Create(endurl); + + request.Credentials = CredentialCache.DefaultCredentials; + request.Headers["Token"] = apiKey; + request.Headers["CustomerID"] = tenant; + + using (WebResponse response = request.GetResponse()) + { + string responseFromServer = ReadStream(response); + return JsonConvert.DeserializeObject(responseFromServer); + } + } + + private static string ReadStream(WebResponse response) + { + try + { + using (Stream dataStream = response.GetResponseStream()) + { + using (StreamReader reader = new StreamReader(dataStream)) + { + string responseFromServer = reader.ReadToEnd(); + + return responseFromServer; + } + } + } + catch (Exception e) + { + // MessageBox.Show(e.Message); + return null; + } + } + } +} diff --git a/ChatController/HauptKlassen/Chat.cs b/ChatController/HauptKlassen/Chat.cs index 2c56153..cd3b96b 100644 --- a/ChatController/HauptKlassen/Chat.cs +++ b/ChatController/HauptKlassen/Chat.cs @@ -57,7 +57,7 @@ namespace ChatController.HauptKlassen #region Gruppen In Kontaktliste Wandler public IOrderedEnumerable GroupklassenInChatKontakteUmwandler() { - foreach (var kontakt in ChatDaten.Groupconect.Response) + foreach (var kontakt in ChatDaten.AlleGruppen.Response) { foreach (var value in kontakt.Value) { @@ -92,7 +92,7 @@ namespace ChatController.HauptKlassen message = Path.GetFileName(value.LastMessage.File); } - long? isCustomer = null; + long? customerOid = null; bool isC = false; bool isE = false; foreach (var user in value.Users) @@ -100,9 +100,10 @@ namespace ChatController.HauptKlassen //oid des if (user.Oid != ChatDaten.Userid) { - if (!user.Is_Employee) + if (!user.Is_Employee && !String.IsNullOrEmpty(user.Userid_Manage)) { - isCustomer = user.Oid; + + customerOid = Int64.Parse(user.Userid_Manage.Substring(1)); isC = true; } } @@ -115,7 +116,7 @@ namespace ChatController.HauptKlassen //null steht für employee Kontaktliste.Add(new KontaktlistBuilder(value.Name, AvatarToImageSourceConverter(value.Avatar,isE,isC), - message, timeformated, value.Oid, isCustomer,value.Onlyemployees,value.Users.Length)); + 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)); @@ -335,7 +336,6 @@ namespace ChatController.HauptKlassen bix.UriSource = new Uri(link); bix.CacheOption = BitmapCacheOption.OnDemand; bix.EndInit(); - return bix; } @@ -356,42 +356,40 @@ namespace ChatController.HauptKlassen request.Credentials = CredentialCache.DefaultCredentials; request.Headers["Token"] = ChatDaten.AuthToken; request.Headers["CustomerID"] = ChatDaten.Kundennummer; - request.Proxy = null; - + // Get the response. - WebResponse response = request.GetResponse(); - - // Display the status. - var statusResponse = ((HttpWebResponse)response).StatusDescription; - - - string responseFromServer = ReadStream(response); - - //verarbeite hier zu json - if (!responseFromServer.Equals("")) + using (WebResponse response = request.GetResponse()) { - _userMessages = null; - //################# Deserialisierung mit Json ############################### - var jsonDaten = JsonConvert.DeserializeObject(responseFromServer); + // Display the status. + var statusResponse = ((HttpWebResponse) response).StatusDescription; - _userMessages = jsonDaten; - if (_userMessages.Response.HasMorePages == true) + string responseFromServer = ReadStream(response); + + //verarbeite hier zu json + if (!responseFromServer.Equals("")) { - _nextPage = _userMessages.Response.NextPage; - _hasNextPage = true; + _userMessages = null; + //################# Deserialisierung mit Json ############################### + var jsonDaten = JsonConvert.DeserializeObject(responseFromServer); + + _userMessages = jsonDaten; + + if (_userMessages.Response.HasMorePages == true) + { + _nextPage = _userMessages.Response.NextPage; + _hasNextPage = true; + } + else + { + _hasNextPage = false; + } } else { - _hasNextPage = false; + // MessageBox.Show("Keine Daten Vorhanden."); } } - else - { - // MessageBox.Show("Keine Daten Vorhanden."); - } - - response.Close(); } catch (Exception e) { @@ -549,8 +547,7 @@ namespace ChatController.HauptKlassen request.Credentials = CredentialCache.DefaultCredentials; request.Headers["Token"] = ChatDaten.AuthToken; request.Headers["CustomerID"] = ChatDaten.Kundennummer; - request.Proxy = null; - + // Get the response. WebResponse response = request.GetResponse(); @@ -601,8 +598,6 @@ namespace ChatController.HauptKlassen public bool SchaueNachNeuenNachrichten(AktuellerKontakt kontakt) { - TimeSpan lastTs = DateTime.UtcNow.TimeOfDay; - 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; @@ -615,7 +610,7 @@ namespace ChatController.HauptKlassen if (kontakt != null) { - var newMsCount = SendeTimestamp(kontakt.GroupId, timespan); + var newMsCount = SendOwnChatNewsRequest(kontakt.GroupId, timespan); if (_oldMessageCount == null) { @@ -638,7 +633,7 @@ namespace ChatController.HauptKlassen } } - private double? SendeTimestamp(long groupId,long lastStamp) + private double? SendOwnChatNewsRequest(long groupId, long lastStamp) { try { @@ -649,15 +644,14 @@ namespace ChatController.HauptKlassen request.Credentials = CredentialCache.DefaultCredentials; request.Headers["Token"] = ChatDaten.AuthToken; request.Headers["CustomerID"] = ChatDaten.Kundennummer; - request.Proxy = null; - + // Get the response. WebResponse response = request.GetResponse(); // Display the status. var statusResponse = ((HttpWebResponse)response).StatusDescription; - - + + string responseFromServer = ReadStream(response); var jsonDaten = JsonConvert.DeserializeObject(responseFromServer); @@ -681,7 +675,10 @@ namespace ChatController.HauptKlassen long unixTime = System.Convert.ToInt64(span.TotalSeconds); var x = SendeTimestampForEach(0, unixTime); - + if (x > 0) + { + lastTimeStamp = unixTime; + } return x; } @@ -751,7 +748,7 @@ namespace ChatController.HauptKlassen message = Path.GetFileName(value.LastMessage.File); } - long? isCustomer = null; + long? customerOid = null; bool isC = false; bool isE = false; foreach (var user in value.Users) @@ -759,9 +756,9 @@ namespace ChatController.HauptKlassen //oid des if (user.Oid != ChatDaten.Userid) { - if (!user.Is_Employee) + if (!user.Is_Employee && !String.IsNullOrEmpty(user.Userid_Manage)) { - isCustomer = user.Oid; + customerOid = Int64.Parse(user.Userid_Manage.Substring(1)); isC = true; } @@ -776,7 +773,7 @@ namespace ChatController.HauptKlassen //null steht für employee Kontakt.Add(new KontaktlistBuilder(value.Name, AvatarToImageSourceConverter(value.Avatar,isE,isC), - message, timeformated, value.Oid, isCustomer, value.Onlyemployees, value.Users.Length)); + 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)); @@ -815,7 +812,6 @@ namespace ChatController.HauptKlassen request.Credentials = CredentialCache.DefaultCredentials; request.Headers["Token"] = ChatDaten.AuthToken; request.Headers["CustomerID"] = ChatDaten.Kundennummer; - //((HttpWebRequest) request).KeepAlive = false; // Get the response. WebResponse response = request.GetResponse(); @@ -854,7 +850,7 @@ namespace ChatController.HauptKlassen { string username = ""; - foreach (var daten in ChatDaten.Userconect.Response) + foreach (var daten in ChatDaten.AngemeldeterUser.Response) { username = daten.Value.Firstname + " " + daten.Value.Lastname; } @@ -870,9 +866,7 @@ namespace ChatController.HauptKlassen MessageBox.Show(e.Message, "Fehler", MessageBoxButton.OK); } } - - private HttpWebRequest requesten; - + public async void SendMessage(string message, long groupId) { try @@ -1232,7 +1226,7 @@ namespace ChatController.HauptKlassen } catch (Exception e) { - MessageBox.Show(e.Message, "Fehler"); + //MessageBox.Show(e.Message, "Fehler"); return file; } } @@ -1630,13 +1624,177 @@ namespace ChatController.HauptKlassen } } - public void ShowPicture(ChatMessage curItem) + public void ShowPicture(ChatMessage curItem, Action downloadCompletedCallback) { try { + var webClient = new WebClient(); - webClient.DownloadDataCompleted += DownoaldKomplett; + webClient.DownloadDataCompleted += (s, e) => + { + try + { + + using (Form form = new Form()) + { + using (var ms = new MemoryStream(e.Result)) + { + System.Drawing.Image Img = System.Drawing.Image.FromStream(ms); + + + using (System.Drawing.Bitmap dImg = new System.Drawing.Bitmap(Img)) + { + using (MemoryStream mss = new MemoryStream()) + { + short orient = 0; + int orientationId = 0x0112; + + if (Img.PropertyIdList.Contains(orientationId)) + { + PropertyItem item = Img.GetPropertyItem(orientationId); + + orient = BitConverter.ToInt16(item.Value, 0); + + dImg.SetPropertyItem(item); + + } + + + var x = OrientationToFlipType(orient.ToString()); + + dImg.RotateFlip(x); + + 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; + + 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(); + } + } + } + + } + } + catch (Exception edf) + { + MessageBox.Show("Fehler: " + edf.Message, "Fehler", MessageBoxButton.OK); + } + + }; webClient.DownloadDataAsync(new Uri(curItem.OriginalImage)); + } catch (Exception e) { @@ -1644,149 +1802,6 @@ namespace ChatController.HauptKlassen } } - private void DownoaldKomplett(object sender, DownloadDataCompletedEventArgs e) - { - try - { - using (Form form = new Form()) - { - MemoryStream ms = new MemoryStream(e.Result); - System.Drawing.Image Img = System.Drawing.Image.FromStream(ms); - - - using (System.Drawing.Bitmap dImg = new System.Drawing.Bitmap(Img)) - { - using (MemoryStream mss = new MemoryStream()) - { - short orient = 0; - int orientationId = 0x0112; - - if (Img.PropertyIdList.Contains(orientationId)) - { - PropertyItem item = Img.GetPropertyItem(orientationId); - - orient = BitConverter.ToInt16(item.Value, 0); - - dImg.SetPropertyItem(item); - - } - - - var x = OrientationToFlipType(orient.ToString()); - - dImg.RotateFlip(x); - - - form.StartPosition = FormStartPosition.CenterScreen; - 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(); - } - } - - ms.Dispose(); - ms.Close(); - - } - } - catch (Exception edf) - { - MessageBox.Show("Fehler: " + edf.Message, "Fehler", MessageBoxButton.OK); - } - } - #endregion #region Synchronisation Veranlassen für Bewoplaner OwnChat Version @@ -1850,8 +1865,8 @@ namespace ChatController.HauptKlassen var endurl = ChatDaten.ServerUrl + "/api/ownchat/uploadmaxsize";// + apikey + "/" + customerid; WebRequest request = WebRequest.Create(endurl); - requesten.Headers["Token"] = apikey; - requesten.Headers["CustomerID"] = customerid; + request.Headers["Token"] = apikey; + request.Headers["CustomerID"] = customerid; request.Credentials = CredentialCache.DefaultCredentials; request.Proxy = null; @@ -1960,16 +1975,16 @@ namespace ChatController.HauptKlassen message = Path.GetFileName(value.LastMessage.File); } - long? isCustomer = null; + long? customerOid = null; bool isC = false; bool isE = false; foreach (var user in value.Users) { - if (user.Oid != ChatDaten.Userid) + if (user.Oid != ChatDaten.Userid && !String.IsNullOrEmpty(user.Userid_Manage)) { if (!user.Is_Employee) { - isCustomer = user.Oid; + customerOid = Int64.Parse(user.Userid_Manage.Substring(1)); isC = true; } } @@ -1982,7 +1997,7 @@ namespace ChatController.HauptKlassen Kontaktliste.Add(new KontaktlistBuilder(value.Name, AvatarToImageSourceConverter(value.Avatar,isE,isC), - message, timestamp, value.Oid, isCustomer, value.Onlyemployees, value.Users.Length)); + message, timestamp, value.Oid, customerOid, value.Onlyemployees, value.Users.Length)); //} //else //{ diff --git a/ChatController/HauptKlassen/Login.cs b/ChatController/HauptKlassen/Login.cs index 04ca923..ec2ed52 100644 --- a/ChatController/HauptKlassen/Login.cs +++ b/ChatController/HauptKlassen/Login.cs @@ -34,8 +34,8 @@ namespace ChatController.HauptKlassen private bool _gruppeholenverbindungsaufbauOK = false; private AuthentifizierungsDaten _serverconect; - private UserDaten _userconect; - private ChatGruppenDaten _groupconect; + private UserDaten _angemeldeterUser; + private ChatGruppenDaten _alleGruppen; private bool showMessageBox = true; @@ -86,7 +86,7 @@ namespace ChatController.HauptKlassen long maxUploadSize = GetMaiximumAllowedFileUploadSize(_authToken,_kundennummer); - ChatDatenUebergabe ubergabe = new ChatDatenUebergabe(_serverconect, _userconect, _groupconect, _serverUrl, _authToken, _userid, _kundennummer,_apikey, maxUploadSize); + ChatDatenUebergabe ubergabe = new ChatDatenUebergabe(_serverconect, _angemeldeterUser, _alleGruppen, _serverUrl, _authToken, _userid, _kundennummer,_apikey, maxUploadSize); return ubergabe; } @@ -273,7 +273,7 @@ namespace ChatController.HauptKlassen _userid = datev.Value.Oid; } - _userconect = jsonDaten; + _angemeldeterUser = jsonDaten; _ownchatVerbindungsaufbauOK = true; } @@ -327,24 +327,25 @@ namespace ChatController.HauptKlassen request.Credentials = CredentialCache.DefaultCredentials; request.Headers["Token"] = _authToken; request.Headers["CustomerID"] = _kundennummer; - - WebResponse response = request.GetResponse(); - // Display the status. - var statusResponse = ((HttpWebResponse)response).StatusDescription; - - string responseFromServer = ReadStream(response); - - if (!responseFromServer.Equals("")) + using (WebResponse response = request.GetResponse()) { - var jsonDaten = JsonConvert.DeserializeObject(responseFromServer); - _groupconect = jsonDaten; - - _gruppeholenverbindungsaufbauOK = true; + // Display the status. + var statusResponse = ((HttpWebResponse) response).StatusDescription; + + string responseFromServer = ReadStream(response); + + if (!responseFromServer.Equals("")) + { + var jsonDaten = JsonConvert.DeserializeObject(responseFromServer); + + _alleGruppen = jsonDaten; + + _gruppeholenverbindungsaufbauOK = true; + } + } - - response.Close(); } catch (Exception e) { @@ -386,6 +387,7 @@ namespace ChatController.HauptKlassen public long GetMaiximumAllowedFileUploadSize(string token, string customerid) { + long maxsize = 0; try { var endurl = _serverUrl + "/api/ownchat/uploadmaxsize";// + apikey + "/" + customerid; @@ -397,24 +399,28 @@ namespace ChatController.HauptKlassen request.Credentials = CredentialCache.DefaultCredentials; request.Proxy = null; - WebResponse response = request.GetResponse(); + using (WebResponse response = request.GetResponse()) + { - // Display the status. - var statusResponse = ((HttpWebResponse)response).StatusDescription; + // Display the status. + var statusResponse = ((HttpWebResponse) response).StatusDescription; - string responseFromServer = ReadStream(response); + string responseFromServer = ReadStream(response); - var definiti = new { file_upload_max_size = "" }; + var definiti = new {file_upload_max_size = ""}; - var jsonDatentyp = JsonConvert.DeserializeAnonymousType(responseFromServer, definiti); + var jsonDatentyp = JsonConvert.DeserializeAnonymousType(responseFromServer, definiti); + maxsize = Convert.ToInt64(jsonDatentyp.file_upload_max_size); - - return Convert.ToInt64(jsonDatentyp.file_upload_max_size); + } + } catch (Exception e) { return 0; } + + return maxsize; } #endregion diff --git a/ChatController/LoginKlassen/ChatDatenUebergabe.cs b/ChatController/LoginKlassen/ChatDatenUebergabe.cs index ec0a40b..43eccd4 100644 --- a/ChatController/LoginKlassen/ChatDatenUebergabe.cs +++ b/ChatController/LoginKlassen/ChatDatenUebergabe.cs @@ -9,8 +9,8 @@ namespace ChatController.Klassen public class ChatDatenUebergabe { private AuthentifizierungsDaten _serverconect { get; set; } - private UserDaten _userconect { get; set; } - private ChatGruppenDaten _groupconect { get; set; } + private UserDaten _angemeldeterUser { get; set; } + private ChatGruppenDaten _alleGruppen { get; set; } private string _serverUrl { get; set; } private string _authToken { get; set; } @@ -19,11 +19,11 @@ namespace ChatController.Klassen private string _apikey { get; set; } private long _maxUploadSize { get; set; } - public ChatDatenUebergabe(AuthentifizierungsDaten serverConect, UserDaten userConect, ChatGruppenDaten groupConect, string serverUrl, string authToken, long? userid, string kundennummer, string apikey,long maxUploadSize) + public ChatDatenUebergabe(AuthentifizierungsDaten serverConect, UserDaten angemeldeterUser, ChatGruppenDaten alleGruppen, string serverUrl, string authToken, long? userid, string kundennummer, string apikey,long maxUploadSize) { _serverconect = serverConect; - _userconect = userConect; - _groupconect = groupConect; + _angemeldeterUser = angemeldeterUser; + _alleGruppen = alleGruppen; _serverUrl = serverUrl; _authToken = authToken; @@ -45,27 +45,27 @@ namespace ChatController.Klassen } } - public UserDaten Userconect + public UserDaten AngemeldeterUser { get { - return _userconect; + return _angemeldeterUser; } private set { - _userconect = value; + _angemeldeterUser = value; } } - public ChatGruppenDaten Groupconect + public ChatGruppenDaten AlleGruppen { get { - return _groupconect; + return _alleGruppen; } private set { - _groupconect = value; + _alleGruppen = value; } } diff --git a/ChatController/LoginKlassen/ChatGruppenDaten.cs b/ChatController/LoginKlassen/ChatGruppenDaten.cs index ec78dc9..e35c329 100644 --- a/ChatController/LoginKlassen/ChatGruppenDaten.cs +++ b/ChatController/LoginKlassen/ChatGruppenDaten.cs @@ -36,6 +36,7 @@ namespace ChatController.Klassen public LastMessageTimeStamp Timestamp { get; set; } public long CreatedAt { get; set; } public long UserId { get; set; } + public string UserIdManage { get; set; } public string UserName { get; set; } public string UserPicture { get; set; } public string GroupId { get; set; } @@ -44,6 +45,7 @@ namespace ChatController.Klassen public class GroupUsers { public long Oid { get; set; } + public string Userid_Manage { get; set; } public string Firstname { get; set; } public string Lastname { get; set; } public string Mobile { get; set; }