Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo

# Conflicts:
#	Service/ServiceImplementations/OperationsServiceImp.cs
This commit is contained in:
Christian
2017-11-14 10:46:54 +01:00
49 changed files with 2544 additions and 1900 deletions

View File

@@ -271,11 +271,11 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="View\ChatEmojiView.xaml">
<Page Include="ownChat\ChatEmojiView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="View\ChatView.xaml">
<Page Include="ownChat\ChatView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
@@ -451,15 +451,15 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="View\ChatServiceCustomer.xaml">
<Page Include="ownChat\ChatServiceCustomer.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\ChatServiceEmployee.xaml">
<Page Include="ownChat\ChatServiceEmployee.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\ChatDokumentationsView.xaml">
<Page Include="ownChat\ChatDokumentationsView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
@@ -569,6 +569,7 @@
</Compile>
<Compile Include="MultiLanguage\Markup\TranslateExtension.cs" />
<Compile Include="MultiLanguage\ServiceTranslator.cs" />
<Compile Include="PasswortSecurity\PasswortSicherheit.cs" />
<Compile Include="ProxyLoginView.xaml.cs">
<DependentUpon>ProxyLoginView.xaml</DependentUpon>
</Compile>
@@ -672,6 +673,7 @@
<Compile Include="ViewModel\ArbeitszeitEintragVM.cs" />
<Compile Include="ViewModel\CustomerTokenRelationVM.cs" />
<Compile Include="ViewModel\EmployeeTokenRelationVM.cs" />
<Compile Include="ViewModel\ChatBewoMessageSyncVM.cs" />
<Compile Include="ViewModel\QuittierungsCheckVM.cs" />
<Compile Include="ViewModel\TokenVM.cs" />
<Compile Include="ViewModel\ListViewModel\ArbeitszeitListVM.cs" />
@@ -737,10 +739,10 @@
<Compile Include="View\BeWoWindow.xaml.cs">
<DependentUpon>BeWoWindow.xaml</DependentUpon>
</Compile>
<Compile Include="View\ChatEmojiView.xaml.cs">
<Compile Include="ownChat\ChatEmojiView.xaml.cs">
<DependentUpon>ChatEmojiView.xaml</DependentUpon>
</Compile>
<Compile Include="View\ChatView.xaml.cs">
<Compile Include="ownChat\ChatView.xaml.cs">
<DependentUpon>ChatView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Controls\TextModuleTreeViewControl.xaml.cs">
@@ -872,13 +874,13 @@
<Compile Include="View\Detail\TextModuleView.xaml.cs">
<DependentUpon>TextModuleView.xaml</DependentUpon>
</Compile>
<Compile Include="View\ChatServiceCustomer.xaml.cs">
<Compile Include="ownChat\ChatServiceCustomer.xaml.cs">
<DependentUpon>ChatServiceCustomer.xaml</DependentUpon>
</Compile>
<Compile Include="View\ChatServiceEmployee.xaml.cs">
<Compile Include="ownChat\ChatServiceEmployee.xaml.cs">
<DependentUpon>ChatServiceEmployee.xaml</DependentUpon>
</Compile>
<Compile Include="View\ChatDokumentationsView.xaml.cs">
<Compile Include="ownChat\ChatDokumentationsView.xaml.cs">
<DependentUpon>ChatDokumentationsView.xaml</DependentUpon>
</Compile>
<Compile Include="View\EmployeeArbeitszeitView.xaml.cs">
@@ -1980,7 +1982,7 @@
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Chat\ChatController\ChatController.csproj">
<ProjectReference Include="..\..\..\Chat\ChatController\ChatController.csproj">
<Project>{8a83c4dc-a0b1-4a51-ae1d-366d7a05b298}</Project>
<Name>ChatController</Name>
</ProjectReference>
@@ -2535,6 +2537,7 @@
<ItemGroup>
<Resource Include="Ressources\Icons\DocumentWithAdd2.png" />
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PostBuildEvent>

View File

@@ -680,8 +680,10 @@ namespace BeWo
SetSettingValue(SettingsType.ApplicationSettings, "LastSelectedServiceRecordTimeInterval", ((int) _AppSettings.LastSelectedServiceRecordTimeInterval).ToString());
SetSettingValue(SettingsType.ApplicationSettings, "ShowAllClients", _AppSettings.ShowAllClients ? "1" : "0");
SetSettingValue(SettingsType.ApplicationSettings, "ShowOnlyMySupportConcepts", _AppSettings.ShowOnlyMySupportConcepts ? "1" : "0");
SetSettingValue(SettingsType.ApplicationSettings, "ShowOnlyMyClients", _AppSettings.ShowOnlyMyClients ? "1" : "0");
SetSettingValue(SettingsType.ApplicationSettings, "ShowExpiredSupportConcepts", _AppSettings.ShowExpiredSupportConcepts ? "1" : "0");
SetSettingValue(SettingsType.ApplicationSettings, "ShowOnlyTeamSupportConcepts", _AppSettings.ShowOnlyTeamSupportConcepts ? "1" : "0");
SetSettingValue(SettingsType.ApplicationSettings, "ShowOnlyMyClients", _AppSettings.ShowOnlyMyClients ? "1" : "0");
SetSettingValue(SettingsType.ApplicationSettings, "ShowOnlyTeamClients", _AppSettings.ShowOnlyTeamClients ? "1" : "0");
SetSettingValue(SettingsType.ApplicationSettings, "ShowExpiredSupportConcepts", _AppSettings.ShowExpiredSupportConcepts ? "1" : "0");
SetSettingValue(SettingsType.ApplicationSettings, "ShowServiceRecordGridControl", _AppSettings.ShowServiceRecordGridControl ? "1" : "0");
SetSettingValue(SettingsType.ApplicationSettings, "StartupPanelMaximized", _AppSettings.StartupPanelMaximized);
SetSettingValue(SettingsType.ApplicationSettings, "HideServiceRecordInsertedByAndInsertedOn", _AppSettings.HideServiceRecordInsertedByAndInsertedOn ? "1" : "0");
@@ -809,10 +811,16 @@ namespace BeWo
val = GetSettingValue(SettingsType.ApplicationSettings, "ShowOnlyMySupportConcepts");
_AppSettings.ShowOnlyMySupportConcepts = val != "0";
val = GetSettingValue(SettingsType.ApplicationSettings, "ShowOnlyMyClients");
val = GetSettingValue(SettingsType.ApplicationSettings, "ShowOnlyTeamSupportConcepts");
_AppSettings.ShowOnlyTeamSupportConcepts = val != "0";
val = GetSettingValue(SettingsType.ApplicationSettings, "ShowOnlyMyClients");
_AppSettings.ShowOnlyMyClients = val == "1";
val = GetSettingValue(SettingsType.ApplicationSettings, "ShowServiceRecordGridControl");
val = GetSettingValue(SettingsType.ApplicationSettings, "ShowOnlyTeamClients");
_AppSettings.ShowOnlyTeamClients = val == "1";
val = GetSettingValue(SettingsType.ApplicationSettings, "ShowServiceRecordGridControl");
_AppSettings.ShowServiceRecordGridControl = val == "1";
val = GetSettingValue(SettingsType.ApplicationSettings, "ShowExpiredSupportConcepts");

View File

@@ -43,6 +43,8 @@ using Image = System.Windows.Controls.Image;
using MessageBox = System.Windows.MessageBox;
using Panel = System.Windows.Controls.Panel;
using System.Windows.Media;
using BeWo.ownChat;
using BeWo.PasswortSecurity;
using DevExpress.Xpf.Bars;
using DevExpress.Xpf.DocumentViewer;
using DevExpress.Xpf.Printing.PreviewControl.Bars;
@@ -1861,75 +1863,12 @@ namespace BeWo.Core
BeWoApp.MainControl.EndWaiting();
}
public static PasswortSecurityStrength CheckPasswordSecurity(string paswd)
{
const string zahlen = "0123456789";
const string grossBuchstaben = "ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜẞ";
const string kleinBuchstaben = "abcdefghijklmnopqrstuvwxyzäöüß";
const string sonderzeichenLevel1 = "\\\"\'µ@€!&/()=?+#*";
const string sonderzeichenLevel2 = ",.-;:_><|§$%'{[]}´`^°~²³";
PasswortSicherheit pwS = new PasswortSicherheit();
var punkte = 0;
if (paswd.Any(x => grossBuchstaben.Contains(x)))
{
punkte++;
}
if (paswd.Any(x => kleinBuchstaben.Contains(x)))
{
punkte++;
}
if (paswd.Any(x => zahlen.Contains(x)))
{
punkte++;
}
if (paswd.Any(x => sonderzeichenLevel1.Contains(x)))
{
punkte++;
}
if (paswd.Any(x => sonderzeichenLevel2.Contains(x)))
{
punkte++;
}
//passwortlänge
if (paswd.Length >= 4 && paswd.Length < 7)
{
punkte += 1;
}
if (paswd.Length >= 7 && paswd.Length < 10)
{
punkte += 2;
}
if (paswd.Length >= 10 && paswd.Length < 16)
{
punkte += 3;
}
if (paswd.Length >= 16)
{
punkte += 4;
}
//return rückgabe schwach mittel stark
if (punkte > 7)
{
return PasswortSecurityStrength.Stark;
}
if (punkte > 5 && punkte <= 7)
{
return PasswortSecurityStrength.Mittelmass;
}
return PasswortSecurityStrength.Schwach;
return pwS.PasswortSecurityStaerke(paswd);
}
public static void ShowImageForm(ImageSource source)

View File

