diff --git a/BeWo/BeWo.csproj b/BeWo/BeWo.csproj
index fde4d544b..3dda2ceac 100644
--- a/BeWo/BeWo.csproj
+++ b/BeWo/BeWo.csproj
@@ -156,12 +156,14 @@
+
3.0
3.0
+
3.5
diff --git a/BeWo/View/ChatServiceEmployee.xaml.cs b/BeWo/View/ChatServiceEmployee.xaml.cs
index cc856e936..9e4f68071 100644
--- a/BeWo/View/ChatServiceEmployee.xaml.cs
+++ b/BeWo/View/ChatServiceEmployee.xaml.cs
@@ -1,11 +1,14 @@
using System;
+using System.Collections.Generic;
using System.Collections.Specialized;
using System.ComponentModel;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Net;
+using System.Text;
using System.Threading;
+using System.Web;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
@@ -25,7 +28,11 @@ using BS.Shared.Extensions;
using BS.Shared;
using BS.Shared.Core;
using ChatController.ChatKlassen;
+using DevExpress.Office.Utils;
+using DevExpress.Pdf;
+using DevExpress.Pdf.Native;
using Microsoft.Win32;
+using Newtonsoft.Json;
namespace BeWo.View
{
@@ -72,9 +79,6 @@ namespace BeWo.View
}
}
-
-
-
private void GenerateCodeClick(object sender, RoutedEventArgs e)
{
if (!GeneratetTexfield.Text.Equals("") && BeWoApp.Tenant != null && BeWoApp.Mandator.Apikey != null)
@@ -202,52 +206,227 @@ namespace BeWo.View
}
}
+ //############################# Anderer Versuch
+ private string ErmittleServerURL(string customerId)
+ {
+ try
+ {
+ string url = "https://dict.ownchat.de/api/server/resolve/1/" + customerId;//customerId; //customerid == kundennummer
+
+ WebRequest request = WebRequest.Create(url);
+
+ request.Credentials = CredentialCache.DefaultCredentials;
+
+ WebResponse response = request.GetResponse();
+
+
+ Stream dataStream = response.GetResponseStream();
+
+ StreamReader reader = new StreamReader(dataStream);
+
+ string responseFromServer = reader.ReadToEnd();
+
+ dataStream.Dispose();
+ reader.Dispose();
+
+ dataStream.Close();
+ reader.Close();
+
+ // string responseFromServer = ReadStreamForChatCode(response);
+
+ var definition = new { status = "", URL = "", SYNCTYPE = "" };
+
+ var jsondaten = JsonConvert.DeserializeAnonymousType(responseFromServer, definition);
+
+ string serverUrl = jsondaten.URL;
+ response.Close();
+
+ return serverUrl;
+ }
+ catch (Exception e)
+ {
+ return null;
+ }
+ }
+
+
+ private int Lekomio(string customerId, string apikey)
+ {
+ try
+ {
+
+
+ int Result = 0;
+
+ string serverUrl = ErmittleServerURL(customerId);
+
+ if (serverUrl == null)
+ {
+ return Result = 11;
+ }
+ else if (serverUrl.Equals(""))
+ {
+ return Result = 11;
+ }
+
+
+ // ab hier switch case
+ var endurl = serverUrl + "/api/ownchat/createpdfmanual/" + apikey + "/" + customerId;
+
+
+ Dictionary postparameter = new Dictionary();
+
+ postparameter.Add("username", "HAns");
+ postparameter.Add("password", "Dito");
+
+ //neu | hinzufügen laut document
+ postparameter.Add("chatcode", "yyAbrams");
+
+ string postdaten = "";
+ int i = 0;
+ foreach (var key in postparameter.Keys)
+ {
+ //hier noch chatcode übergeben
+ postdaten += HttpUtility.UrlEncode(key) + "=" + HttpUtility.UrlEncode(postparameter[key]) + "&";
+
+ }
+
+ WebRequest requesten = WebRequest.Create(endurl);
+
+ requesten.Method = "POST";
+ requesten.ContentType = "application/x-www-form-urlencoded";
+
+ byte[] daten = Encoding.ASCII.GetBytes(postdaten);
+
+ requesten.ContentLength = daten.Length;
+
+ try
+ {
+ Stream requestStream = requesten.GetRequestStream();
+
+ requestStream.Write(daten, 0, daten.Length);
+
+ requestStream.Close();
+
+ }
+ catch (Exception e)
+ {
+ MessageBox.Show("Es konnte keine Verbindung aufgebaut werden.", "Fehler", MessageBoxButton.OK);
+
+ }
+
+ HttpWebResponse response = (HttpWebResponse) requesten.GetResponse();
+
+
+ Stream ahh = new MemoryStream(); // = new Stream();
+
+ //response.GetResponseStream().CopyTo(ahh);
+
+ StreamReader reader = new StreamReader(ahh);
+
+ string responseFromServer = reader.ReadToEnd();
+
+
+ if (responseFromServer.Contains("PDF"))
+ {
+ //################# Ab Hier Funktionsfähiger Code #############################
+ //--------------------- Save In File ------------------------------------
+ SaveFileDialog saveFileDialog1 = new SaveFileDialog();
+
+ saveFileDialog1.Title = "PDF Speichern";
+ saveFileDialog1.FileName = Path.GetFileName("ownChat-Kurzanleitung.pdf");
+ saveFileDialog1.ShowDialog();
+
+ //------------------------------------------------------------------------
+
+
+ Stream reqStr = response.GetResponseStream();
+
+ int bytesProcessed = 0;
+
+ Stream localStream = File.Create(saveFileDialog1.FileName);
+
+ byte[] buffer = new byte[1024];
+ int bytesRead;
+
+ do
+ {
+ // Read data (up to 1k) from the stream
+ bytesRead = reqStr.Read(buffer, 0, buffer.Length);
+
+ // Write the data to the local file
+ localStream.Write(buffer, 0, bytesRead);
+
+ // Increment total bytes processed
+ bytesProcessed += bytesRead;
+
+ } while (bytesRead > 0);
+
+ response.Close();
+ localStream.Close();
+ reqStr.Close();
+
+ Process.Start(saveFileDialog1.FileName);
+
+ return 0;
+
+ //#################################################################################
+ }
+ else
+ {
+ var jsonDatentyp = JsonConvert.DeserializeObject(responseFromServer);
+
+ return jsonDatentyp.Result;
+ }
+ }
+ catch (Exception e)
+ {
+
+ var handout = new PdfChatHandoutDC();
+ handout.Result = 60;
+ handout.File = e.Message;
+
+ return 60;
+ }
+ }
+
private void ZeigePDF_OnClick(object sender, RoutedEventArgs e)
{
StartWaiting();
-
- var handout = ServiceFacade.DoOperationsServiceSync(r => r.GetHandOutPdfForChat(BeWoApp.Tenant, BeWoApp.Mandator.Apikey));
+
+ //var handout = ServiceFacade.DoOperationsServiceSync(r => r.GetHandOutPdfForChat("5473568546", "0b50c09aff87f20d9ced75340e04e5ccaa11dd3e7bcf25e9c4f94dc20d3cbb97"/*BeWoApp.Tenant, BeWoApp.Mandator.Apikey*/));
+ var Result = Lekomio("5473568546", "0b50c09aff87f20d9ced75340e04e5ccaa11dd3e7bcf25e9c4f94dc20d3cbb97"/*BeWoApp.Tenant, BeWoApp.Mandator.Apikey*/);
+
EndWaiting();
- switch (handout.Result)
+ switch (Result)
{
case 0:
-
- using (WebClient wc = new WebClient())
- {
- SaveFileDialog saveFileDialog1 = new SaveFileDialog();
+ // wenn hier dann alles ok
- saveFileDialog1.Title = "PDF Speichern";
- saveFileDialog1.FileName = Path.GetFileName("ownChat-Kurzanleitung.pdf");
- saveFileDialog1.ShowDialog();
-
- wc.DownloadFile(handout.File, saveFileDialog1.FileName);//@"c:\temp\ownChatHandoutEmployee.pdf"
-
- Process.Start(saveFileDialog1.FileName);
- }
break;
case 11:
- MessageBox.Show("Kundennummer unbekannt.", "Fehler", MessageBoxButton.OK);
+ MessageBox.Show("Kundennummer unbekannt.", "Fehler", MessageBoxButton.OK);
break;
case 12:
- MessageBox.Show("Der API-Key ist falsch -> Auth-Error.", "Fehler", MessageBoxButton.OK);
+ MessageBox.Show("Der API-Key ist falsch -> Auth-Error.", "Fehler", MessageBoxButton.OK);
break;
case 13:
- MessageBox.Show("Es existiert kein API-Key für die angegebene Kundennummer.", "Fehler", MessageBoxButton.OK);
+ MessageBox.Show("Es existiert kein API-Key für die angegebene Kundennummer.", "Fehler", MessageBoxButton.OK);
break;
case 40:
- MessageBox.Show("Vorlage nicht gefunden.", "Fehler", MessageBoxButton.OK);
+ MessageBox.Show("Vorlage nicht gefunden.", "Fehler", MessageBoxButton.OK);
break;
case 41:
- MessageBox.Show("Ungültige Custom-Logo-URL.", "Fehler", MessageBoxButton.OK);
+ MessageBox.Show("Ungültige Custom-Logo-URL.", "Fehler", MessageBoxButton.OK);
break;
case 60:
- MessageBox.Show("Fehler: \n"+handout.File, "Fehler", MessageBoxButton.OK);
+ MessageBox.Show("Fehler: \n" + "handout.File", "Fehler", MessageBoxButton.OK);
break;
}
-
+
}
private void RemoveCode_OnClick(object sender, RoutedEventArgs e)
diff --git a/BeWo/View/PasswortAenderungsView.xaml.cs b/BeWo/View/PasswortAenderungsView.xaml.cs
index 198dbb1bd..9452ae557 100644
--- a/BeWo/View/PasswortAenderungsView.xaml.cs
+++ b/BeWo/View/PasswortAenderungsView.xaml.cs
@@ -133,6 +133,14 @@ namespace BeWo.View
string s = NeuesPwBox.Password;
+ //################ Foreach String Char if Kopie and paste was triggered ################
+
+
+
+
+ //--> this block foreach Char
+ //############################
+
if (s.Length < letztespw.Length)
{
retschalter = true;
diff --git a/Service/ServiceImplementations/OperationsServiceImp.cs b/Service/ServiceImplementations/OperationsServiceImp.cs
index 9f09a1121..71a266138 100644
--- a/Service/ServiceImplementations/OperationsServiceImp.cs
+++ b/Service/ServiceImplementations/OperationsServiceImp.cs
@@ -30,6 +30,7 @@ using BS.Shared.DataContracts.Compact;
using BS.Shared.DataContracts.Reports;
using BS.Shared.Extensions;
using BS.Shared.Services;
+using DevExpress.Pdf;
using Newtonsoft.Json;
using Utils = BeWo.Service.Core.Utils;
@@ -3512,14 +3513,13 @@ namespace BeWo.Service.ServiceImplementations
private string ReadStreamForChatCode(WebResponse response)
{
try
- {
+ {
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
-
+
string responseFromServer = reader.ReadToEnd();
-
dataStream.Dispose();
reader.Dispose();
@@ -4592,40 +4592,40 @@ namespace BeWo.Service.ServiceImplementations
#region TestBereich Multipart
- /* Bereich zum Testen Multiform Test gedönse
- using (MultipartFormDataContent multiPartContent = new MultipartFormDataContent())
- {
- Uri requestUri = new Uri(ChatDaten.ServerUrl + "/api/ownchat/createpdfmanual/");
+ //Bereich zum Testen Multiform Test gedönse
+ //using (MultipartFormDataContent multiPartContent = new MultipartFormDataContent())
+ //{
+ // Uri requestUri = new Uri(ChatDaten.ServerUrl + "/api/ownchat/createpdfmanual/");
- //Links Content / Rechts name
- multiPartContent.Add(new StringContent(chatcode+""), "chatcode");
- multiPartContent.Add(new StringContent(login + ""), "login");
- multiPartContent.Add(new StringContent(password + ""), "password");
- multiPartContent.Add(new StringContent("https://support.bewoplaner.de/bewoplaner_logo_big.png"),"custom_logo_url");
+ // Links Content / Rechts name
+ // multiPartContent.Add(new StringContent(chatcode + ""), "chatcode");
+ // multiPartContent.Add(new StringContent(login + ""), "login");
+ // multiPartContent.Add(new StringContent(password + ""), "password");
+ // multiPartContent.Add(new StringContent("https://support.bewoplaner.de/bewoplaner_logo_big.png"), "custom_logo_url");
- httpRequest = new HttpRequestMessage();
- httpRequest.Method = HttpMethod.Post;
- httpRequest.RequestUri = requestUri;
- httpRequest.Content = multiPartContent;
-
- httpRequest.Headers.Add("Token", apikey);
- httpRequest.Headers.Add("CustomerID", customerId);
+ // httpRequest = new HttpRequestMessage();
+ // httpRequest.Method = HttpMethod.Post;
+ // httpRequest.RequestUri = requestUri;
+ // httpRequest.Content = multiPartContent;
+
+ // httpRequest.Headers.Add("Token", apikey);
+ // httpRequest.Headers.Add("CustomerID", customerId);
- HttpResponseMessage httpResponse = null;
+ // HttpResponseMessage httpResponse = null;
- HttpClient httpClient = new HttpClient();
-
- httpResponse = await httpClient.SendAsync(httpRequest, CancellationToken.None).ConfigureAwait(false);
+ // HttpClient httpClient = new HttpClient();
+
+ // httpResponse = await httpClient.SendAsync(httpRequest, CancellationToken.None).ConfigureAwait(false);
- string antwortResponse = await httpResponse.Content.ReadAsStringAsync();
-
- var jsonDatentyp = JsonConvert.DeserializeObject(antwortResponse);
-
- return jsonDatentyp;
- }
- */
+ // string antwortResponse = await httpResponse.Content.ReadAsStringAsync();
+
+ // var jsonDatentyp = JsonConvert.DeserializeObject(antwortResponse);
+
+ // return jsonDatentyp;
+ //}
+
#endregion
#region TestBereich Normal Post
@@ -4665,22 +4665,81 @@ namespace BeWo.Service.ServiceImplementations
#endregion
- //alt get bereich
- WebRequest request = WebRequest.Create(endurl);
- request.Credentials = CredentialCache.DefaultCredentials;
- request.Proxy = null;
+ //############################
+ Dictionary postparameter = new Dictionary();
+
+ postparameter.Add("username", "HAns");
+ postparameter.Add("password", "Dito");
+
+ //neu | hinzufügen laut document
+ postparameter.Add("chatcode", "yyAbrams");
+
+ string postdaten = "";
+ int i = 0;
+ foreach (var key in postparameter.Keys)
+ {
+ //hier noch chatcode übergeben
+ postdaten += HttpUtility.UrlEncode(key) + "=" + HttpUtility.UrlEncode(postparameter[key]) + "&";
+
+ }
+
+ WebRequest requesten = WebRequest.Create(endurl);
+
+ requesten.Method = "POST";
+ requesten.ContentType = "application/x-www-form-urlencoded";
+
+ byte[] daten = Encoding.ASCII.GetBytes(postdaten);
+
+ requesten.ContentLength = daten.Length;
+
+ try
+ {
+ Stream requestStream = requesten.GetRequestStream();
+
+ requestStream.Write(daten, 0, daten.Length);
+
+ requestStream.Close();
+
+ }
+ catch (Exception e)
+ {
+ MessageBox.Show("Es konnte keine Verbindung aufgebaut werden.", "Fehler", MessageBoxButton.OK);
+
+ }
+
+ //response bereich | Verarbeiten
+ HttpWebResponse response = (HttpWebResponse)requesten.GetResponse();
+ //response.ContentType = "application/pdf";
+
+ //######################################################################
+
+ //alt get bereich
+ //WebRequest request = WebRequest.Create(endurl);
+
+ //request.Method = WebRequestMethods.Http.Post;
+
+ //request.Credentials = CredentialCache.DefaultCredentials;
+ //request.Proxy = null;
+
+ //WebResponse response = request.GetResponse();
+
+ using (Stream stream = response.GetResponseStream())
+ {
+ byte[] buffer = new byte[stream.Length];
+ stream.Read(buffer, 0, buffer.Length);
+ File.WriteAllBytes("foo.pdf", buffer);
+ }
- WebResponse response = request.GetResponse();
-
string responseFromServer = ReadStreamForChatCode(response);
if (responseFromServer.Contains("PDF"))
{
PdfChatHandoutDC hd = new PdfChatHandoutDC();
- hd.File = endurl;
+ hd.File = responseFromServer;
hd.Result = 0;
-
+ //hd.TestStream = dataStream;
+
return hd;
}
else
diff --git a/Shared/DataContracts/PdfChatHandoutDC.cs b/Shared/DataContracts/PdfChatHandoutDC.cs
index 6d9a7fa32..7e873fd03 100644
--- a/Shared/DataContracts/PdfChatHandoutDC.cs
+++ b/Shared/DataContracts/PdfChatHandoutDC.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
+using System.IO;
using System.Runtime.Serialization;
namespace BS.Shared.DataContracts
@@ -12,6 +13,6 @@ namespace BS.Shared.DataContracts
[DataMember]
public int Result { get; set; }
-
+
}
}
\ No newline at end of file