diff --git a/BeWo/ServiceProxy/Generated.cs b/BeWo/ServiceProxy/Generated.cs index 741b814b6..8778a9e9b 100644 --- a/BeWo/ServiceProxy/Generated.cs +++ b/BeWo/ServiceProxy/Generated.cs @@ -1225,6 +1225,10 @@ namespace BeWo.ServiceProxy [System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/ICustomerService/GetAllCustomerAppCodesBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")] System.Collections.Generic.List GetAllCustomerAppCodes(long pCustomerOid); + [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/GetChatMedia", ReplyAction="http://tempuri.org/ICustomerService/GetChatMediaResponse")] + [System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/ICustomerService/GetChatMediaBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")] + byte[] GetChatMedia(long chatMediaMessageOid); + [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/ArchiveCustomer", ReplyAction="http://tempuri.org/ICustomerService/ArchiveCustomerResponse")] [System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/ICustomerService/ArchiveCustomerBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")] void ArchiveCustomer(long pOid, long pVersion); @@ -1964,6 +1968,11 @@ namespace BeWo.ServiceProxy return base.Channel.GetAllCustomerAppCodes(pCustomerOid); } + public byte[] GetChatMedia(long chatMediaMessageOid) + { + return base.Channel.GetChatMedia(chatMediaMessageOid); + } + public void ArchiveCustomer(long pOid, long pVersion) { base.Channel.ArchiveCustomer(pOid, pVersion); diff --git a/BeWo/View/ChatView.xaml.cs b/BeWo/View/ChatView.xaml.cs index cd52c76e1..7559649e2 100644 --- a/BeWo/View/ChatView.xaml.cs +++ b/BeWo/View/ChatView.xaml.cs @@ -797,17 +797,39 @@ namespace BeWo.View if (Item2.PictureVisibility == Visibility.Visible) { - SpeichernUnter(1,BildZwischenSpeicher[Item2.UserMessage],Item2.UserMessage); + if (Item2.ChatMessageOid.Value != 0) + { + SpeichernUnter(1,null, Item2.UserMessage, + Item2.ChatMessageOid.Value); + } + else + { + MessageBox.Show("Sie besitzen bereits dieses Bild.", "Info", MessageBoxButton.OK); + } } if (Item2.DokumentVisibility == Visibility.Visible) { - SpeichernUnter(2, DokumentZwischenSpeicher[Item2.UserMessage], Item2.UserMessage); + if(Item2.ChatMessageOid.Value != 0){ + SpeichernUnter(2, null, Item2.UserMessage, Item2.ChatMessageOid.Value); + } + else + { + MessageBox.Show("Sie besitzen bereits dieses Dokument.", "Info", MessageBoxButton.OK); + } } if (Item2.SoundVisibility == Visibility.Visible) - { - SpeichernUnter(3, SoundZwischenSpeicher[Item2.UserMessage], Item2.UserMessage); + { + if (Item2.ChatMessageOid.Value != 0) + { + SpeichernUnter(3,null, Item2.UserMessage, + Item2.ChatMessageOid.Value); + } + else + { + MessageBox.Show("Sie besitzen bereits dieses SoundFile.", "Info", MessageBoxButton.OK); + } } if (Item2.SoundVisibility == Visibility.Collapsed && Item2.DokumentVisibility == Visibility.Collapsed && Item2.PictureVisibility == Visibility.Collapsed) @@ -822,42 +844,53 @@ namespace BeWo.View } } - public void SpeichernUnter(int filterTyp, byte[] datensatz,string dateiname) + public void SpeichernUnter(int filterTyp, byte[] datensatz,string dateiname,long chatmessageoid) { try { - SaveFileDialog saveFileDialog1 = new SaveFileDialog(); - - saveFileDialog1.FileName = dateiname; - - if (filterTyp == 1) // Bilder - { - saveFileDialog1.Filter = "Bilder |*.jpg;*.png;*.jpeg;*.jpe;*.gif;*.bmp"; - saveFileDialog1.Title = "Bild Speichern"; - saveFileDialog1.ShowDialog(); - } - - if (filterTyp == 2) //Office - { - saveFileDialog1.Filter = "Office Dokumente |*.doc;*.xls;*.ppt;*.txt"; - saveFileDialog1.Title = "Dokument Speichern"; - saveFileDialog1.ShowDialog(); - } - - if (filterTyp == 3) // Audio - { - saveFileDialog1.Filter = "Audio Datei|*.wav;*.mp3;*.wma;*.aac;*.ogg;"; - saveFileDialog1.Title = "Audio Speichern"; - saveFileDialog1.ShowDialog(); - } - if (saveFileDialog1.FileName != "") + //lade hier die MEdia Datei runter + datensatz = ServiceFacade.DoCustomerServiceSync(r => r.GetChatMedia(chatmessageoid)); + + if (datensatz != null) { - FileStream fs =(FileStream)saveFileDialog1.OpenFile(); + SaveFileDialog saveFileDialog1 = new SaveFileDialog(); - fs.Write(datensatz, 0, datensatz.Length); + saveFileDialog1.FileName = dateiname; - fs.Close(); + if (filterTyp == 1) // Bilder + { + saveFileDialog1.Filter = "Bilder |*.jpg;*.png;*.jpeg;*.jpe;*.gif;*.bmp"; + saveFileDialog1.Title = "Bild Speichern"; + saveFileDialog1.ShowDialog(); + } + + if (filterTyp == 2) //Office + { + saveFileDialog1.Filter = "Office Dokumente |*.doc;*.xls;*.ppt;*.txt"; + saveFileDialog1.Title = "Dokument Speichern"; + saveFileDialog1.ShowDialog(); + } + + if (filterTyp == 3) // Audio + { + saveFileDialog1.Filter = "Audio Datei|*.wav;*.mp3;*.wma;*.aac;*.ogg;"; + saveFileDialog1.Title = "Audio Speichern"; + saveFileDialog1.ShowDialog(); + } + + if (saveFileDialog1.FileName != "") + { + FileStream fs = (FileStream) saveFileDialog1.OpenFile(); + + fs.Write(datensatz, 0, datensatz.Length); + + fs.Close(); + } + } + else + { + MessageBox.Show("Die Datei wurde nicht gefunden.", "Info", MessageBoxButton.OK); } } catch (Exception e) @@ -1866,15 +1899,15 @@ namespace BeWo.View Chat.Items.Add(new KontakMessageBuilder(BeWoApp.LoggedOnUser.Employee.FirstName, filename, DateTime.Now.ToString(), curItem.EmpfaengerOid, true, false, true, false, - imageSource,null,null,false,null)); + imageSource,null,null,false,null,0)); break; case 2: Chat.Items.Add(new KontakMessageBuilder(BeWoApp.LoggedOnUser.Employee.FirstName, - filename, DateTime.Now.ToString(), curItem.EmpfaengerOid, true, false, false, true, null, file, null, false, null)); + filename, DateTime.Now.ToString(), curItem.EmpfaengerOid, true, false, false, true, null, file, null, false, null,0)); break; case 3: Chat.Items.Add(new KontakMessageBuilder(BeWoApp.LoggedOnUser.Employee.FirstName, - filename, DateTime.Now.ToString(), curItem.EmpfaengerOid, true, true, false, false, null, null, null, false, null)); + filename, DateTime.Now.ToString(), curItem.EmpfaengerOid, true, true, false, false, null, null, null, false, null,0)); break; } Chat.Items.MoveCurrentToLast(); @@ -1985,13 +2018,9 @@ namespace BeWo.View private void OpenDokument_OnClick(object sender, RoutedEventArgs e) - { - //in diesem Bereich die Datei Runterladen - + { var btn = sender as System.Windows.Controls.Button; - - //Process myProcess = new Process(); - + if (btn.Tag != null) { var filename = btn.Tag; @@ -2011,59 +2040,66 @@ namespace BeWo.View var dokarray = (object[]) btn.Tag; string file = dokarray[0].ToString(); - byte[] dokBytes = (byte[]) dokarray[1]; + // byte[] dokBytes = (byte[]) dokarray[1]; + long? chatMessageOid = (long?) dokarray[2]; + //LAde Hier die Nötige Datei Herunter und übergebe diese dem + byte[] dokBytes = ServiceFacade.DoCustomerServiceSync(r => r.GetChatMedia(chatMessageOid.Value)); - string path = @"c:\temp\" + file; + if(dokBytes != null){ + string path = @"c:\temp\" + file; - if (File.Exists(path)) - { - try + if (File.Exists(path)) { - File.Delete(path); + try + { + File.Delete(path); + using (FileStream SourceStream = File.Open(path, FileMode.OpenOrCreate)) + { + SourceStream.Seek(0, SeekOrigin.End); + SourceStream.Write(dokBytes, 0, dokBytes.Length); + } + } + catch (Exception) + { + + } + } + else + { using (FileStream SourceStream = File.Open(path, FileMode.OpenOrCreate)) { SourceStream.Seek(0, SeekOrigin.End); SourceStream.Write(dokBytes, 0, dokBytes.Length); } } - catch (Exception) - { - - } + //Dispatcher.BeginInvoke( + // DispatcherPriority.Normal, + // (Action)(() => + // { + + + // myProcess.StartInfo.FileName = path; + // myProcess.EnableRaisingEvents = true; + // myProcess.Exited += myProcess_Exited; + + // myProcess.Start(); + + // myProcess.WaitForExit(); + + // myProcess.Close(); + //})); + Process.Start(path); + + if(!Speicherpfad.ContainsKey(file)) + Speicherpfad.Add(file,path); + } else { - using (FileStream SourceStream = File.Open(path, FileMode.OpenOrCreate)) - { - SourceStream.Seek(0, SeekOrigin.End); - SourceStream.Write(dokBytes, 0, dokBytes.Length); - } + MessageBox.Show("Die Datei wurde nicht Gefunden","Info",MessageBoxButton.OK); } - - - //Dispatcher.BeginInvoke( - // DispatcherPriority.Normal, - // (Action)(() => - // { - - - // myProcess.StartInfo.FileName = path; - // myProcess.EnableRaisingEvents = true; - // myProcess.Exited += myProcess_Exited; - - // myProcess.Start(); - - // myProcess.WaitForExit(); - - // myProcess.Close(); - //})); - Process.Start(path); - - if(!Speicherpfad.ContainsKey(file)) - Speicherpfad.Add(file,path); - } } } @@ -2272,17 +2308,17 @@ namespace BeWo.View { if (list.SenderPersonOid == senderoid) { - if (list.MediaDatei == null) + if (list.MediaTyp == 0) { Chat.Items.Add(new KontakMessageBuilder(person[0].FirstName, list.ChatText, list.Uhrzeit.ToString(), senderoid, true, false, null)); } else { - if (list.MediaDatei != null && list.MediaTyp == 1) + if (list.MediaTyp == 1) { - var bild = DecodeBild(list.MediaDatei); + var bild = DecodeBild(list.ImageThumpNail); if (!BildZwischenSpeicher.ContainsKey(list.ChatText)) BildZwischenSpeicher.Add(list.ChatText, list.MediaDatei); @@ -2290,8 +2326,8 @@ namespace BeWo.View KontakMessageBuilder builder = new KontakMessageBuilder(BeWoApp.LoggedOnUser.Employee.FirstName, list.ChatText, - list.Uhrzeit.ToString(), senderoid, true, false, false, false, bild, null, - null, true, datenmengen); + list.Uhrzeit.ToString(), senderoid, true, false, true, false, bild, null, + null, false, datenmengen, list.ChatMessagesOid); datenmengen[1] = builder; @@ -2307,7 +2343,7 @@ namespace BeWo.View // Chat.Items.Add(new KontakMessageBuilder(BeWoApp.LoggedOnUser.Employee.FirstName, list.ChatText, list.Uhrzeit.ToString(), senderoid, true, true, false, false, null,null,null)); //} - if (list.MediaDatei != null && list.MediaTyp == 2) + if (list.MediaTyp == 2) { if (!DokumentZwischenSpeicher.ContainsKey(list.ChatText)) DokumentZwischenSpeicher.Add(list.ChatText, list.MediaDatei); @@ -2315,7 +2351,7 @@ namespace BeWo.View KontakMessageBuilder builder = new KontakMessageBuilder(BeWoApp.LoggedOnUser.Employee.FirstName, list.ChatText, list.Uhrzeit.ToString(), senderoid, true, false, false, true, null, - list.ChatText, list.MediaDatei, false, datenmengen); + list.ChatText, null, false, datenmengen, list.ChatMessagesOid); datenmengen[1] = builder; @@ -2325,25 +2361,25 @@ namespace BeWo.View } else { - if (list.MediaDatei == null) + if (list.MediaTyp == 0) { Chat.Items.Add(new KontakMessageBuilder(person[1].FirstName, list.ChatText, list.Uhrzeit.ToString(), empfaengerOid, false, false, null)); } else { - if (list.MediaDatei != null && list.MediaTyp == 1) + if (list.MediaTyp == 1) { - var bild = DecodeBild(list.MediaDatei); + var bild = DecodeBild(list.ImageThumpNail); if (!BildZwischenSpeicher.ContainsKey(list.ChatText)) BildZwischenSpeicher.Add(list.ChatText, list.MediaDatei); KontakMessageBuilder builder = new KontakMessageBuilder(BeWoApp.LoggedOnUser.Employee.FirstName, list.ChatText, - list.Uhrzeit.ToString(), empfaengerOid, false, false, false, false, bild, - null, null, true, datenmengen); + list.Uhrzeit.ToString(), empfaengerOid, false, false, true, false, bild, + null, null, false, datenmengen, list.ChatMessagesOid); datenmengen[1] = builder; @@ -2359,7 +2395,7 @@ namespace BeWo.View // Chat.Items.Add(new KontakMessageBuilder(BeWoApp.LoggedOnUser.Employee.FirstName, list.ChatText, list.Uhrzeit.ToString(), empfaengerOid, true, true, false, false, null,null,null)); //} - if (list.MediaDatei != null && list.MediaTyp == 2) + if (list.MediaTyp == 2) { if (!DokumentZwischenSpeicher.ContainsKey(list.ChatText)) DokumentZwischenSpeicher.Add(list.ChatText, list.MediaDatei); @@ -2368,7 +2404,7 @@ namespace BeWo.View KontakMessageBuilder builder = new KontakMessageBuilder(BeWoApp.LoggedOnUser.Employee.FirstName, list.ChatText, list.Uhrzeit.ToString(), empfaengerOid, false, false, false, true, null, - list.ChatText, list.MediaDatei, false, datenmengen); + list.ChatText, null, false, datenmengen, list.ChatMessagesOid); datenmengen[1] = builder; @@ -2383,17 +2419,17 @@ namespace BeWo.View { if (list.SenderPersonOid == senderoid) { - if (list.MediaDatei == null) + if (list.MediaTyp == 0) { Chat.Items.Add(new KontakMessageBuilder(person[0].FirstName, list.ChatText, list.Uhrzeit.ToString(), senderoid, true, false, null)); } else { - if (list.MediaDatei != null && list.MediaTyp == 1) + if (list.MediaTyp == 1) { - var bild = DecodeBild(list.MediaDatei); + var bild = DecodeBild(list.ImageThumpNail); if (!BildZwischenSpeicher.ContainsKey(list.ChatText)) BildZwischenSpeicher.Add(list.ChatText, list.MediaDatei); @@ -2401,8 +2437,8 @@ namespace BeWo.View KontakMessageBuilder builder = new KontakMessageBuilder(BeWoApp.LoggedOnUser.Employee.FirstName, - list.ChatText, list.Uhrzeit.ToString(), senderoid, true, false, false, - false, bild, null, null, true, datenmengen); + list.ChatText, list.Uhrzeit.ToString(), senderoid, true, false, true, + false, bild, null, null, false, datenmengen, list.ChatMessagesOid); datenmengen[1] = builder; @@ -2417,7 +2453,7 @@ namespace BeWo.View // Chat.Items.Add(new KontakMessageBuilder(BeWoApp.LoggedOnUser.Employee.FirstName, list.ChatText, list.Uhrzeit.ToString(), senderoid, true, true, false, false, null,null,null)); //} - if (list.MediaDatei != null && list.MediaTyp == 2) + if ( list.MediaTyp == 2) { if (!DokumentZwischenSpeicher.ContainsKey(list.ChatText)) DokumentZwischenSpeicher.Add(list.ChatText, list.MediaDatei); @@ -2426,7 +2462,7 @@ namespace BeWo.View KontakMessageBuilder builder = new KontakMessageBuilder(BeWoApp.LoggedOnUser.Employee.FirstName, list.ChatText, list.Uhrzeit.ToString(), senderoid, true, false, false, - true, null, list.ChatText, list.MediaDatei, false, datenmengen); + true, null, list.ChatText, null, false, datenmengen, list.ChatMessagesOid); datenmengen[1] = builder; @@ -2444,25 +2480,25 @@ namespace BeWo.View i++; } - if (list.MediaDatei == null) + if (list.MediaTyp == 0) { Chat.Items.Add(new KontakMessageBuilder(person[1].FirstName, list.ChatText, list.Uhrzeit.ToString(), empfaengerOid, false, false, null)); } else { - if (list.MediaDatei != null && list.MediaTyp == 1) + if (list.MediaTyp == 1) { - var bild = DecodeBild(list.MediaDatei); + var bild = DecodeBild(list.ImageThumpNail); if (!BildZwischenSpeicher.ContainsKey(list.ChatText)) BildZwischenSpeicher.Add(list.ChatText, list.MediaDatei); Chat.Items.Add(new KontakMessageBuilder( BeWoApp.LoggedOnUser.Employee.FirstName, list.ChatText, - list.Uhrzeit.ToString(), empfaengerOid, false, false, false, false, bild, - null, null, false, datenmengen)); + list.Uhrzeit.ToString(), empfaengerOid, false, false, true, false, bild, + null, null, false, datenmengen, list.ChatMessagesOid)); } //if (list.SoundDatei != null) @@ -2473,15 +2509,15 @@ namespace BeWo.View // Chat.Items.Add(new KontakMessageBuilder(BeWoApp.LoggedOnUser.Employee.FirstName, list.ChatText, list.Uhrzeit.ToString(), empfaengerOid, true, true, false, false, null,null,null)); //} - if (list.MediaDatei != null && list.MediaTyp == 2) + if (list.MediaTyp == 2) { if (!DokumentZwischenSpeicher.ContainsKey(list.ChatText)) DokumentZwischenSpeicher.Add(list.ChatText, list.MediaDatei); Chat.Items.Add(new KontakMessageBuilder( BeWoApp.LoggedOnUser.Employee.FirstName, list.ChatText, - list.Uhrzeit.ToString(), empfaengerOid, false, false, false, false, null, - list.ChatText, list.MediaDatei, true, datenmengen)); + list.Uhrzeit.ToString(), empfaengerOid, false, false, false, true, null, + list.ChatText, null, false, datenmengen,list.ChatMessagesOid)); } } } @@ -2566,24 +2602,24 @@ namespace BeWo.View int zahl = (int) x.IndexOf(anzeige.SenderPersonOid.Value); - if (anzeige.MediaDatei == null) + if (anzeige.MediaTyp == 0) { Chat.Items.Add(new KontakMessageBuilder(person[zahl].FirstName, anzeige.ChatText, anzeige.Uhrzeit.ToString(), anzeige.SenderPersonOid.Value, true, false, null)); } else { - if (anzeige.MediaDatei != null && anzeige.MediaTyp == 1) + if (/*anzeige.MediaDatei != null &&*/ anzeige.MediaTyp == 1) { - var bild = DecodeBild(anzeige.MediaDatei); + var bild = DecodeBild(anzeige.ImageThumpNail); if (!BildZwischenSpeicher.ContainsKey(anzeige.ChatText)) BildZwischenSpeicher.Add(anzeige.ChatText, anzeige.MediaDatei); KontakMessageBuilder builder = new KontakMessageBuilder(person[zahl].FirstName, anzeige.ChatText, anzeige.Uhrzeit.ToString(), anzeige.SenderPersonOid.Value, - true, false, false, false, bild, null, null, true, datenmengen); + true, false, true, false, bild, null, null, false, datenmengen, anzeige.ChatMessagesOid); datenmengen[1] = builder; @@ -2599,15 +2635,15 @@ namespace BeWo.View // Chat.Items.Add(new KontakMessageBuilder(person[zahl].FirstName, anzeige.ChatText,anzeige.Uhrzeit.ToString(), anzeige.SenderPersonOid.Value, true, true, false,false, null,null,null)); //} - if (anzeige.MediaDatei != null && anzeige.MediaTyp == 2) + if (anzeige.MediaTyp == 2) { if (!DokumentZwischenSpeicher.ContainsKey(anzeige.ChatText)) DokumentZwischenSpeicher.Add(anzeige.ChatText, anzeige.MediaDatei); KontakMessageBuilder builder = new KontakMessageBuilder(person[zahl].FirstName, anzeige.ChatText, anzeige.Uhrzeit.ToString(), anzeige.SenderPersonOid.Value, - true, false, false, true, null, anzeige.ChatText, anzeige.MediaDatei, false, - datenmengen); + true, false, false, true, null, anzeige.ChatText, null, false, + datenmengen,anzeige.ChatMessagesOid); datenmengen[1] = builder; @@ -2628,17 +2664,17 @@ namespace BeWo.View int zahl = (int) x.IndexOf(anzeige.SenderPersonOid.Value); - if (anzeige.MediaDatei == null) + if (anzeige.MediaTyp == 0) { Chat.Items.Add(new KontakMessageBuilder(person[zahl].FirstName, anzeige.ChatText, anzeige.Uhrzeit.ToString(), anzeige.SenderPersonOid.Value, false, false, null)); } else { - if (anzeige.MediaDatei != null && anzeige.MediaTyp == 1) + if (/*anzeige.MediaDatei != null &&*/ anzeige.MediaTyp == 1) { - var bild = DecodeBild(anzeige.MediaDatei); + var bild = DecodeBild(anzeige.ImageThumpNail); if (!BildZwischenSpeicher.ContainsKey(anzeige.ChatText)) BildZwischenSpeicher.Add(anzeige.ChatText, anzeige.MediaDatei); @@ -2646,7 +2682,7 @@ namespace BeWo.View KontakMessageBuilder builder = new KontakMessageBuilder(person[zahl].FirstName, anzeige.ChatText, anzeige.Uhrzeit.ToString(), anzeige.SenderPersonOid.Value, - false, false, false, false, bild, null, null, true, datenmengen); + false, false, true, false, bild, null, null, false, datenmengen,anzeige.ChatMessagesOid); datenmengen[1] = builder; @@ -2661,15 +2697,15 @@ namespace BeWo.View // Chat.Items.Add(new KontakMessageBuilder(person[zahl].FirstName, anzeige.ChatText,anzeige.Uhrzeit.ToString(), anzeige.SenderPersonOid.Value, false, true, false,false, null,null,null)); //} - if (anzeige.MediaDatei != null && anzeige.MediaTyp == 2) + if (anzeige.MediaTyp == 2) { if (!DokumentZwischenSpeicher.ContainsKey(anzeige.ChatText)) DokumentZwischenSpeicher.Add(anzeige.ChatText, anzeige.MediaDatei); KontakMessageBuilder builder = new KontakMessageBuilder(person[zahl].FirstName, anzeige.ChatText, anzeige.Uhrzeit.ToString(), anzeige.SenderPersonOid.Value, - false, false, false, true, null, anzeige.ChatText, anzeige.MediaDatei, false, - datenmengen); + false, false, false, true, null, anzeige.ChatText, null, false, + datenmengen,anzeige.ChatMessagesOid); datenmengen[1] = builder; @@ -2884,8 +2920,7 @@ namespace BeWo.View Username = username; UserMessage = message; SendTime = sendtime; - MessagePersonOid = messagePersonOid; - + MessagePersonOid = messagePersonOid; if (messagePersonOid == 0 && !loadnext) { @@ -2929,12 +2964,14 @@ namespace BeWo.View } public KontakMessageBuilder(string username, string message, string sendtime, long messagePersonOid, bool isme, - bool isSoundDatei, bool isPicDatei, bool isDokument, ImageSource source, string fulldokpfad, byte[] dokarray,bool isHerunterladen,object[] herunterladbares) + bool isSoundDatei, bool isPicDatei, bool isDokument, ImageSource source, string fulldokpfad, byte[] dokarray,bool isHerunterladen,object[] herunterladbares,long? chatMessageOid) { Username = username; UserMessage = message; SendTime = sendtime; MessagePersonOid = messagePersonOid; + ChatMessageOid = chatMessageOid; + if (isme && messagePersonOid == 0) { @@ -3007,16 +3044,17 @@ namespace BeWo.View //Dokument - object[] array1 = new object[2]; + object[] array1 = new object[3]; - if (fulldokpfad != null && dokarray == null) + if (fulldokpfad != null && chatMessageOid == 0) { Dokpfad = fulldokpfad; } - else if (dokarray != null && fulldokpfad != null) + else if (chatMessageOid > 0 && fulldokpfad != null) { array1[0] = fulldokpfad; array1[1] = dokarray; + array1[2] = chatMessageOid; Dokpfad = array1; } @@ -3057,6 +3095,7 @@ namespace BeWo.View public object Dokpfad { get; private set; } public byte[] SoundArray { get; private set; } + public long? ChatMessageOid { get; private set; } private Visibility _herunterladen; public Visibility Herunterladen diff --git a/BeWo/ViewModel/ChatMediaMessageVM.cs b/BeWo/ViewModel/ChatMediaMessageVM.cs index ec810db2b..483a233e7 100644 --- a/BeWo/ViewModel/ChatMediaMessageVM.cs +++ b/BeWo/ViewModel/ChatMediaMessageVM.cs @@ -70,14 +70,14 @@ namespace BeWo.ViewModel { _chatMessageOid = pDataContract.ChatMessageOid; _imageThumpNail = pDataContract.ImageThumpNail; - _media = pDataContract.Media; + _media = pDataContract.Media; } protected override ChatMediaMessageDC MapToDataContract(ChatMediaMessageDC pDataContract, bool doCommit) { pDataContract.ChatMessageOid = _chatMessageOid; - pDataContract.ImageThumpNail = _imageThumpNail; - pDataContract.Media = _media; + pDataContract.ImageThumpNail = _imageThumpNail; + pDataContract.Media = _media; return pDataContract; } diff --git a/BeWo/ViewModel/ChatMessageVM.cs b/BeWo/ViewModel/ChatMessageVM.cs index bb4a426ac..153c946d5 100644 --- a/BeWo/ViewModel/ChatMessageVM.cs +++ b/BeWo/ViewModel/ChatMessageVM.cs @@ -17,12 +17,16 @@ namespace BeWo.ViewModel public static string PropertyName_MediaDatei = "MediaDatei"; + public static string PropertyName_ImageThumbNail = "ImageThumbNail"; + public static string PropertyName_MediaTyp = "MediaTyp"; private string _ChatText; private byte[] _MediaDatei; + private byte[] _ImageThumbNail; + private int _MediaTyp; private DateTime _Uhrzeit; @@ -82,6 +86,19 @@ namespace BeWo.ViewModel } } + public virtual byte[] ImageThumbNail + { + get { return _ImageThumbNail; } + + set + { + if (AreDifferent(_ImageThumbNail, value)) + { + _ImageThumbNail = value; + } + } + } + public DateTime Uhrzeit { get { return _Uhrzeit; } @@ -205,7 +222,9 @@ namespace BeWo.ViewModel _TeamOid = pDataContract.TeamOid; _MessageId = pDataContract.MessageId; _MediaDatei = pDataContract.MediaDatei; + _ImageThumbNail = pDataContract.ImageThumpNail; _MediaTyp = pDataContract.MediaTyp; + } @@ -220,6 +239,7 @@ namespace BeWo.ViewModel pDataContract.TeamOid = _TeamOid; pDataContract.MessageId = _MessageId; pDataContract.MediaDatei = _MediaDatei; + pDataContract.ImageThumpNail = _ImageThumbNail; pDataContract.MediaTyp = _MediaTyp; return pDataContract; diff --git a/Service/DCEntityMapper/ChatMediaMessageDC_ChatMediaMessage.cs b/Service/DCEntityMapper/ChatMediaMessageDC_ChatMediaMessage.cs index 012d13186..a4c592760 100644 --- a/Service/DCEntityMapper/ChatMediaMessageDC_ChatMediaMessage.cs +++ b/Service/DCEntityMapper/ChatMediaMessageDC_ChatMediaMessage.cs @@ -21,7 +21,7 @@ namespace BeWo.Service.DCEntityMapper { pEntity.ChatMessageOid = pDataContract.ChatMessageOid; pEntity.Media = pDataContract.Media; - pEntity.ImageThumpNail = Utils.ErstelleThumbnail(pDataContract.ImageThumpNail, 200, 200); + pEntity.ImageThumpNail = Utils.ErstelleThumbnail(pDataContract.ImageThumpNail, 100, 100); return pEntity; } diff --git a/Service/ServiceContracts/ICustomerService.cs b/Service/ServiceContracts/ICustomerService.cs index b84de2972..18d475b02 100644 --- a/Service/ServiceContracts/ICustomerService.cs +++ b/Service/ServiceContracts/ICustomerService.cs @@ -620,5 +620,9 @@ namespace BeWo.Service.ServiceContracts [FaultContract(typeof(BeWoFault))] [OperationContract] List GetAllCustomerAppCodes(long pCustomerOid); + + [FaultContract(typeof(BeWoFault))] + [OperationContract] + Byte[] GetChatMedia(long chatMediaMessageOid); } } \ No newline at end of file diff --git a/Service/ServiceImplementations/CustomerServiceImp.cs b/Service/ServiceImplementations/CustomerServiceImp.cs index 3eeb30810..84e4c9ce2 100644 --- a/Service/ServiceImplementations/CustomerServiceImp.cs +++ b/Service/ServiceImplementations/CustomerServiceImp.cs @@ -3190,7 +3190,7 @@ namespace BeWo.Service.ServiceImplementations if (cmm.Count > 0) { - msg.MediaDatei = cmm[0].ImageThumpNail; + msg.ImageThumpNail = cmm[0].ImageThumpNail; } } @@ -3216,7 +3216,7 @@ namespace BeWo.Service.ServiceImplementations if (cmm.Count > 0) { - msg.MediaDatei = cmm[0].ImageThumpNail; + msg.ImageThumpNail = cmm[0].ImageThumpNail; } } @@ -3252,7 +3252,7 @@ namespace BeWo.Service.ServiceImplementations if (cmm.Count > 0) { - msg.MediaDatei = cmm[0].ImageThumpNail; + msg.ImageThumpNail = cmm[0].ImageThumpNail; } } @@ -3270,7 +3270,7 @@ namespace BeWo.Service.ServiceImplementations if (cmm.Count > 0) { - msg.MediaDatei = cmm[0].ImageThumpNail; + msg.ImageThumpNail = cmm[0].ImageThumpNail; } } @@ -3357,6 +3357,31 @@ namespace BeWo.Service.ServiceImplementations { return JsonConvert.SerializeObject(obj, Formatting.Indented, new JsonSerializerSettings { ContractResolver = new ShouldSerializeContractResolver(), ReferenceLoopHandling = ReferenceLoopHandling.Ignore }); } + + public Byte[] GetChatMedia(long chatMediaMessageOid) + { + try + { + var x = DAOFactory.SearchDAO.GetChatMediaMessagesForChatMessage(chatMediaMessageOid); + + var media = MapperFactory.ChatMediaMessagesDC_ChatMediaMessages.MapToNewDCs(x); + + if (media.Count > 0) + { + return media[0].Media; + } + else + { + return null; + } + + } + catch (Exception e) + { + throw Utils.CreateBeWoFaultException(e); + } + } + } internal struct WohnheimbuchungsIntervallStruct diff --git a/Service/ServiceImplementations/OperationsServiceImp.cs b/Service/ServiceImplementations/OperationsServiceImp.cs index aed72996e..c73686c26 100644 --- a/Service/ServiceImplementations/OperationsServiceImp.cs +++ b/Service/ServiceImplementations/OperationsServiceImp.cs @@ -3174,9 +3174,16 @@ namespace BeWo.Service.ServiceImplementations foreach (var items in customercode) { if (activeType == 1) - items.IsChatAktiv = activeType; + { + items.IsChatAktiv = activeType; + // Erstelle hier ein weiteren Code + } else + { items.IsChatAktiv = 0; + //Lösche hier den aktuellen Code + } + } @@ -3206,16 +3213,35 @@ namespace BeWo.Service.ServiceImplementations public string ErzeugeZufallsCode() { - int lenght = 12; + String[] resultArray; + + using (WebClient client = new WebClient()) + { + + byte[] response = client.DownloadData("https://bewoplaner.beyondsoft.de/appvoucher.php?k=1234567890&Action=CREATE&AppType=1&ajfho374873hfklasjf9012z44ublfkhao894zuu2ebmsadvuw48=tzrghvcjgr8t975gjliuoe8s89zdsgjb32h3qae7t"); + + String result = System.Text.Encoding.ASCII.GetString(response); + + + resultArray = result.Split(';'); + } + /* int lenght = 12; const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "abcdefghijklmnopqrstuvwxyz" + "0123456789"; var random = new Random(); String Code = new string(Enumerable.Repeat(chars, lenght) .Select(s => s[random.Next(s.Length)]).ToArray()); + */ - - return Code; + if (resultArray[0].Equals("TRUE")) + { + return resultArray[1]; + } + else + { + return ""; + } } public List FindUnreadChatMessagesForRecipient(long personOid) diff --git a/Service/ServiceImplementations/StreamingServiceImp.cs b/Service/ServiceImplementations/StreamingServiceImp.cs index 1fca2bc57..ae3431ad4 100644 --- a/Service/ServiceImplementations/StreamingServiceImp.cs +++ b/Service/ServiceImplementations/StreamingServiceImp.cs @@ -189,8 +189,6 @@ namespace BeWo.Service.ServiceImplementations }; - - if (istream.teamid != 0) { chatMessage.TeamOid = istream.teamid; @@ -202,16 +200,18 @@ namespace BeWo.Service.ServiceImplementations DAOFactory.GenericDAO.Insert(chatMessage); + byte[] media = BS.Shared.Core.Utils.ReadFully(istream.Stream); byte[] ThImage = null; + if (istream.mediatype == 1) { - ThImage = BS.Shared.Core.Utils.ReadFully(istream.Stream); + ThImage = media; } var chatMediaMessage = new ChatMediaMessage { - Media = BS.Shared.Core.Utils.ReadFully(istream.Stream), - ImageThumpNail = ThImage, + Media = media, + ImageThumpNail = BS.Shared.Core.Utils.ErstelleThumbnail(ThImage, 150, 150), ChatMessageOid = chatMessage.Oid }; @@ -221,7 +221,7 @@ namespace BeWo.Service.ServiceImplementations istream.Stream.Dispose(); var result = MapperFactory.ChatMessagesDC_ChatMessages.MapToNewDC(chatMessage); - result.MediaDatei = null; + result.ImageThumpNail = null; //return new UploadChatResult { ChatMessage = MapperFactory.ChatMessagesDC_ChatMessages.MapToNewDC(chatMessage)}; return new UploadChatResult {ChatMessage = result}; } diff --git a/Shared/DataContracts/ChatMessageDC.cs b/Shared/DataContracts/ChatMessageDC.cs index 3cfd15a27..06e5c8154 100644 --- a/Shared/DataContracts/ChatMessageDC.cs +++ b/Shared/DataContracts/ChatMessageDC.cs @@ -37,7 +37,9 @@ namespace BS.Shared.DataContracts public byte[] MediaDatei { get; set; } [DataMember] - public int MediaTyp { get; set; } - + public int MediaTyp { get; set; } + + [DataMember] + public byte[] ImageThumpNail { get; set; } } } \ No newline at end of file