@@ -20,6 +20,8 @@ namespace BeWo.Core.Config
private bool mShowOnlyMySupportConcepts = true;
private bool mShowOnlyTeamSupportConcepts = true;
private WindowStateType mWindowStateType = WindowStateType.Default;
private ServiceRecordTimeInterval mLastSelectedServiceRecordTimeInterval = ServiceRecordTimeInterval.All;
@@ -148,6 +150,21 @@ namespace BeWo.Core.Config
}
}
private bool _showOnlyTeamClients;
public bool ShowOnlyTeamClients
{
get { return _showOnlyTeamClients; }
set
{
if (_showOnlyTeamClients != value)
{
_showOnlyTeamClients = value;
IsDirty = true;
}
}
}
private bool _showServiceRecordGridControl;
public bool ShowServiceRecordGridControl
@@ -179,6 +196,20 @@ namespace BeWo.Core.Config
}
}
public bool ShowOnlyTeamSupportConcepts
{
get { return mShowOnlyTeamSupportConcepts; }
set
{
if (mShowOnlyTeamSupportConcepts != value)
{
mShowOnlyTeamSupportConcepts = value;
IsDirty = true;
}
}
}
public bool ZeigeNurMeineTermine
{
get { return mZeigeNurMeineTermine; }

View File

@@ -0,0 +1,404 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using BS.Shared;
using BS.Shared.Extensions;
namespace BeWo.PasswortSecurity
{
class PasswortSicherheit
{
#region Variablen
private const string zahlen = "0123456789";
private const string grossBuchstaben = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
private const string kleinBuchstaben = "abcdefghijklmnopqrstuvwxyz";
private const string grossBuchstabenSonderLevel = "ÄÖÜ";
private const string kleinBuchstabenSonderLevel = "äöüß";
private const string sonderzeichenLevel1 = "\\\"\'µ@€!";
private const string sonderzeichenLevel2 = "&/()=?+#*";
private const string sonderzeichenLevel3 = ",.-;:_><|";
private const string sonderzeichenLevel4 = "§$%'{[]}´";
private const string sonderzeichenLevel5 = "`^°~²³";
private string letztespw = "";
private bool retschalter = false;
private int distanz = 0;
int score = 0;
int letzterwert = 0;
bool schalter = false;
List<int> letztewerte = new List<int>();
#endregion
#region Passwort Stärke Ermitteln und Anzeigen
public Label ErmittleUndZeigePasswortStaerke(string s,Label lblPwAnzeige)
{
if (!s.IsNullOrEmpty())
{
string sx = "";
int i = -1;
foreach (var item in s)
{
sx += item.ToString();
if (sx.Length < letztespw.Length)
{
retschalter = true;
distanz = letztespw.Length - sx.Length;
}
if (!letztespw.Equals(sx))
letztespw = sx;
i = PasswortStaerkeErmittler(sx);
}
return ZeigePwStaerke(i, lblPwAnzeige);
}
else
{
score = 0;
letzterwert = 0;
return ZeigePwStaerke(-1, lblPwAnzeige);
}
}
private int PasswortStaerkeErmittler(string neuesPwBox)
{
int i = 0;
letzterwert = 0;
//############### Score System ############
if (retschalter == true)
{
if (distanz == 1)
{
score -= letztewerte.Last();
letztewerte.RemoveAt(letztewerte.Count - 1);
}
else
{
for (int s = 0; s < distanz; s++)
{
score -= letztewerte.Last();
letztewerte.RemoveAt(letztewerte.Count - 1);
}
}
retschalter = false;
//letzterwert = 0;
}
else
{
//Passwort Längen Bonus Punkte
//hier npwb gegen text austauschen und schauen wie es funktioniert
if (neuesPwBox.Length >= 6 && neuesPwBox.Length < 9)
{
score += 1;
letzterwert = 1;
schalter = true;
}
if (neuesPwBox.Length >= 9 && neuesPwBox.Length < 12)
{
score += 2;
letzterwert = 2;
schalter = true;
}
if (neuesPwBox.Length >= 12 && neuesPwBox.Length < 18)
{
score += 3;
letzterwert = 3;
schalter = true;
}
if (neuesPwBox.Length >= 18)
{
score += 4;
letzterwert = 4;
schalter = true;
}
//Zahlen und Buchstaben
if (neuesPwBox.Any(x => zahlen.Contains(x)))
{
score += 3;
if (schalter == true)
letzterwert += 3;
else
letzterwert = 3;
}
if (neuesPwBox.Any(x => grossBuchstaben.Contains(x)))
{
score += 3;
if (schalter == true)
letzterwert += 3;
else
letzterwert = 3;
}
if (neuesPwBox.Any(x => grossBuchstabenSonderLevel.Contains(x)))
{
score += 2;
if (schalter == true)
letzterwert += 2;
else
letzterwert = 2;
}
if (neuesPwBox.Any(x => kleinBuchstaben.Contains(x)))
{
score += 2;
if (schalter == true)
letzterwert += 2;
else
letzterwert = 2;
}
if (neuesPwBox.Any(x => kleinBuchstabenSonderLevel.Contains(x)))
{
score += 2;
if (schalter == true)
letzterwert += 2;
else
letzterwert = 2;
}
// Sonderzeichen
if (neuesPwBox.Any(x => sonderzeichenLevel1.Contains(x)))
{
score += 4;
if (schalter == true)
letzterwert += 4;
else
letzterwert = 4;
}
if (neuesPwBox.Any(x => sonderzeichenLevel2.Contains(x)))
{
score += 4;
if (schalter == true)
letzterwert += 4;
else
letzterwert = 4;
}
if (neuesPwBox.Any(x => sonderzeichenLevel3.Contains(x)))
{
score += 4;
if (schalter == true)
letzterwert += 4;
else
letzterwert = 4;
}
if (neuesPwBox.Any(x => sonderzeichenLevel4.Contains(x)))
{
score += 4;
if (schalter == true)
letzterwert += 4;
else
letzterwert = 4;
}
if (neuesPwBox.Any(x => sonderzeichenLevel5.Contains(x)))
{
score += 4;
if (schalter == true)
letzterwert += 4;
else
letzterwert = 4;
}
letztewerte.Add(letzterwert);
}
//#########################################
// ########################################### PasswortStärke Bereich ##########################
//Sehr Schwach
if (score <= 15)
{
i = 0;
}
//Schwach
if (score >= 16 && score <= 55)
{
i = 1;
}
//Mittelmäßig
if (score >= 56 && score <= 115)
{
i = 2;
}
//Stark
if (score >= 116 && score <= 155)
{
i = 3;
}
//Sehr Stark
if (score >= 156)
{
i = 4;
}
return i;
}
private Label ZeigePwStaerke(int i, Label passwortprüfer)
{
switch (i)
{
case -1:
passwortprüfer.Visibility = Visibility.Hidden;
passwortprüfer.Content = "";
break;
case 0:
passwortprüfer.Visibility = Visibility.Visible;
passwortprüfer.Foreground = new SolidColorBrush(Colors.Red);
passwortprüfer.Content = "Passwortstärke: Sehr schwach";
break;
case 1:
passwortprüfer.Visibility = Visibility.Visible;
passwortprüfer.Foreground = new SolidColorBrush(Colors.OrangeRed);
passwortprüfer.Content = "Passwortstärke: Schwach";
break;
case 2:
passwortprüfer.Visibility = Visibility.Visible;
passwortprüfer.Foreground = new SolidColorBrush(Colors.Yellow);
passwortprüfer.Content = "Passwortstärke: Mittel";
break;
case 3:
passwortprüfer.Visibility = Visibility.Visible;
passwortprüfer.Foreground = new SolidColorBrush(Colors.Green);
passwortprüfer.Content = "Passwortstärke: Stark";
break;
case 4:
passwortprüfer.Visibility = Visibility.Visible;
passwortprüfer.Foreground = new SolidColorBrush(Colors.Green);
passwortprüfer.Content = "Passwortstärke: Sehr stark";
break;
}
return passwortprüfer;
}
#endregion
#region PasswortStärke des Angemeldeten User Passworts
public PasswortSecurityStrength PasswortSecurityStaerke(string s)
{
if (!s.IsNullOrEmpty())
{
string sx = "";
int i = -1;
foreach (var item in s)
{
sx += item.ToString();
if (sx.Length < letztespw.Length)
{
retschalter = true;
distanz = letztespw.Length - sx.Length;
}
if (!letztespw.Equals(sx))
letztespw = sx;
i = PasswortStaerkeErmittler(sx);
}
return ZeigeSecutityStaerke(i);
}
else
{
score = 0;
letzterwert = 0;
return ZeigeSecutityStaerke(-1);
}
}
private PasswortSecurityStrength ZeigeSecutityStaerke(int i)
{
PasswortSecurityStrength pwsSec = PasswortSecurityStrength.SehrSchwach;
switch (i)
{
case -1:
pwsSec = PasswortSecurityStrength.SehrSchwach;
break;
case 0:
pwsSec = PasswortSecurityStrength.Schwach;
break;
case 1:
pwsSec = PasswortSecurityStrength.Schwach;
break;
case 2:
pwsSec = PasswortSecurityStrength.Mittelmass;
break;
case 3:
pwsSec = PasswortSecurityStrength.Stark;
break;
case 4:
pwsSec = PasswortSecurityStrength.SehrStark;
break;
}
return pwsSec;
}
#endregion
}
}

View File

@@ -174,6 +174,15 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IEmployeeService/GetEmployeebyFullNameBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
BS.Shared.DataContracts.EmployeeDC GetEmployeebyFullName(string fullName);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IEmployeeService/CreateOrUpdateChatBewoMessageSync", ReplyAction="http://tempuri.org/IEmployeeService/CreateOrUpdateChatBewoMessageSyncResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IEmployeeService/CreateOrUpdateChatBewoMessageSyncBeWoFaultFau" +
"lt", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
void CreateOrUpdateChatBewoMessageSync(System.Nullable<long> eOid, string text);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IEmployeeService/GetChatBewoMessageSync", ReplyAction="http://tempuri.org/IEmployeeService/GetChatBewoMessageSyncResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IEmployeeService/GetChatBewoMessageSyncBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
BS.Shared.DataContracts.ChatBewoMessageSyncDC GetChatBewoMessageSync(System.Nullable<long> eOid);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IEmployeeService/ArchiveEmployee", ReplyAction="http://tempuri.org/IEmployeeService/ArchiveEmployeeResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IEmployeeService/ArchiveEmployeeBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
void ArchiveEmployee(long pOid, long pVersion);
@@ -581,6 +590,16 @@ namespace BeWo.ServiceProxy
return base.Channel.GetEmployeebyFullName(fullName);
}
public void CreateOrUpdateChatBewoMessageSync(System.Nullable<long> eOid, string text)
{
base.Channel.CreateOrUpdateChatBewoMessageSync(eOid, text);
}
public BS.Shared.DataContracts.ChatBewoMessageSyncDC GetChatBewoMessageSync(System.Nullable<long> eOid)
{
return base.Channel.GetChatBewoMessageSync(eOid);
}
public void ArchiveEmployee(long pOid, long pVersion)
{
base.Channel.ArchiveEmployee(pOid, pVersion);
@@ -1012,6 +1031,10 @@ namespace BeWo.ServiceProxy
public interface ICustomerService
{
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/GetAllActiveCustomers", ReplyAction="http://tempuri.org/ICustomerService/GetAllActiveCustomersResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/ICustomerService/GetAllActiveCustomersBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.CustomerDC> GetAllActiveCustomers();
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/GetCustomersById", ReplyAction="http://tempuri.org/ICustomerService/GetCustomersByIdResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/ICustomerService/GetCustomersByIdBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.CustomerDC> GetCustomersById(System.Collections.Generic.List<long> idList);
@@ -1325,7 +1348,6 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/GetPersonWithCustomerOid", ReplyAction="http://tempuri.org/ICustomerService/GetPersonWithCustomerOidResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/ICustomerService/GetPersonWithCustomerOidBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CustomerDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.WohnheimDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.EmployeeDC))]
BS.Shared.DataContracts.PersonDC GetPersonWithCustomerOid(long oid);
@@ -1596,7 +1618,6 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/InsertNewPerson", ReplyAction="http://tempuri.org/ICustomerService/InsertNewPersonResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/ICustomerService/InsertNewPersonBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CustomerDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.WohnheimDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.EmployeeDC))]
long InsertNewPerson(BS.Shared.DataContracts.PersonDC pPersonDC);
@@ -1619,7 +1640,6 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/LoadPerson", ReplyAction="http://tempuri.org/ICustomerService/LoadPersonResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/ICustomerService/LoadPersonBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CustomerDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.WohnheimDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.EmployeeDC))]
BS.Shared.DataContracts.PersonDC LoadPerson(long pPersonOid);
@@ -1647,6 +1667,10 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/ICustomerService/UpdateAbsenceReasonsBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
void UpdateAbsenceReasons(System.Collections.Generic.List<BS.Shared.DataContracts.AbsenceReasonDC> pAbsenceReasonDC);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/AllowSavingCustomer", ReplyAction="http://tempuri.org/ICustomerService/AllowSavingCustomerResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/ICustomerService/AllowSavingCustomerBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
string AllowSavingCustomer(BS.Shared.DataContracts.CustomerDC pCustomerDC);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/UpdateCustomer", ReplyAction="http://tempuri.org/ICustomerService/UpdateCustomerResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/ICustomerService/UpdateCustomerBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
long UpdateCustomer(BS.Shared.DataContracts.CustomerDC pCustomerDC);
@@ -1662,7 +1686,6 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/UpdatePerson", ReplyAction="http://tempuri.org/ICustomerService/UpdatePersonResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/ICustomerService/UpdatePersonBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CustomerDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.WohnheimDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.EmployeeDC))]
long UpdatePerson(BS.Shared.DataContracts.PersonDC pPersonDC);
@@ -1741,10 +1764,6 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/ICustomerService/ServiceRecordOutOfSupportConceptBeWoFaultFaul" +
"t", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
bool ServiceRecordOutOfSupportConcept(BS.Shared.DataContracts.SupportConceptDC pSupportConcept);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/GetAllActiveCustomers", ReplyAction="http://tempuri.org/ICustomerService/GetAllActiveCustomersResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/ICustomerService/GetAllActiveCustomersBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.CustomerDC> GetAllActiveCustomers();
}
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
@@ -1781,6 +1800,11 @@ namespace BeWo.ServiceProxy
{
}
public System.Collections.Generic.List<BS.Shared.DataContracts.CustomerDC> GetAllActiveCustomers()
{
return base.Channel.GetAllActiveCustomers();
}
public System.Collections.Generic.List<BS.Shared.DataContracts.CustomerDC> GetCustomersById(System.Collections.Generic.List<long> idList)
{
return base.Channel.GetCustomersById(idList);
@@ -2506,6 +2530,11 @@ namespace BeWo.ServiceProxy
base.Channel.UpdateAbsenceReasons(pAbsenceReasonDC);
}
public string AllowSavingCustomer(BS.Shared.DataContracts.CustomerDC pCustomerDC)
{
return base.Channel.AllowSavingCustomer(pCustomerDC);
}
public long UpdateCustomer(BS.Shared.DataContracts.CustomerDC pCustomerDC)
{
return base.Channel.UpdateCustomer(pCustomerDC);
@@ -2615,11 +2644,6 @@ namespace BeWo.ServiceProxy
{
return base.Channel.ServiceRecordOutOfSupportConcept(pSupportConcept);
}
public System.Collections.Generic.List<BS.Shared.DataContracts.CustomerDC> GetAllActiveCustomers()
{
return base.Channel.GetAllActiveCustomers();
}
}
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
@@ -4247,7 +4271,7 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/CreateNewCustomerAPPCodeDC", ReplyAction="http://tempuri.org/IOperationsService/CreateNewCustomerAPPCodeDCResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/CreateNewCustomerAPPCodeDCBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
BS.Shared.DataContracts.CustomerAPPCodeDC CreateNewCustomerAPPCodeDC(long customerOid, string kundennummer, string apikey, long userOid);
BS.Shared.DataContracts.CustomerAPPCodeDC CreateNewCustomerAPPCodeDC(long customerOid, string kundennummer, string apikey);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/CreateNewChatMessagesDC", ReplyAction="http://tempuri.org/IOperationsService/CreateNewChatMessagesDCResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/CreateNewChatMessagesDCBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
@@ -4271,7 +4295,7 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/CreateNewEmployeeAPPCodeDC", ReplyAction="http://tempuri.org/IOperationsService/CreateNewEmployeeAPPCodeDCResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/CreateNewEmployeeAPPCodeDCBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
BS.Shared.DataContracts.EmployeeAPPCodeDC CreateNewEmployeeAPPCodeDC(long employeeOid, string kundennummer, string apikey, long userOid);
BS.Shared.DataContracts.EmployeeAPPCodeDC CreateNewEmployeeAPPCodeDC(long employeeOid, string kundennummer, string apikey);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/UpdateIsChatActiveEmployeeAPPCodeDC", ReplyAction="http://tempuri.org/IOperationsService/UpdateIsChatActiveEmployeeAPPCodeDCResponse" +
"")]
@@ -4421,17 +4445,13 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetLastVertreterBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactVertreterEmployeeDC> GetLastVertreter(System.Nullable<long> klientenOid);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/GetHandOutPdfForChat", ReplyAction="http://tempuri.org/IOperationsService/GetHandOutPdfForChatResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetHandOutPdfForChatBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
BS.Shared.DataContracts.PdfChatHandoutDC GetHandOutPdfForChat(string customerId, string apikey);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/DeletEmloyeeChatCode", ReplyAction="http://tempuri.org/IOperationsService/DeletEmloyeeChatCodeResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/DeletEmloyeeChatCodeBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
bool DeletEmloyeeChatCode(string apikey, string kundennummer, long userOid);
bool DeletEmloyeeChatCode(string apikey, string kundennummer, long employeeoid);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/DeletCustomerChatCode", ReplyAction="http://tempuri.org/IOperationsService/DeletCustomerChatCodeResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/DeletCustomerChatCodeBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
bool DeletCustomerChatCode(string apikey, string kundennummer, long userOid);
bool DeletCustomerChatCode(string apikey, string kundennummer, long customeroid);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/GetTranslationDictionary", ReplyAction="http://tempuri.org/IOperationsService/GetTranslationDictionaryResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetTranslationDictionaryBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
@@ -5057,9 +5077,9 @@ namespace BeWo.ServiceProxy
return base.Channel.InsertSignature(sig);
}
public BS.Shared.DataContracts.CustomerAPPCodeDC CreateNewCustomerAPPCodeDC(long customerOid, string kundennummer, string apikey, long userOid)
public BS.Shared.DataContracts.CustomerAPPCodeDC CreateNewCustomerAPPCodeDC(long customerOid, string kundennummer, string apikey)
{
return base.Channel.CreateNewCustomerAPPCodeDC(customerOid, kundennummer, apikey, userOid);
return base.Channel.CreateNewCustomerAPPCodeDC(customerOid, kundennummer, apikey);
}
public BS.Shared.DataContracts.ChatMessageDC CreateNewChatMessagesDC(long senderOid, long empfängerOid, string message, bool isDeliverd, long teamid, string messageid)
@@ -5082,9 +5102,9 @@ namespace BeWo.ServiceProxy
return base.Channel.FindUnreadChatMessagesForRecipient(personOid);
}
public BS.Shared.DataContracts.EmployeeAPPCodeDC CreateNewEmployeeAPPCodeDC(long employeeOid, string kundennummer, string apikey, long userOid)
public BS.Shared.DataContracts.EmployeeAPPCodeDC CreateNewEmployeeAPPCodeDC(long employeeOid, string kundennummer, string apikey)
{
return base.Channel.CreateNewEmployeeAPPCodeDC(employeeOid, kundennummer, apikey, userOid);
return base.Channel.CreateNewEmployeeAPPCodeDC(employeeOid, kundennummer, apikey);
}
public void UpdateIsChatActiveEmployeeAPPCodeDC(long employeeOid, int activeType)
@@ -5252,19 +5272,14 @@ namespace BeWo.ServiceProxy
return base.Channel.GetLastVertreter(klientenOid);
}
public BS.Shared.DataContracts.PdfChatHandoutDC GetHandOutPdfForChat(string customerId, string apikey)
public bool DeletEmloyeeChatCode(string apikey, string kundennummer, long employeeoid)
{
return base.Channel.GetHandOutPdfForChat(customerId, apikey);
return base.Channel.DeletEmloyeeChatCode(apikey, kundennummer, employeeoid);
}
public bool DeletEmloyeeChatCode(string apikey, string kundennummer, long userOid)
public bool DeletCustomerChatCode(string apikey, string kundennummer, long customeroid)
{
return base.Channel.DeletEmloyeeChatCode(apikey, kundennummer, userOid);
}
public bool DeletCustomerChatCode(string apikey, string kundennummer, long userOid)
{
return base.Channel.DeletCustomerChatCode(apikey, kundennummer, userOid);
return base.Channel.DeletCustomerChatCode(apikey, kundennummer, customeroid);
}
public System.Collections.Generic.Dictionary<string, string> GetTranslationDictionary()

View File

@@ -1858,7 +1858,7 @@
</TabItem>
<TabItem Header="Schulbegleitender Dienst" Name="tabitem_schuldienst" Selector.Selected="tabitem_SchulDienst_Selected" />
<TabItem Header="Chat-Service" Name="tabitem_chatservice" Selector.Selected="tabitem_chatservice_Selected" />
<TabItem Header="ownChat" Name="tabitem_chatservice" Selector.Selected="tabitem_chatservice_Selected" />
<TabItem Header="Dokumente" Name="tabitem_documents" Selector.Selected="tabitem_documents_Selected" />
<TabItem Header="Log" Name="tabitem_log" Selector.Selected="tabitem_log_Selected" />

View File

@@ -29,6 +29,7 @@ using DevExpress.Xpf.Editors.Settings;
using DevExpress.Xpf.Grid;
using System.Windows.Media.Imaging;
using BeWo.ownChat;
using BS.Shared.Translation;
using DevExpress.XtraGrid;
using Binding = System.Windows.Data.Binding;
@@ -368,18 +369,16 @@ namespace BeWo.View.Detail
{
if (this.IsDirty)
{
CustomerDC cdc = ViewModel.CommitToDataContract();
var message = ServiceFacade.DoCustomerServiceSync(s => s.AllowSavingCustomer(cdc));
if (!String.IsNullOrEmpty(message))
{
MessageBox.Show(message, "Änderungen speichern", MessageBoxButton.OK, MessageBoxImage.Exclamation);
return false;
}
}
var valid = base.DoSaveCheck();
if (valid)
{
MessageBox.Show("Nix da", "Änderungen speichern", MessageBoxButton.OK, MessageBoxImage.Exclamation);
return false;
//ServiceFacade.DoCustomerServiceAsync(s => s.AllowSavingCustomer(cdc), AfterSave);
}
return valid;
return base.DoSaveCheck();
}

View File

@@ -690,7 +690,7 @@
</TabItem>
<TabItem Header="Schulbegleitender Dienst" Name="tabitem_schuldienst" Selector.Selected="tabitem_SchulDienst_Selected" />
<TabItem Header="Chat Service" Name="tabitem_chatservice" Selector.Selected="tabitem_chatservice_Selected" />
<TabItem Header="ownChat" Name="tabitem_chatservice" Selector.Selected="tabitem_chatservice_Selected" />
<TabItem Header="Dokumente" Name="tabitem_documents" Selector.Selected="tabitem_documents_Selected" />
</TabControl>

View File

@@ -12,6 +12,7 @@ using System.Windows.Media;
using System.Windows.Media.Imaging;
using BeWo.Core;
using BeWo.Core.Service;
using BeWo.ownChat;
using BeWo.ServiceProxy;
using BeWo.Validation;
using BeWo.ViewModel;

View File

@@ -188,6 +188,7 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock Name="textblock_editFailures" Grid.ColumnSpan="2" Foreground="Red" FontSize="12" TextWrapping="Wrap" Margin="3 3 3 10" />
@@ -195,11 +196,16 @@
<Label Name="lblOldPassword" Content="Altes Passwort" Grid.Row="1" />
<PasswordBox Name="passwordbox_editOldPassword" Grid.Column="1" Grid.Row="1" Height="23" Margin="3" MinWidth="180" />
<Label Content="Neues Passwort" Grid.Row="2" Margin="0 10 0 0" />
<PasswordBox Name="passwordbox_editPassword" Grid.Column="1" Grid.Row="2" Height="23" Margin="3 10 3 3" />
<PasswordBox Name="passwordbox_editPassword" Grid.Column="1" Grid.Row="2" Height="23" Margin="3 10 3 3" PasswordChanged="Passwordbox_editPassword_OnPasswordChanged"/>
<Label Grid.Row="3" Content="Passwort wiederholen" />
<PasswordBox Name="passwordbox_editPasswordRepeat" Grid.Column="1" Grid.Row="3" Height="23" Margin="3" />
<Grid Grid.IsSharedSizeScope="True" Grid.ColumnSpan="2" Grid.Row="4">
<!-- Hier Anzeige Für passwortStärke -->
<Label Name="passwordbox_StaerkeAnzeige" Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="2" HorizontalAlignment="Left" Visibility="Hidden"/>
<Grid Grid.IsSharedSizeScope="True" Grid.ColumnSpan="2" Grid.Row="5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" SharedSizeGroup="but" />
<ColumnDefinition Width="*" />

View File

@@ -1,8 +1,12 @@
using System.ServiceModel;
using System.Collections.Generic;
using System.Linq;
using System.ServiceModel;
using System.Windows;
using System.Windows.Input;
using System.Windows.Media;
using BeWo.Controls;
using BeWo.Core;
using BeWo.PasswortSecurity;
using BeWo.ServiceProxy;
using BeWo.ViewModel;
using BS.Shared;
@@ -188,8 +192,8 @@ namespace BeWo.View.Detail
{
string oldPw = passwordbox_editOldPassword.Password;
string newPw = passwordbox_editPassword.Password;
if (string.IsNullOrWhiteSpace(newPw))
if (string.IsNullOrWhiteSpace(newPw))
{
textblock_editFailures.Text = "Bitte geben Sie ein neues Passwort ein!";
MessageBox.Show(textblock_editFailures.Text, "Ändern des Passworts fehlgeschlagen", MessageBoxButton.OK, MessageBoxImage.Information);
@@ -202,8 +206,17 @@ namespace BeWo.View.Detail
MessageBox.Show(textblock_editFailures.Text, "Ändern des Passworts fehlgeschlagen", MessageBoxButton.OK, MessageBoxImage.Information);
return;
}
//neu
var pwStaerke = BeWoUtils.CheckPasswordSecurity(newPw);
if (BeWoApp.AppSettings.IsPasswordSecurityActiv && (pwStaerke == PasswortSecurityStrength.SehrSchwach || pwStaerke == PasswortSecurityStrength.Schwach))
{
textblock_editFailures.Text = "Das Passwort ist zu schwach!";
MessageBox.Show(textblock_editFailures.Text, "Ändern des Passworts fehlgeschlagen", MessageBoxButton.OK, MessageBoxImage.Information);
return;
}
if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.UserView_AllowChangePassword))
if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.UserView_AllowChangePassword))
{
var result = ServiceFacade.DoUserServiceSync(s => s.CheckPassword(ViewModel.DataContract.UserOid.Value, oldPw, newPw));
@@ -281,5 +294,17 @@ namespace BeWo.View.Detail
() => BeWoUtils.OpenModalViewWindow<EmployeeVM, EmployeeDC, UserView>(cb, this, () => this.Dispatch(
() => BeWoUtils.UpdateAllViews(ViewModel.Employee)))));
}
}
#region Passwort - Sicherheits - Anzeige
PasswortSicherheit pwS = new PasswortSicherheit();
private void Passwordbox_editPassword_OnPasswordChanged(object sender, RoutedEventArgs e)
{
passwordbox_StaerkeAnzeige = pwS.ErmittleUndZeigePasswortStaerke(passwordbox_editPassword.Password, passwordbox_StaerkeAnzeige);
}
#endregion
}
}

View File

@@ -220,7 +220,7 @@
<!-- ########################################## Achtung Chat Verlinkung ########################################################################################### -->
<TextBlock x:Name="BewoChat" VerticalAlignment="Center" Foreground="{DynamicResource MainGroupBoxForegroundBrush}" Margin="5,3,3,3" >
<Hyperlink RequestNavigate="HyperlinkChat_OnRequestNavigate" NavigateUri="#" Foreground="{DynamicResource MainGroupBoxForegroundBrush}" >
<TextBlock Text="BeWo Chat" HorizontalAlignment="Center" Foreground="{DynamicResource MainGroupBoxForegroundBrush}" FontSize="12" VerticalAlignment="Center" />
<TextBlock Text="ownChat" HorizontalAlignment="Center" Foreground="{DynamicResource MainGroupBoxForegroundBrush}" FontSize="12" VerticalAlignment="Center" />
</Hyperlink>
</TextBlock>
<!-- ############################################################################################################################################################## -->

View File

@@ -40,6 +40,7 @@ using System.Net.NetworkInformation;
using System.Text;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using BeWo.ownChat;
using BS.Shared.Core;
using ChatController.HauptKlassen;
using Newtonsoft.Json;
@@ -136,7 +137,7 @@ namespace BeWo.View
private void PruefePasswortStaerke()
{
if (BeWoApp.PasswortStrength == PasswortSecurityStrength.Schwach)
if ( BeWoApp.PasswortStrength == PasswortSecurityStrength.SehrSchwach)
{
PasswortSchloss.Foreground = new SolidColorBrush(Colors.Red);
@@ -146,17 +147,35 @@ namespace BeWo.View
{
if (BeWoApp.AppSettings.IsPasswordSecurityActiv)
{
MessageBox.Show("Sie benutzen ein schwaches Passwort.\nBitte ändern Sie Ihr Passwort, indem Sie im Startbildschirm oben auf \"Passwort ändern\" klicken.", "Achtung!",
MessageBox.Show("Sie benutzen ein sehr schwaches Passwort.\nBitte ändern Sie Ihr Passwort, indem Sie im Startbildschirm oben auf \"Passwort ändern\" klicken.", "Achtung!",
MessageBoxButton.OK,MessageBoxImage.Information);
}
});
}else if (BeWoApp.PasswortStrength == PasswortSecurityStrength.Mittelmass)
}else if (BeWoApp.PasswortStrength == PasswortSecurityStrength.Schwach)
{
PasswortSchloss.Foreground = new SolidColorBrush(Colors.Yellow);
PasswortSchloss.Foreground = new SolidColorBrush(Colors.OrangeRed);
}else if (BeWoApp.PasswortStrength == PasswortSecurityStrength.Stark)
this.Dispatcher.BeginInvoke(
DispatcherPriority.Normal,
(Action)delegate
{
if (BeWoApp.AppSettings.IsPasswordSecurityActiv)
{
MessageBox.Show("Sie benutzen ein schwaches Passwort.\nBitte ändern Sie Ihr Passwort, indem Sie im Startbildschirm oben auf \"Passwort ändern\" klicken.", "Achtung!",
MessageBoxButton.OK, MessageBoxImage.Information);
}
});
}
else if (BeWoApp.PasswortStrength == PasswortSecurityStrength.Mittelmass)
{
PasswortSchloss.Foreground = new SolidColorBrush(Colors.Yellow);
}
else if (BeWoApp.PasswortStrength == PasswortSecurityStrength.Stark)
{
PasswortSchloss.Foreground = new SolidColorBrush(Colors.Green);
}
else if (BeWoApp.PasswortStrength == PasswortSecurityStrength.SehrStark)
{
PasswortSchloss.Foreground = new SolidColorBrush(Colors.Green);
}

View File

@@ -32,6 +32,7 @@ namespace BeWo.View.Navigation
public partial class CustomerNavigationView
{
private readonly CheckBox chkShowOnlyMyCustomers;
private readonly CheckBox chkShowOnlyTeamCustomers;
private IEnumerable<IFilterableDC> objectList;
private IEnumerable<IFilterableDC> recentList;
@@ -49,14 +50,22 @@ namespace BeWo.View.Navigation
{
FontSize = 12,
Margin = new Thickness(10, 0, 0, 0),
Content = Translator.Translate("Nur meine Klienten anzeigen"),
Content = Translator.Translate("Meine Klienten"),
VerticalAlignment = VerticalAlignment.Center
};
chkShowOnlyTeamCustomers = new CheckBox
{
FontSize = 12,
Margin = new Thickness(10, 0, 0, 0),
Content = Translator.Translate("Klienten meines Teams"),
VerticalAlignment = VerticalAlignment.Center
};
var b = FindResource("MainGroupBoxForegroundBrush") as Brush;
if (b != null)
{
chkShowOnlyMyCustomers.Foreground = b;
chkShowOnlyTeamCustomers.Foreground = b;
}
if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.CustomerView_View) &&
@@ -70,15 +79,33 @@ namespace BeWo.View.Navigation
chkShowOnlyMyCustomers.IsChecked = BeWoApp.AppSettings.ShowOnlyMyClients;
}
chkShowOnlyMyCustomers.Click += chkShowOnlyMyCustomerss_Click;
if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.CustomerView_View) &&
!BeWoApp.LoggedOnUser.HasRight(UserRightType.ViewAll))
{
chkShowOnlyTeamCustomers.IsChecked = true;
chkShowOnlyTeamCustomers.IsEnabled = false;
}
else
{
chkShowOnlyTeamCustomers.IsChecked = BeWoApp.AppSettings.ShowOnlyTeamClients;
}
chkShowOnlyMyCustomers.Click += chkShowOnlyMyCustomers_Click;
chkShowOnlyTeamCustomers.Click += chkShowOnlyMyCustomers_Click;
mainNavigationView.AddControlToSortPanel(chkShowOnlyMyCustomers);
mainNavigationView.AddControlToSortPanel(chkShowOnlyTeamCustomers);
UpdateCustomFilter();
}
private CustomFilter CreateNewCustomFilter()
{
var filter = new CustomerNavigationFilter {ShowOnlyMyCustomers = chkShowOnlyMyCustomers.IsChecked != null && chkShowOnlyMyCustomers.IsChecked.Value};
var filter = new CustomerNavigationFilter
{
ShowOnlyMyCustomers = chkShowOnlyMyCustomers.IsChecked != null && chkShowOnlyMyCustomers.IsChecked.Value,
ShowOnlyTeamCustomers = chkShowOnlyTeamCustomers.IsChecked != null && chkShowOnlyTeamCustomers.IsChecked.Value,
};
return filter;
}
@@ -93,10 +120,12 @@ namespace BeWo.View.Navigation
mainNavigationView.CustomFilter = CreateNewCustomFilter();
}
private void chkShowOnlyMyCustomerss_Click(object sender, RoutedEventArgs e)
private void chkShowOnlyMyCustomers_Click(object sender, RoutedEventArgs e)
{
if (chkShowOnlyMyCustomers.IsChecked != null)
BeWoApp.AppSettings.ShowOnlyMyClients = chkShowOnlyMyCustomers.IsChecked.Value;
if (chkShowOnlyTeamCustomers.IsChecked != null)
BeWoApp.AppSettings.ShowOnlyTeamClients = chkShowOnlyTeamCustomers.IsChecked.Value;
BeWoApp.SaveAppSettings();
UpdateCustomFilter();

View File

@@ -6,16 +6,37 @@ namespace BeWo.View.Navigation.Filter
public class CustomerNavigationFilter : CustomFilter
{
public bool ShowOnlyMyCustomers { get; set; }
public bool ShowOnlyTeamCustomers { get; set; }
public override bool IsValid(IFilterableDC dc)
{
var custDC = dc as CompactCustomerDC;
if (ShowOnlyMyCustomers && custDC != null)
if (custDC != null)
{
return custDC.IsRelatedToEmployee;
}
if (ShowOnlyMyCustomers)
{
return custDC.IsRelatedToEmployee;
}
if (ShowOnlyTeamCustomers)
{
bool contains = false;
if (BeWoApp.CompactLoggedOnEmployee.AllTeamMemberOids != null && custDC.RelatedTeamOids != null)
{
foreach (var teamOid in BeWoApp.CompactLoggedOnEmployee.AllTeamMemberOids)
{
if (custDC.RelatedTeamOids.Contains(teamOid))
{
contains = true;
}
}
}
//return custDC.RelatedTeamOids != null && custDC.RelatedTeamOids.Contains(BeWoApp.CompactLoggedOnEmployee.AllTeamMemberOids)
return contains;
}
}
return true;
}
}

View File

@@ -22,7 +22,21 @@ namespace BeWo.View.Navigation.Filter
if (this.ShowOnlyTeamSupportConcepts)
{
// return scDC.Customer.IsRelatedToTeamLeader;
bool contains = false;
if (BeWoApp.CompactLoggedOnEmployee.AllTeamMemberOids != null && scDC.Customer.RelatedTeamOids != null)
{
foreach (var teamOid in BeWoApp.CompactLoggedOnEmployee.AllTeamMemberOids)
{
if (scDC.Customer.RelatedTeamOids.Contains(teamOid))
{
contains = true;
}
}
}
return contains;
}
}

View File

@@ -265,8 +265,8 @@ namespace BeWo.View.Navigation
set
{
mainGroup.Header = value;
chkShowArchived.Content = " " + Translator.Translate("Archivierte {0} anzeigen", value);
chkShowDeleted.Content = " " + Translator.Translate("Gelöschte {0} anzeigen", value);
chkShowArchived.Content = " " + Translator.Translate("Archivierte {0}", value);
chkShowDeleted.Content = " " + Translator.Translate("Gelöschte {0}", value);
}
}

View File

@@ -46,12 +46,12 @@ namespace BeWo.View.Navigation
this.chkShowOnlyMySCs = new CheckBox();
this.chkShowOnlyMySCs.FontSize = 12;
this.chkShowOnlyMySCs.Margin = new Thickness(10, 0, 0, 0);
this.chkShowOnlyMySCs.Content = Translator.Translate("Nur meine Hilfepläne anzeigen");
this.chkShowOnlyMySCs.Content = Translator.Translate("Meine Hilfepläne");
this.chkShowOnlyTeamSCs = new CheckBox();
this.chkShowOnlyTeamSCs.FontSize = 12;
this.chkShowOnlyTeamSCs.Margin = new Thickness(10, 0, 0, 0);
this.chkShowOnlyTeamSCs.Content = Translator.Translate("Nur Hilfepläne meines Teams anzeigen");
this.chkShowOnlyTeamSCs.Content = Translator.Translate("Hilfepläne meines Teams");
this.chkShowOnlyMySCs.VerticalAlignment = VerticalAlignment.Center;
this.chkShowOnlyTeamSCs.VerticalAlignment = VerticalAlignment.Center;
@@ -63,6 +63,16 @@ namespace BeWo.View.Navigation
this.chkShowOnlyTeamSCs.Foreground = b;
}
if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.SupportConcept_ViewAllSupportConcepts) && !BeWoApp.LoggedOnUser.HasRight(UserRightType.ViewAll) && BeWoApp.LoggedOnUser.HasRight(UserRightType.SupportConcept_View MyTeams))
{
this.chkShowOnlyMySCs.IsChecked = true;
this.chkShowOnlyMySCs.IsEnabled = false;
}
else
{
this.chkShowOnlyTeamSCs.IsChecked = BeWoApp.AppSettings.ShowOnlyTeamSupportConcepts;
}
if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.SupportConcept_ViewAllSupportConcepts) && !BeWoApp.LoggedOnUser.HasRight(UserRightType.ViewAll))
{
this.chkShowOnlyMySCs.IsChecked = true;
@@ -73,6 +83,8 @@ namespace BeWo.View.Navigation
this.chkShowOnlyMySCs.IsChecked = BeWoApp.AppSettings.ShowOnlyMySupportConcepts;
}
// if (BeWoApp.LoggedOnUser.Employee.IsTeamLeader)
// {
// chkShowOnlyTeamSCs.Visibility = Visibility.Visible;
@@ -82,9 +94,10 @@ namespace BeWo.View.Navigation
this.chkShowOnlyTeamSCs.Visibility = Visibility.Collapsed;
// }
this.chkShowOnlyMySCs.Click += this.chkShowOnlyMySCs_Click;
this.chkShowOnlyTeamSCs.Click += this.chkShowOnlyTeamSCs_Click;
this.chkShowOnlyMySCs.Click += this.chkShowOnlySCs_Click;
this.chkShowOnlyTeamSCs.Click += this.chkShowOnlySCs_Click;
this.mainNavigationView.AddControlToSortPanel(this.chkShowOnlyMySCs);
this.mainNavigationView.AddControlToSortPanel(this.chkShowOnlyTeamSCs);
this.UpdateCustomFilter();
@@ -112,20 +125,17 @@ namespace BeWo.View.Navigation
this.mainNavigationView.CustomFilter = this.CreateNewCustomFilter();
}
private void chkShowOnlyMySCs_Click(object sender, RoutedEventArgs e)
private void chkShowOnlySCs_Click(object sender, RoutedEventArgs e)
{
// chkShowOnlyTeamSCs.IsChecked = false;
BeWoApp.AppSettings.ShowOnlyMySupportConcepts = this.chkShowOnlyMySCs.IsChecked.Value;
BeWoApp.AppSettings.ShowOnlyTeamSupportConcepts = this.chkShowOnlyTeamSCs.IsChecked.Value;
BeWoApp.SaveAppSettings();
this.UpdateCustomFilter();
}
private void chkShowOnlyTeamSCs_Click(object sender, RoutedEventArgs e)
{
this.chkShowOnlyMySCs.IsChecked = false;
this.UpdateCustomFilter();
}
private bool mainNavigationView_ArchiveObject(IFilterableDC obj)
{

View File

@@ -5,7 +5,7 @@ using System.Text.RegularExpressions;
using System.Windows;
using System.Windows.Input;
using System.Windows.Media;
using BeWo.PasswortSecurity;
using BeWo.ServiceProxy;
using BeWo.ViewModel;
@@ -111,49 +111,18 @@ namespace BeWo.View
textblock_editFailures.Text = string.Empty;
}
//private const string sonderzeichen = "\\\"\'µ@€!§$%&/()=?+#*',.-;:_><|{[]}´`^°~²³";
private const string zahlen = "0123456789";
private const string grossBuchstaben = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
private const string kleinBuchstaben = "abcdefghijklmnopqrstuvwxyz";
private const string grossBuchstabenSonderLevel = "ÄÖÜ";
private const string kleinBuchstabenSonderLevel = "äöüß";
private const string sonderzeichenLevel1 = "\\\"\'µ@€!";
private const string sonderzeichenLevel2 = "&/()=?+#*";
private const string sonderzeichenLevel3 = ",.-;:_><|";
private const string sonderzeichenLevel4 = "§$%'{[]}´";
private const string sonderzeichenLevel5 = "`^°~²³";
PasswortSicherheit pwS = new PasswortSicherheit();
private string letztespw = "";
private bool retschalter = false;
private int distanz = 0;
private void NeuesPwBox_OnPasswordChanged(object sender, RoutedEventArgs e)
{
string s = NeuesPwBox.Password;
//################ Foreach String Char if Kopie and paste was triggered ################
//--> this block foreach Char
//############################
if (s.Length < letztespw.Length)
{
retschalter = true;
distanz = letztespw.Length - s.Length;
}
passwortprüfer = pwS.ErmittleUndZeigePasswortStaerke(NeuesPwBox.Password, passwortprüfer);
if (!letztespw.Equals(s))
letztespw = s;
ZeigePasswortStrength(NeuesPwBox.Password.Length);
var fehlermeldung = string.Empty;
var fehlermeldung = string.Empty;
//textblock_editFailures.Foreground = new SolidColorBrush(Color.FromRgb(255, 72, 0));
//if (!(NeuesPwBox.Password.Any(x => sonderzeichen.Contains(x)) && NeuesPwBox.Password.Any(x => zahlen.Contains(x)) && NeuesPwBox.Password.Any(x => grossBuchstaben.Contains(x)) && NeuesPwBox.Password.Any(x => kleinBuchstaben.Contains(x))))
@@ -164,263 +133,5 @@ namespace BeWo.View
textblock_editFailures.Text = fehlermeldung;
}
int score = 0;
int letzterwert = 0;
bool schalter = false;
List<int> letztewerte = new List<int>();
private void ZeigePasswortStrength(int text)
{
int i = 0;
letzterwert = 0;
//############### Score System ############
if (retschalter == true)
{
if (distanz == 1)
{
score -= letztewerte.Last();
letztewerte.RemoveAt(letztewerte.Count - 1);
}
else
{
for (int s = 0; s < distanz; s++)
{
score -= letztewerte.Last();
letztewerte.RemoveAt(letztewerte.Count - 1);
}
}
retschalter = false;
//letzterwert = 0;
}
else
{
//Passwort Längen Bonus Punkte
if (NeuesPwBox.Password.Length >= 6 && NeuesPwBox.Password.Length < 9 )
{
score += 1;
letzterwert = 1;
schalter = true;
}
if (NeuesPwBox.Password.Length >= 9 && NeuesPwBox.Password.Length < 12 )
{
score += 2;
letzterwert = 2;
schalter = true;
}
if (NeuesPwBox.Password.Length >= 12 && NeuesPwBox.Password.Length < 18 )
{
score += 3;
letzterwert = 3;
schalter = true;
}
if (NeuesPwBox.Password.Length >= 18 )
{
score += 4;
letzterwert = 4;
schalter = true;
}
//Zahlen und Buchstaben
if (NeuesPwBox.Password.Any(x => zahlen.Contains(x)))
{
score += 3;
if (schalter == true)
letzterwert += 3;
else
letzterwert = 3;
}
if (NeuesPwBox.Password.Any(x => grossBuchstaben.Contains(x)))
{
score += 3;
if (schalter == true)
letzterwert += 3;
else
letzterwert = 3;
}
if (NeuesPwBox.Password.Any(x => grossBuchstabenSonderLevel.Contains(x)))
{
score += 2;
if (schalter == true)
letzterwert += 2;
else
letzterwert = 2;
}
if (NeuesPwBox.Password.Any(x => kleinBuchstaben.Contains(x)))
{
score += 2;
if (schalter == true)
letzterwert += 2;
else
letzterwert = 2;
}
if (NeuesPwBox.Password.Any(x => kleinBuchstabenSonderLevel.Contains(x)))
{
score += 2;
if (schalter == true)
letzterwert += 2;
else
letzterwert = 2;
}
// Sonderzeichen
if (NeuesPwBox.Password.Any(x => sonderzeichenLevel1.Contains(x)))
{
score += 4;
if (schalter == true)
letzterwert += 4;
else
letzterwert = 4;
}
if (NeuesPwBox.Password.Any(x => sonderzeichenLevel2.Contains(x)))
{
score += 4;
if (schalter == true)
letzterwert += 4;
else
letzterwert = 4;
}
if (NeuesPwBox.Password.Any(x => sonderzeichenLevel3.Contains(x)))
{
score += 4;
if (schalter == true)
letzterwert += 4;
else
letzterwert = 4;
}
if (NeuesPwBox.Password.Any(x => sonderzeichenLevel4.Contains(x)))
{
score += 4;
if (schalter == true)
letzterwert += 4;
else
letzterwert = 4;
}
if (NeuesPwBox.Password.Any(x => sonderzeichenLevel5.Contains(x)))
{
score += 4;
if (schalter == true)
letzterwert += 4;
else
letzterwert = 4;
}
letztewerte.Add(letzterwert);
}
//#########################################
// ########################################### PasswortStärke Bereich ##########################
//Sehr Schwach
if (score <= 15)
{
i = 0;
}
//Schwach
if (score >= 16 && score <= 55)
{
i = 1;
}
//Mittelmäßig
if (score >= 56 && score <= 115)
{
i = 2;
}
//Stark
if (score >= 116 && score <= 155)
{
i = 3;
}
//Sehr Stark
if (score >= 156 )
{
i = 4;
}
// ########################################### PasswortStärke Bereich ##########################
if (text == 0)
{
if (passwortprüfer.Visibility != Visibility.Hidden)
passwortprüfer.Visibility = Visibility.Hidden;
score = 0;
letzterwert = 0;
}else{
if (passwortprüfer.Visibility != Visibility.Visible)
passwortprüfer.Visibility = Visibility.Visible;
switch (i)
{
case 0:
passwortprüfer.Foreground = new SolidColorBrush(Colors.Red);
passwortprüfer.Content = "Passwortstärke: Sehr schwach";
break;
case 1:
passwortprüfer.Foreground = new SolidColorBrush(Colors.OrangeRed);
passwortprüfer.Content = "Passwortstärke: Schwach";
break;
case 2:
passwortprüfer.Foreground = new SolidColorBrush(Colors.Yellow);
passwortprüfer.Content = "Passwortstärke: Mittel";
break;
case 3:
passwortprüfer.Foreground = new SolidColorBrush(Colors.Green);
passwortprüfer.Content = "Passwortstärke: Stark";
break;
case 4:
passwortprüfer.Foreground = new SolidColorBrush(Colors.Green);
passwortprüfer.Content = "Passwortstärke: Sehr stark";
break;
}
}
}
}
}

View File

@@ -0,0 +1,46 @@
using BS.Shared;
using BS.Shared.DataContracts;
using System;
namespace BeWo.ViewModel
{
public class ChatBewoMessageSyncVM : AbstractDCMapperVM<ChatBewoMessageSyncDC>
{
public static string PropertyName_MessageSyncText = "MessageSyncText";
private string _MessageSyncText;
public ChatBewoMessageSyncVM(ChatBewoMessageSyncDC pDC)
: base(pDC, true)
{
}
public string MessageSyncText
{
get { return this._MessageSyncText; }
set
{
if (this.AreDifferent(this._MessageSyncText, value))
{
this._MessageSyncText = value;
this.StoreDirtyInformation(this.AreDifferent(this.DataContract.MessageSyncText, value), PropertyName_MessageSyncText);
this.FirePropertyChanged(PropertyName_MessageSyncText);
}
}
}
protected override void InitByDataContract(ChatBewoMessageSyncDC pDataContract)
{
this._MessageSyncText = pDataContract.MessageSyncText;
}
protected override ChatBewoMessageSyncDC MapToDataContract(ChatBewoMessageSyncDC pDataContract, bool doCommit)
{
pDataContract.MessageSyncText = _MessageSyncText;
return pDataContract;
}
}
}

View File

@@ -1,4 +1,4 @@
<Window x:Class="BeWo.View.ChatDokumentationsView"
<Window x:Class="BeWo.ownChat.ChatDokumentationsView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:view="clr-namespace:BeWo.View"

View File

@@ -34,7 +34,7 @@ using DevExpress.XtraPrinting.XamlExport;
using Microsoft.Office.Interop.Word;
using Color = System.Drawing.Color;
namespace BeWo.View
namespace BeWo.ownChat
{
public partial class ChatDokumentationsView
{

View File

@@ -1,4 +1,4 @@
<Window x:Class="BeWo.View.ChatEmojiView"
<Window x:Class="BeWo.ownChat.ChatEmojiView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

View File

@@ -14,7 +14,7 @@ using System.Windows.Shapes;
using ChatController;
using ChatController.HauptKlassen;
namespace BeWo.View
namespace BeWo.ownChat
{
/// <summary>
/// Interaktionslogik für ChatEmojiService.xaml

View File

@@ -1,151 +1,154 @@
<localView:BeWoView x:Class="BeWo.View.ChatServiceCustomer"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:localView="clr-namespace:BeWo.View"
xmlns:localViewModel="clr-namespace:BeWo.ViewModel"
xmlns:uc="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
Height="Auto" Width="Auto" HorizontalAlignment="Stretch"
xmlns:diagnostics="clr-namespace:System.Diagnostics;assembly=WindowsBase"
VerticalAlignment="Stretch" Focusable="True">
<Grid x:Name="ChatServiceCustomerGrid">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<GroupBox Grid.ColumnSpan="2" Padding="5" Style="{StaticResource ObjectEditGroupBox}" Header="Chat Service">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Label Content="Chat-Code" x:Name="lblGenerateCode" Grid.Column="0" Grid.Row="0" Margin="3" VerticalAlignment="Center" HorizontalAlignment="Left" Height="21" />
<TextBox Grid.Column="1" Grid.Row="0" Margin="3" Height="23" MinWidth="120" x:Name="GeneratetTexfield" IsReadOnly="True"/>
<Button Grid.Column="2" Grid.Row="0" Click="GenerateCodeClick" Margin="3" VerticalAlignment="Center" HorizontalAlignment="Left" ToolTip="Chat-Code anfordern"
Height="23" x:Name="ButtonGenerateCode" >
<Image Height="15" Width="15" Source='/Ressources/Icons/DocumentWithAdd2.png' Margin="3" RenderOptions.BitmapScalingMode="HighQuality" HorizontalAlignment="Center" x:Name="ImageGenerateCode"/>
</Button>
<Button Grid.Row="0" Grid.Column="3" Margin="3" Height="23" Click="RemoveCode_OnClick" ToolTip="Aktuellen Chat-Code löschen." x:Name="RemoveButton" Visibility="Collapsed">
<Image Height="15" Width="15" Source='/Ressources/Icons/Symbol Delete.png' Margin="3" RenderOptions.BitmapScalingMode="HighQuality" HorizontalAlignment="Center" />
</Button>
<Label Grid.Row="1" Grid.Column="0" Content="Benutzername" Margin="3" />
<TextBox Grid.Row="1" Grid.Column="1" Margin="3" x:Name="TXTBenutzerName" />
<Label Grid.Row="2" Grid.Column="0" Content="Passwort" Margin="3" />
<TextBox Grid.Row="2" Grid.Column="1" Margin="3" x:Name="TXTPasswort" />
<Button Content="Speichern" Click="SpeicherButton_OnClick" Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="2" Margin="3" HorizontalAlignment="Right" />
<!-- <Label x:Name="lblIsChatAktive" Grid.Column="0" Grid.Row="1" Margin="3" Content="Chat Aktivieren" />-->
<!--<CheckBox x:Name="ChatAktive" Grid.Column="1" Grid.Row="1" Margin="3" Height="23" Checked="CheckBox_Checked" Unchecked="CheckBox_Unchecked"/>-->
<!--<GroupBox Margin="3" Grid.Row="2" Grid.RowSpan="2" Grid.Column="0" Grid.ColumnSpan="4" Header="ownChat Benutzerkonto" Style="{x:Null}" x:Name="CustomerBenutzerKontoGroupBox" Visibility="Visible">
--><!-- ####################### Style Design gedönse ## --><!--
<GroupBox.Template>
<ControlTemplate TargetType="{x:Type GroupBox}">
<Grid SnapsToDevicePixels="true">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="6"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="6"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="6"/>
</Grid.RowDefinitions>
<Border BorderBrush="Black" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Grid.ColumnSpan="4" Grid.Column="0" CornerRadius="4" Grid.Row="1" Grid.RowSpan="3"/>
<Border BorderBrush="Black" BorderThickness="1.25" Grid.ColumnSpan="4" CornerRadius="4" Grid.Row="1" Grid.RowSpan="3">
<Border.OpacityMask>
<MultiBinding ConverterParameter="7">
<MultiBinding.Converter>
<BorderGapMaskConverter />
</MultiBinding.Converter>
<Binding ElementName="Header" Path="ActualWidth"/>
<Binding Path="ActualWidth" RelativeSource="{RelativeSource Self}"/>
<Binding Path="ActualHeight" RelativeSource="{RelativeSource Self}"/>
</MultiBinding>
</Border.OpacityMask>
</Border>
<Border x:Name="Header" Grid.Column="1" Padding="3,1,3,0" Grid.Row="0" Grid.RowSpan="2" Background="Transparent" BorderBrush="Black" CornerRadius="2" BorderThickness="1">
<ContentPresenter ContentSource="Header" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</Border>
<ContentPresenter Grid.ColumnSpan="2" Grid.Column="1" Margin="{TemplateBinding Padding}" Grid.Row="2" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</Grid>
</ControlTemplate>
</GroupBox.Template>
--><!-- ################################################ --><!--
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Label Grid.Row="0" Grid.Column="0" Content="Benutzername" Margin="3" /> --><!-- row 2 | column 0 && 1--><!--
<TextBox Grid.Row="0" Grid.Column="1" Margin="3" x:Name="TXTBenutzerName" />
<Label Grid.Row="1" Grid.Column="0" Content="Passwort" Margin="3" /> --><!-- row 3 | column 0 && 1 --><!--
<TextBox Grid.Row="1" Grid.Column="1" Margin="3" x:Name="TXTPasswort" />
<Button Content="Speichern" Click="SpeicherButton_OnClick" Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" Margin="3" HorizontalAlignment="Right" /> --><!-- row 4 | column 0--><!--
</Grid>
</GroupBox>-->
<Button Grid.Column="4" Grid.Row="0" Click="ZeigeHandoutPDF_OnClick " Margin="3" VerticalAlignment="Center" HorizontalAlignment="Left" Height="23" ToolTip="ownChat Kurzanleitung für Klient herunterladen." x:Name="CustomerHandoutButton" Visibility="Collapsed">
<Image Height="15" Width="15" Source='/Ressources/Icons/adobe-pdf-icon.png' Margin="3" RenderOptions.BitmapScalingMode="HighQuality" HorizontalAlignment="Center" />
</Button>
<!-- IsChecked="{Binding Path=IsChatAktiv, UpdateSourceTrigger=PropertyChanged}" -->
</Grid>
</GroupBox>
</Grid>
</Grid>
<localView:BeWoView x:Class="BeWo.ownChat.ChatServiceCustomer"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:localView="clr-namespace:BeWo.View"
xmlns:localViewModel="clr-namespace:BeWo.ViewModel"
xmlns:uc="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
Height="Auto" Width="Auto" HorizontalAlignment="Stretch"
xmlns:diagnostics="clr-namespace:System.Diagnostics;assembly=WindowsBase"
VerticalAlignment="Stretch" Focusable="True">
<Grid x:Name="ChatServiceCustomerGrid">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<GroupBox Grid.ColumnSpan="2" Padding="5" Style="{StaticResource ObjectEditGroupBox}" Header="ownChat">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Label Content="Chat-Code" x:Name="lblGenerateCode" Grid.Column="0" Grid.Row="0" Margin="3" VerticalAlignment="Center" HorizontalAlignment="Left" Height="21" />
<TextBox Grid.Column="1" Grid.Row="0" Margin="3" Height="23" MinWidth="120" x:Name="GeneratetTexfield" IsReadOnly="True"/>
<Button Grid.Column="2" Grid.Row="0" Click="GenerateCodeClick" Margin="3" VerticalAlignment="Center" HorizontalAlignment="Left" ToolTip="Chat-Code anfordern"
Height="23" x:Name="ButtonGenerateCode" >
<Image Height="15" Width="15" Source='/Ressources/Icons/DocumentWithAdd2.png' Margin="3" RenderOptions.BitmapScalingMode="HighQuality" HorizontalAlignment="Center" x:Name="ImageGenerateCode"/>
</Button>
<Button Grid.Row="0" Grid.Column="3" Margin="3" Height="23" Click="RemoveCode_OnClick" ToolTip="Aktuellen Chat-Code löschen." x:Name="RemoveButton" Visibility="Collapsed">
<Image Height="15" Width="15" Source='/Ressources/Icons/Symbol Delete.png' Margin="3" RenderOptions.BitmapScalingMode="HighQuality" HorizontalAlignment="Center" />
</Button>
<Label Grid.Row="1" Grid.Column="0" Content="Benutzername" Margin="3" />
<TextBox Grid.Row="1" Grid.Column="1" Margin="3" x:Name="TXTBenutzerName" />
<Label Grid.Row="2" Grid.Column="0" Content="Passwort" Margin="3" />
<TextBox Grid.Row="2" Grid.Column="1" Margin="3" x:Name="TXTPasswort" TextChanged="TXTPasswort_OnTextChanged" />
<Label x:Name="LblPwStaerkenAnzeige" Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="2" Margin="3" Visibility="Hidden"></Label>
<Button Content="Speichern" Click="SpeicherButton_OnClick" Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="2" Margin="3" HorizontalAlignment="Right" />
<!-- <Label x:Name="lblIsChatAktive" Grid.Column="0" Grid.Row="1" Margin="3" Content="Chat Aktivieren" />-->
<!--<CheckBox x:Name="ChatAktive" Grid.Column="1" Grid.Row="1" Margin="3" Height="23" Checked="CheckBox_Checked" Unchecked="CheckBox_Unchecked"/>-->
<!--<GroupBox Margin="3" Grid.Row="2" Grid.RowSpan="2" Grid.Column="0" Grid.ColumnSpan="4" Header="ownChat Benutzerkonto" Style="{x:Null}" x:Name="CustomerBenutzerKontoGroupBox" Visibility="Visible">
--><!-- ####################### Style Design gedönse ## --><!--
<GroupBox.Template>
<ControlTemplate TargetType="{x:Type GroupBox}">
<Grid SnapsToDevicePixels="true">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="6"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="6"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="6"/>
</Grid.RowDefinitions>
<Border BorderBrush="Black" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Grid.ColumnSpan="4" Grid.Column="0" CornerRadius="4" Grid.Row="1" Grid.RowSpan="3"/>
<Border BorderBrush="Black" BorderThickness="1.25" Grid.ColumnSpan="4" CornerRadius="4" Grid.Row="1" Grid.RowSpan="3">
<Border.OpacityMask>
<MultiBinding ConverterParameter="7">
<MultiBinding.Converter>
<BorderGapMaskConverter />
</MultiBinding.Converter>
<Binding ElementName="Header" Path="ActualWidth"/>
<Binding Path="ActualWidth" RelativeSource="{RelativeSource Self}"/>
<Binding Path="ActualHeight" RelativeSource="{RelativeSource Self}"/>
</MultiBinding>
</Border.OpacityMask>
</Border>
<Border x:Name="Header" Grid.Column="1" Padding="3,1,3,0" Grid.Row="0" Grid.RowSpan="2" Background="Transparent" BorderBrush="Black" CornerRadius="2" BorderThickness="1">
<ContentPresenter ContentSource="Header" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</Border>
<ContentPresenter Grid.ColumnSpan="2" Grid.Column="1" Margin="{TemplateBinding Padding}" Grid.Row="2" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</Grid>
</ControlTemplate>
</GroupBox.Template>
--><!-- ################################################ --><!--
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Label Grid.Row="0" Grid.Column="0" Content="Benutzername" Margin="3" /> --><!-- row 2 | column 0 && 1--><!--
<TextBox Grid.Row="0" Grid.Column="1" Margin="3" x:Name="TXTBenutzerName" />
<Label Grid.Row="1" Grid.Column="0" Content="Passwort" Margin="3" /> --><!-- row 3 | column 0 && 1 --><!--
<TextBox Grid.Row="1" Grid.Column="1" Margin="3" x:Name="TXTPasswort" />
<Button Content="Speichern" Click="SpeicherButton_OnClick" Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" Margin="3" HorizontalAlignment="Right" /> --><!-- row 4 | column 0--><!--
</Grid>
</GroupBox>-->
<Button Grid.Column="4" Grid.Row="0" Click="ZeigeHandoutPDF_OnClick " Margin="3" VerticalAlignment="Center" HorizontalAlignment="Left" Height="23" ToolTip="ownChat Kurzanleitung für Klient herunterladen." x:Name="CustomerHandoutButton" Visibility="Collapsed">
<Image Height="15" Width="15" Source='/Ressources/Icons/adobe-pdf-icon.png' Margin="3" RenderOptions.BitmapScalingMode="HighQuality" HorizontalAlignment="Center" />
</Button>
<!-- IsChecked="{Binding Path=IsChatAktiv, UpdateSourceTrigger=PropertyChanged}" -->
</Grid>
</GroupBox>
</Grid>
</Grid>
</localView:BeWoView>

View File

@@ -1,81 +1,81 @@
<localView:BeWoView x:Class="BeWo.View.ChatServiceEmployee"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:localView="clr-namespace:BeWo.View"
xmlns:localViewModel="clr-namespace:BeWo.ViewModel"
xmlns:uc="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
Height="Auto" Width="Auto" HorizontalAlignment="Stretch"
xmlns:diagnostics="clr-namespace:System.Diagnostics;assembly=WindowsBase"
VerticalAlignment="Stretch" Focusable="True">
<Grid x:Name="ChatServiceEmployeeGrid">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<GroupBox Grid.ColumnSpan="2" Padding="5" Style="{StaticResource ObjectEditGroupBox}" Header="Chat Service">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Label Content="Chat-Code:" x:Name="lblGenerateCode"/>
<TextBox Grid.Column="1" Grid.Row="0" Margin="3" Height="23" MinWidth="120" x:Name="GeneratetTexfield" IsReadOnly="True" />
<Button Grid.Column="2" Grid.Row="0" Click="GenerateCodeClick" Margin="3" VerticalAlignment="Center" HorizontalAlignment="Left" ToolTip="Chat-Code anfordern"
Height="23" x:Name="ButtonGenerateCode">
<Image Height="15" Width="15" Source='/Ressources/Icons/DocumentWithAdd2.png' Margin="3" RenderOptions.BitmapScalingMode="HighQuality" HorizontalAlignment="Center" x:Name="ImageGenerateCode"/>
</Button>
<Button Grid.Row="0" Grid.Column="3" Height="23" Click="RemoveCode_OnClick" ToolTip="Aktuellen Chat-Code löschen." x:Name="RemoveButton" Visibility="Collapsed">
<Image Height="15" Width="15" Source='/Ressources/Icons/Symbol Delete.png' Margin="3" RenderOptions.BitmapScalingMode="HighQuality" HorizontalAlignment="Center" />
</Button>
<!--<Label x:Name="lblIsChatAktive" Grid.Column="0" Grid.Row="1" Content="Chat Aktivieren" />
<CheckBox x:Name="ChatAktive" Grid.Column="1" Grid.Row="1" Margin="3" Height="23" Checked="CheckBox_Checked" Unchecked="CheckBox_Unchecked" />
<Label x:Name="LblSetStatement" Grid.Column="0" Grid.Row="2" Content="Notfall Nachricht" />
<TextBox Grid.Column="1" Grid.Row="2" Margin="3" Height="23" MinWidth="120" x:Name="NotfallTexfield" />
<Button Grid.Column="0" Grid.Row="3" Content="Save Notfall Message" Click="Creat_NotfallMessage" Margin="3" VerticalAlignment="Center" HorizontalAlignment="Left"
Height="21" x:Name="SaveMSButon" />-->
<Button Grid.Column="4" Grid.Row="0" Click="ZeigePDF_OnClick" Margin="3" VerticalAlignment="Center" HorizontalAlignment="Left" Height="23" ToolTip="ownChat Kurzanleitung für Mitarbeiter herunterladen." x:Name="EmployeeHandoutButton" Visibility="Collapsed">
<Image Height="15" Width="15" Source='/Ressources/Icons/adobe-pdf-icon.png' Margin="3" RenderOptions.BitmapScalingMode="HighQuality" HorizontalAlignment="Center" />
</Button>
</Grid>
</GroupBox>
<!--
Text="{Binding Path=Code, UpdateSourceTrigger=PropertyChanged}"
IsChecked="{Binding Path=IsChecked}"
Text="{Binding Path=Notfallstatement, UpdateSourceTrigger=PropertyChanged}"
-->
</Grid>
</Grid>
<localView:BeWoView x:Class="BeWo.ownChat.ChatServiceEmployee"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:localView="clr-namespace:BeWo.View"
xmlns:localViewModel="clr-namespace:BeWo.ViewModel"
xmlns:uc="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
Height="Auto" Width="Auto" HorizontalAlignment="Stretch"
xmlns:diagnostics="clr-namespace:System.Diagnostics;assembly=WindowsBase"
VerticalAlignment="Stretch" Focusable="True">
<Grid x:Name="ChatServiceEmployeeGrid">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<GroupBox Grid.ColumnSpan="2" Padding="5" Style="{StaticResource ObjectEditGroupBox}" Header="ownChat">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Label Content="Chat-Code:" x:Name="lblGenerateCode"/>
<TextBox Grid.Column="1" Grid.Row="0" Margin="3" Height="23" MinWidth="120" x:Name="GeneratetTexfield" IsReadOnly="True" />
<Button Grid.Column="2" Grid.Row="0" Click="GenerateCodeClick" Margin="3" VerticalAlignment="Center" HorizontalAlignment="Left" ToolTip="Chat-Code anfordern"
Height="23" x:Name="ButtonGenerateCode">
<Image Height="15" Width="15" Source='/Ressources/Icons/DocumentWithAdd2.png' Margin="3" RenderOptions.BitmapScalingMode="HighQuality" HorizontalAlignment="Center" x:Name="ImageGenerateCode"/>
</Button>
<Button Grid.Row="0" Grid.Column="3" Height="23" Click="RemoveCode_OnClick" ToolTip="Aktuellen Chat-Code löschen." x:Name="RemoveButton" Visibility="Collapsed">
<Image Height="15" Width="15" Source='/Ressources/Icons/Symbol Delete.png' Margin="3" RenderOptions.BitmapScalingMode="HighQuality" HorizontalAlignment="Center" />
</Button>
<!--<Label x:Name="lblIsChatAktive" Grid.Column="0" Grid.Row="1" Content="Chat Aktivieren" />
<CheckBox x:Name="ChatAktive" Grid.Column="1" Grid.Row="1" Margin="3" Height="23" Checked="CheckBox_Checked" Unchecked="CheckBox_Unchecked" />
<Label x:Name="LblSetStatement" Grid.Column="0" Grid.Row="2" Content="Notfall Nachricht" />
<TextBox Grid.Column="1" Grid.Row="2" Margin="3" Height="23" MinWidth="120" x:Name="NotfallTexfield" />
<Button Grid.Column="0" Grid.Row="3" Content="Save Notfall Message" Click="Creat_NotfallMessage" Margin="3" VerticalAlignment="Center" HorizontalAlignment="Left"
Height="21" x:Name="SaveMSButon" />-->
<Button Grid.Column="4" Grid.Row="0" Click="ZeigePDF_OnClick" Margin="3" VerticalAlignment="Center" HorizontalAlignment="Left" Height="23" ToolTip="ownChat Kurzanleitung für Mitarbeiter herunterladen." x:Name="EmployeeHandoutButton" Visibility="Collapsed">
<Image Height="15" Width="15" Source='/Ressources/Icons/adobe-pdf-icon.png' Margin="3" RenderOptions.BitmapScalingMode="HighQuality" HorizontalAlignment="Center" />
</Button>
</Grid>
</GroupBox>
<!--
Text="{Binding Path=Code, UpdateSourceTrigger=PropertyChanged}"
IsChecked="{Binding Path=IsChecked}"
Text="{Binding Path=Notfallstatement, UpdateSourceTrigger=PropertyChanged}"
-->
</Grid>
</Grid>
</localView:BeWoView>

View File

@@ -1,4 +1,4 @@
<Window x:Class="BeWo.View.ChatView"
<Window x:Class="BeWo.ownChat.ChatView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
@@ -11,7 +11,7 @@
AllowsTransparency="True" Background="Transparent" Closed="MainWindow_OnClosed" >
<Grid>
<GroupBox Header="BeWoPlaner Chat" x:Name="rootGroupBox" Style="{DynamicResource MainContentGroupBoxWithMinMaxCloseBtnStyle}" MouseLeftButtonDown="RootGroupBox_OnMouseLeftButtonDown">
<GroupBox Header="ownChat" x:Name="rootGroupBox" Style="{DynamicResource MainContentGroupBoxWithMinMaxCloseBtnStyle}" MouseLeftButtonDown="RootGroupBox_OnMouseLeftButtonDown">
<cc:ChatMainControl x:Name="ChatMainControl" OnEmojii="ChatMainControl_OnOnEmoji" OnClose="ChatMainControl_OnOnClose" ></cc:ChatMainControl>
</GroupBox>
</Grid>

View File

@@ -15,15 +15,17 @@ using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using BeWo.Core.Config;
using BeWo.ServiceProxy;
using BeWo.View;
using BS.Shared.DataContracts.Compact;
using BS.Shared.Extensions;
using ChatController;
using ChatController.ChatKlassen;
using ChatController.Klassen;
using DevExpress.Xpf.Core;
using Button = System.Windows.Controls.Button;
using MessageBox = System.Windows.MessageBox;
namespace BeWo.View
namespace BeWo.ownChat
{
/// <summary>
/// Interaktionslogik für ChatService.xaml
@@ -41,8 +43,8 @@ namespace BeWo.View
ChatMainControl.InitMitChatdaten(chatDaten);
ChatMainControl.AddContextMenu("In Dokumentation übernehmen", ChatMainControl_OnClickContextMenuItem);
//in einem thread auslagern
LadeMessageInfoAusDatenBank();
Thread newThread = new Thread(ChatMainControl.SynchronisationVeranlassen);
newThread.IsBackground = true;
newThread.Start();
@@ -61,8 +63,7 @@ namespace BeWo.View
private void CloseWindow()
{
CommandBindings.Add(new CommandBinding(ApplicationCommands.Close, (s, e) =>
{
//Close();
{
Visibility = Visibility.Hidden;
if (_emojiView != null)
@@ -71,7 +72,8 @@ namespace BeWo.View
}
ChatMainControl.SpeichereMessageInfoInDatei();
SpeichereMessageInfosInDatenBank();
}));
}
@@ -173,11 +175,9 @@ namespace BeWo.View
#endregion
#region Close chat
#region Close chat / wird nicht benutzt
private void MainWindow_OnClosed(object sender, EventArgs e)
{
{
//_emojiView = null;
//ChatMainControl.SpeichereMessageInfoInDatei();
@@ -202,5 +202,48 @@ namespace BeWo.View
}
#endregion
#region Speichere/Lade MessageSync In DB
private void SpeichereMessageInfosInDatenBank()
{
var liste = ChatMainControl.UebergebeMessageInfoDatenFuerDb();
if (liste.Count != 0)
{
string text="";
foreach (var item in liste)
{
text += item.GroupId + ";" + item.TimeStamp + ";"+"&";
}
ServiceFacade.DoEmployeeServiceSync(r => r.CreateOrUpdateChatBewoMessageSync(BeWoApp.LoggedOnUser.Employee.EmployeeOid,text));
}
}
private void LadeMessageInfoAusDatenBank()
{
var item = ServiceFacade.DoEmployeeServiceSync(r => r.GetChatBewoMessageSync(BeWoApp.LoggedOnUser.Employee.EmployeeOid));
if (item != null)
{
string[] messageSynctext = item.MessageSyncText.Split('&');
Dictionary<long,DateTime> aa = new Dictionary<long, DateTime>();
foreach (var text in messageSynctext)
{
if (!text.Equals("")) {
string[] splitten = text.Split(';');
aa.Add(Convert.ToInt64(splitten[0]), DateTime.Parse(splitten[1]));
}
}
ChatMainControl.ErhalteMessageInfoVonDb(aa);
}
}
#endregion
}
}

View File

@@ -168,6 +168,13 @@ namespace BeWoPlanerMobil.Controllers
input.Status = "3";
if (daten.IsActive == ActivationTypeId.Archived)
input.Status = "2";
if (daten.TerminationDate != null && daten.TerminationDate.Value.Date < DateTime.Now.Date)
{
input.Status = "2";
}
input1.Add(input);

View File

@@ -2187,5 +2187,13 @@ namespace BeWo.Data.Access
return criteria.List<TextModule>();
}
public IEnumerable<ChatBewoMessageSync> FindEmployeeChatBewoMessageSync(long oid)
{
var c = CreateCriteriaIsActive<ChatBewoMessageSync>()
.Add(Restrictions.Eq(ChatBewoMessageSync.PropertyName_EmployeeOid, oid));
return c.List<ChatBewoMessageSync>();
}
}
}

View File

@@ -168,6 +168,7 @@
<Compile Include="Entities\ArbeitszeitListe.cs" />
<Compile Include="Entities\Customer2Token.cs" />
<Compile Include="Entities\Employee2Token.cs" />
<Compile Include="Entities\ChatBewoMessageSync.cs" />
<Compile Include="Entities\QuittierungsCheck.cs" />
<Compile Include="Entities\Token.cs" />
<Compile Include="Entities\VertretungsListe.cs" />
@@ -569,6 +570,9 @@
</Content>
<Content Include="ICD10\icd10gm2012syst_claml_20110923.xml" />
<Content Include="Mappings\CustomerTeam.hbm.xml" />
<EmbeddedResource Include="Mappings\ChatBewoMessageSync.hbm.xml">
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Mappings\QuittierungsCheck.hbm.xml">
<SubType>Designer</SubType>
</EmbeddedResource>

View File

@@ -0,0 +1,54 @@
using BS.Shared;
using System;
using System.Collections.Generic;
namespace BeWo.Data.Entities
{
public class ChatBewoMessageSync : BeWoEntityBase
{
public static string PropertyName_EmployeeOid = "EmployeeOid";
public static string PropertyName_MessageSyncText = "MessageSyncText";
private long? _EmployeeOid;
private string _MessageSyncText;
public ChatBewoMessageSync()
{
this._Tid = TableID.ChatBewoMessageSync;
}
public virtual string MessageSyncText
{
get
{
return this._MessageSyncText;
}
set
{
if (this.AreDifferent(this._MessageSyncText, value))
{
this._MessageSyncText = value;
}
}
}
public virtual long? EmployeeOid
{
get
{
return _EmployeeOid;
}
set
{
if (AreDifferent(_EmployeeOid, value))
{
_EmployeeOid = value;
}
}
}
}
}

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="BeWo.Data.Entities.ChatBewoMessageSync,BeWo.Data" table="chatbewomessagesync">
<id name="Oid" column ="Oid" unsaved-value="null">
<generator class="identity" />
</id>
<version type="Int64" column="Version" name="Version" />
<property name="InsTs" />
<property name="InsUser" />
<property column="Tid" type="BS.Shared.TableID, BS.Shared" name="_Tid" access="field" />
<property name="UdpUser" />
<property name="IsActive" type="BS.Shared.ActivationTypeId, BS.Shared" />
<property name="SystemEntryID" type="BS.Shared.SystemEntryID, BS.Shared" />
<property name="Notice" column="Notice" length="1024" />
<property name="EmployeeOid" column="EmployeeOid" />
<property name="MessageSyncText" column="MessageSyncText" />
</class>
</hibernate-mapping>

View File

@@ -0,0 +1,24 @@
CREATE TABLE `1234567890`.`chatbewomessagesync` (
`Oid` BIGINT(19) NOT NULL AUTO_INCREMENT COMMENT '',
`EmployeeOid` BIGINT(19) NULL COMMENT '',
`Tid` INT(10) NULL COMMENT '',
`Notice` VARCHAR(1024) NULL COMMENT '',
`InsTs` DATETIME NULL COMMENT '',
`InsUser` VARCHAR(1024) NULL COMMENT '',
`Version` BIGINT(19) NULL COMMENT '',
`UdpUser` VARCHAR(256) NULL COMMENT '',
`isActive` TINYINT(4) NULL COMMENT '',
`SystemEntryID` INT(10) NULL COMMENT '',
`MessageSyncText` VARCHAR(1024) NULL COMMENT '',
PRIMARY KEY (`Oid`) COMMENT '');

View File

@@ -0,0 +1,37 @@
using System.IO;
using BeWo.Data.Entities;
using BS.Shared;
using BS.Shared.DataContracts;
namespace BeWo.Service.DCEntityMapper
{
public class ChatBewoMessageSyncDC_ChatBewoMessageSync : AbstractIDCEntityMapper<ChatBewoMessageSync, ChatBewoMessageSyncDC>
{
public override ChatBewoMessageSyncDC MergeWithDC(ChatBewoMessageSync pEntity, ChatBewoMessageSyncDC pDataContract)
{
pDataContract.EmployeeOid = pEntity.EmployeeOid;
pDataContract.MessageSyncText = pEntity.MessageSyncText;
return pDataContract;
}
public override ChatBewoMessageSync MergeWithEntity(ChatBewoMessageSyncDC pDataContract, ChatBewoMessageSync pEntity)
{
pEntity.EmployeeOid = pDataContract.EmployeeOid;
pEntity.MessageSyncText = pDataContract.MessageSyncText;
return pEntity;
}
protected override bool AreDCAndEntityEqual(ChatBewoMessageSyncDC pDC, ChatBewoMessageSync pEntity)
{
if (pDC.ChatBewoMessageSyncOid == null)
{
return false;
}
return pDC.ChatBewoMessageSyncOid == pEntity.Oid;
}
}
}

View File

@@ -47,6 +47,8 @@ namespace BeWo.Service.DCEntityMapper
private static VertretungDC_Vertretung _VertretungDC_Vertretung;
private static ChatBewoMessageSyncDC_ChatBewoMessageSync _ChatBewoMessageSyncDC_ChatBewoMessageSync;
private static TokenDC_Token _TokenDC_Token;
private static QuittierungsCheckDC_QuittierungsCheck _QuittierungsCheckDC_QuittierungsCheck;
@@ -552,6 +554,14 @@ namespace BeWo.Service.DCEntityMapper
}
}
public static ChatBewoMessageSyncDC_ChatBewoMessageSync ChatBewoMessageSyncDC_ChatBewoMessageSync
{
get
{
return _ChatBewoMessageSyncDC_ChatBewoMessageSync ?? (_ChatBewoMessageSyncDC_ChatBewoMessageSync = new ChatBewoMessageSyncDC_ChatBewoMessageSync());
}
}
public static TokenDC_Token TokenDC_Token
{
get

View File

@@ -15,11 +15,11 @@ namespace BeWo.Service.Plugins
public virtual String AllowSaveCustomer(CustomerDC c)
{
//ZUM TESTEN ;-)
if (!String.IsNullOrWhiteSpace(c.Notice) && c.Notice.Contains("NEIN"))
{
return "NEIN";
}
// //ZUM TESTEN ;-)
//if (!String.IsNullOrWhiteSpace(c.Notice) && c.Notice.Contains("NEIN"))
//{
// return "NEIN";
//}
return null;
}
}

View File

@@ -230,6 +230,7 @@
<Compile Include="DCEntityMapper\CustomerTokenRelationDC_Customer2Token.cs" />
<Compile Include="DCEntityMapper\EmployeeTokenRelationDC_Employee2Token.cs" />
<Compile Include="DCEntityMapper\CompactTokenDC_Token.cs" />
<Compile Include="DCEntityMapper\ChatBewoMessageSyncDC_ChatBewoMessageSync.cs" />
<Compile Include="DCEntityMapper\QuittierungsCheckDC_QuittierungsCheck.cs" />
<Compile Include="DCEntityMapper\TokenDC_Token.cs" />
<Compile Include="DCEntityMapper\VertretungsListeDC_VertretungsListe.cs" />

View File

@@ -359,5 +359,13 @@ namespace BeWo.Service.ServiceContracts
[FaultContract(typeof(BeWoFault))]
[OperationContract]
EmployeeDC GetEmployeebyFullName(string fullName);
[FaultContract(typeof(BeWoFault))]
[OperationContract]
void CreateOrUpdateChatBewoMessageSync(long? eOid, string text);
[FaultContract(typeof(BeWoFault))]
[OperationContract]
ChatBewoMessageSyncDC GetChatBewoMessageSync(long? eOid);
}
}

View File

@@ -524,7 +524,7 @@ namespace BeWo.Service.ServiceContracts
[FaultContract(typeof(BeWoFault))]
[OperationContract]
CustomerAPPCodeDC CreateNewCustomerAPPCodeDC(long customerOid, string kundennummer, string apikey, long userOid);
CustomerAPPCodeDC CreateNewCustomerAPPCodeDC(long customerOid, string kundennummer, string apikey);
[FaultContract(typeof (BeWoFault))]
[OperationContract]
@@ -544,7 +544,7 @@ namespace BeWo.Service.ServiceContracts
[FaultContract(typeof(BeWoFault))]
[OperationContract]
EmployeeAPPCodeDC CreateNewEmployeeAPPCodeDC(long employeeOid, string kundennummer, string apikey, long userOid);
EmployeeAPPCodeDC CreateNewEmployeeAPPCodeDC(long employeeOid, string kundennummer, string apikey);
[FaultContract(typeof (BeWoFault))]
[OperationContract]
@@ -698,15 +698,11 @@ namespace BeWo.Service.ServiceContracts
[FaultContract(typeof(BeWoFault))]
[OperationContract]
PdfChatHandoutDC GetHandOutPdfForChat(string customerId, string apikey);
bool DeletEmloyeeChatCode(string apikey, string kundennummer, long employeeoid);
[FaultContract(typeof(BeWoFault))]
[OperationContract]
bool DeletEmloyeeChatCode(string apikey, string kundennummer, long userOid);
[FaultContract(typeof(BeWoFault))]
[OperationContract]
bool DeletCustomerChatCode(string apikey, string kundennummer, long userOid);
bool DeletCustomerChatCode(string apikey, string kundennummer, long customeroid);
[FaultContract(typeof(BeWoFault))]
[OperationContract]

View File

@@ -1352,6 +1352,68 @@ namespace BeWo.Service.ServiceImplementations
}
}
public void CreateOrUpdateChatBewoMessageSync(long? eOid, string text)
{
try
{
var chatMessageSync = DAOFactory.SearchDAO.FindEmployeeChatBewoMessageSync(eOid.Value);
int count = chatMessageSync.Count();
if(count > 0) {
foreach (var item in chatMessageSync)
{
item.MessageSyncText = text;
}
DAOFactory.GenericDAO.Update(chatMessageSync);
}
else {
ChatBewoMessageSyncDC cms = new ChatBewoMessageSyncDC();
cms.EmployeeOid = eOid;
cms.MessageSyncText = text;
var x = MapperFactory.ChatBewoMessageSyncDC_ChatBewoMessageSync.MapToNewEntity(cms);
DAOFactory.GenericDAO.Insert(x);
}
}
catch (Exception e)
{
throw Utils.CreateBeWoFaultException(e);
}
}
public ChatBewoMessageSyncDC GetChatBewoMessageSync(long? eOid)
{
try
{
var chatMessageSync = DAOFactory.GenericDAO.GetAllActive<ChatBewoMessageSync>();
ChatBewoMessageSync cms = null;
foreach (var item in chatMessageSync)
{
if (eOid == item.EmployeeOid)
{
cms = item;
}
}
if (cms != null)
{
var x = MapperFactory.ChatBewoMessageSyncDC_ChatBewoMessageSync.MapToNewDC(cms);
return x;
}
return null;
}
catch (Exception e)
{
throw Utils.CreateBeWoFaultException(e);
}
}
}
}

View File

@@ -3164,8 +3164,9 @@ namespace BeWo.Service.ServiceImplementations
}
}
public EmployeeAPPCodeDC CreateNewEmployeeAPPCodeDC(long employeeOid,string kundennummer,string apikey ,long personOid)
{
public EmployeeAPPCodeDC CreateNewEmployeeAPPCodeDC(long employeeOid, string kundennummer, string apikey)
{
try
{
#if DEBUG
@@ -3255,7 +3256,8 @@ namespace BeWo.Service.ServiceImplementations
}
}
public CustomerAPPCodeDC CreateNewCustomerAPPCodeDC(long customerOid,string kundennummer, string apikey, long personOid)
public CustomerAPPCodeDC CreateNewCustomerAPPCodeDC(long customerOid,string kundennummer, string apikey)
{
try
{
@@ -4550,8 +4552,6 @@ namespace BeWo.Service.ServiceImplementations
return lResult.OrderBy(s => s.Description).ToList();
}
public void CreateNewPerson2OrganisationRelation(long organi, ValueListEntryDC value, long personOid, string mail, string fax, string tele, string notice)
{
try
@@ -4580,6 +4580,7 @@ namespace BeWo.Service.ServiceImplementations
}
}
public PdfChatHandoutDC GetHandOutPdfForChat(string customerId,string apikey)
{
try
@@ -4777,16 +4778,13 @@ namespace BeWo.Service.ServiceImplementations
}
}
public bool DeletCustomerChatCode(string apikey,string kundennummer,long customerOid)
public bool DeletCustomerChatCode(string apikey,string kundennummer,long customeroid)
{
try
{
//CB###### NACH CLIENT UPDATE RAUS
var cust = DAOFactory.SearchDAO.FindCustomerWithPersonOid(customerOid);
DeletZufallsCode(apikey, kundennummer, "C" + cust.Oid.Value);
DeletZufallsCode(apikey, kundennummer, "C" + customeroid);
var customerappcode = DAOFactory.SearchDAO.FindAllCustomerAppCodes(cust.Oid.Value);
var customerappcode = DAOFactory.SearchDAO.FindAllCustomerAppCodes(customeroid);
var anzahl = customerappcode.Count();
@@ -4814,17 +4812,14 @@ namespace BeWo.Service.ServiceImplementations
}
}
public bool DeletEmloyeeChatCode(string apikey, string kundennummer, long employeeOid)
public bool DeletEmloyeeChatCode(string apikey, string kundennummer,long employeeoid)
{
try
{
//CB###### NACH CLIENT UPDATE RAUS
var emp = DAOFactory.SearchDAO.FindEmployeeWithPersonOid(employeeOid);
DeletZufallsCode(apikey, kundennummer, "E" + employeeoid);
var employeeappcode = DAOFactory.SearchDAO.FindAllEmployeeAppCodes(employeeoid);
DeletZufallsCode(apikey, kundennummer, "E" + emp.Oid.Value);
var employeeappcode = DAOFactory.SearchDAO.FindAllEmployeeAppCodes(emp.Oid.Value);
var anzahl = employeeappcode.Count();

View File

@@ -128,8 +128,9 @@ namespace BS.Shared
Vertretung = 121,
Employee2Token = 122,
QuittierungsCheck = 123,
CustomerTeam = 124
}
CustomerTeam = 124,
ChatBewoMessageSync = 125
}
public enum SystemEntryID
{
@@ -371,6 +372,8 @@ namespace BS.Shared
ServiceRecord_AllowCreatingGroupBooking = 10029,
ServiceRecord_AllowCreatingMultiBooking = 10030,
TeamView_ViewMyTeams = 10031,
Customer_ViewMyTeams = 10032,
SupportConcept_ViewMyTeams = 10033,
Employee_AllowEditExtendedProperties = 20000,
Employee_AllowEditContracts = 20001,
@@ -909,9 +912,11 @@ namespace BS.Shared
public enum PasswortSecurityStrength
{
SehrSchwach,
Schwach,
Mittelmass,
Stark
Stark,
SehrStark
}
public enum ZeiterfassungsDauer

View File

@@ -97,7 +97,10 @@ namespace BS.Shared.Core
},
{
UserRightType.Customer_ViewMyCustomers, Translator.Translate("Klienten ansehen (Nur vom Mitarbeiter betreute)")
},
},
{
UserRightType.Customer_ViewMyTeams, Translator.Translate("Klienten meines Teams ansehen")
},
{
UserRightType.DeleteAll, Translator.Translate("Alles löschen")
},
@@ -337,7 +340,10 @@ namespace BS.Shared.Core
},
{
UserRightType.SupportConcept_ViewAllSupportConcepts, Translator.Translate("Hilfepläne ansehen (alle)")
},
},
{
UserRightType.SupportConcept_ViewMyTeams, Translator.Translate("Hilfepläne meines Teams ansehen")
},
{
UserRightType.SupportConcept_AllowGoalOrientedSupportConcepts, Translator.Translate("Hilfepläne zielorientiert planen")
},

View File

@@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
namespace BS.Shared.DataContracts
{
[DataContract]
public class ChatBewoMessageSyncDC : IDataContract
{
[DataMember]
public long? ChatBewoMessageSyncOid { get; set; }
[DataMember]
public long? EmployeeOid { get; set; }
[DataMember]
public string MessageSyncText { get; set; }
}
}

View File

@@ -186,6 +186,7 @@
<Compile Include="DataContracts\ArbeitszeitEintragDC.cs" />
<Compile Include="DataContracts\CustomerTokenRelationDC.cs" />
<Compile Include="DataContracts\EmployeeTokenRelationDC.cs" />
<Compile Include="DataContracts\ChatBewoMessageSyncDC.cs" />
<Compile Include="DataContracts\QuittierungsCheckDC.cs" />
<Compile Include="DataContracts\VertretungsKlientAccountingsListeItemsDC.cs" />
<Compile Include="DataContracts\QuittierungsCheckViewListItemsDC.cs" />