85 Commits

Author SHA1 Message Date
rene
fddb569212 Zwischenstand: Am Updater fehlen noch kleinere Features und im BeWoMain sind noch Bugs drinne.
Aber das meiste haben wir hinter uns :)
2021-09-30 15:31:13 +02:00
rene
e26113d24b Zwischenstand: SharedLauncher wird in BeWoLauncher kopiert, BeWoCore verwendet SharedLauncher aus BeWoLauncher 2021-09-30 12:21:32 +02:00
rene
569d477572 Zwischenstand: Init von MainView aufgeteilt. BeWoApp -> MainView -> BeWoApp Rest 2021-08-03 09:59:12 +02:00
rene
aea72f2412 Zwischenstand: Bewo Core hat noch Konflikte 2021-08-03 09:35:12 +02:00
rene
43f7bec34d Namensänderung ReportingService -> ReportService #3 Fettfinger 2021-03-16 11:49:24 +01:00
rene
9885b2ba6a Namensänderung ReportingService -> ReportService #2 2021-03-16 11:39:40 +01:00
rene
d3ee77b3cc Namensänderung ReportingService -> ReportService
(einheitlicher)
2021-03-11 15:15:20 +01:00
rene
a7cedee344 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2020-10-22 12:21:48 +02:00
rene
1e228ba3a1 Kalender Export iCalender 2020-10-22 12:20:35 +02:00
Marcel Hirschle
bc3a354eca neue Dateien für Quittierungsbelegsstatus 2020-10-21 10:26:40 +02:00
Marcel Hirschle
236c266de5 Wegweiser Betreuungsdienst: Ordnerstruktur für neue Klienten erstellt 2020-10-20 17:31:26 +02:00
Marcel Hirschle
0f860c0187 Für DiakonischesWerkWesel Finanzauswertung angepasst 2020-10-20 11:25:44 +02:00
Marcel Hirschle
5fb8d67351 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2020-10-19 17:28:00 +02:00
Marcel Hirschle
51565211b8 MH Quittierungsbelegsstatus-Übersicht + Version auf 4.7.2 2020-10-19 17:22:40 +02:00
Christian
309301cf34 CB, Template für NeuKunden 2020-10-16 16:48:35 +02:00
Christian
6f67519bce Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2020-10-16 13:06:46 +02:00
Christian
a74869de04 CB, bugfixing neue Version 2020-10-16 13:02:29 +02:00
rene
bfc7b28d38 Merge branch 'BewoRene'
# Conflicts:
#	BeWo/ServiceProxy/Generated.cs
#	Report/DefaultReportCreator.cs
#	Service/ServiceContracts/IOperationsService.cs
2020-10-13 15:22:48 +02:00
rene
28d271f86f Urlaubskonto Berechnung
Urlaubskonto Anzeige AbwesenheitsView
2020-10-13 14:35:06 +02:00
Christian
32cdbb1097 CB Merge Konflikte behoben 2020-10-12 13:53:51 +02:00
Christian
4cb6efcaee Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	BeWo/ServiceProxy/Generated.cs
#	Host/Multitenancy/demo.config
2020-10-12 13:37:29 +02:00
Christian
ef24988f0e CB, Reports 2020-10-12 13:03:05 +02:00
Lyndon Jetten
1f43e8986b Bug mit Popups behoben
Speichern-Button bei der Unterschriftenfunktion ist jetzt über dem Canvas
Canvas-Inhalt wird beim drehen beibehalten.
2020-10-08 18:32:20 +02:00
Lyndon Jetten
045ba8593c Unterschriftenfeld füllt im quergehaltenen Handy nur noch 85% der Breite aus, sodass man mit den Rändern neben dem Feld scrollen kann.
Optimierung der Größenänderung des Unterschriftenfelds
2020-10-07 19:42:17 +02:00
Lyndon Jetten
31fc428189 Neue Unterschriftenfunktion und Lizenzanzeige in der Mobilversion 2020-10-06 18:26:04 +02:00
Lyndon Jetten
091c29ddf7 Merge 2020-10-01 14:33:10 +02:00
Lyndon Jetten
2da382531c Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2020-10-01 13:58:10 +02:00
Lyndon Jetten
23553e1584 x 2020-10-01 11:45:48 +02:00
Christian
4ae3a82f09 CB Reports 2020-10-01 10:37:26 +02:00
Christian
b2b86a4f14 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2020-10-01 10:32:39 +02:00
Christian
0453d5b31c CB: Reports und Bugfixing SBD 2020-10-01 10:32:31 +02:00
Lyndon Jetten
1fd6040f58 Kilometerauswertung für Mitarbeiter
Ressourcencheck ist jetzt korrekt
Weiterentwicklung der Quittierungsbelege für die Mobilversion
2020-09-30 19:23:42 +02:00
rene
ccad6ad68c Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	BeWo/ServiceProxy/Generated.cs
#	BeWo/View/Master/ReportView.xaml.cs
#	BeWo/View/Report/Employee/EmployeeHourReportView.xaml
#	Data/Data.csproj
#	Report/AbstractReportCreator.cs
#	Report/DefaultReportCreator.cs
#	Report/Report.csproj
#	Service/DCEntityMapper/MapperFactory.cs
#	Service/Service.csproj
#	Service/ServiceContracts/IOperationsService.cs
#	Service/ServiceImplementations/OperationsServiceImp.cs
#	Shared/BeWoEntityEnums.cs
#	Shared/DataContracts/ReportTypes.cs
#	Shared/Shared.csproj
2020-09-30 12:07:08 +02:00
rene
98363ea890 Dienstplaner, Abwesenheiten, Drucken 2020-09-30 10:00:31 +02:00
Christian
0aa1594ffa cb: Theme geändert 2020-09-25 13:58:45 +02:00
Christian
b4b0e9db25 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	BeWo/ServiceProxy/Generated.cs
2020-09-24 01:52:40 +02:00
Christian
5cffa4ef32 CB, new icons 2020-09-24 00:49:37 +02:00
Christian
23dfb8dd80 CB: Reports, Umbau Ziele/Maßnahmen, Bugfixing Dateinamen auf Sonderzeichen prüfen 2020-09-23 22:10:52 +02:00
Lyndon Jetten
0cb5c02831 BeWoPlanerMobil:
Fortschritt bei Quittierungsbelegunterschrift

Qlik:
    Zeitraum hinzugefügt
2020-09-23 16:00:51 +02:00
Lyndon Jetten
14b04d1685 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2020-09-21 11:57:18 +02:00
Lyndon Jetten
63d9844e3f BeWoPlanerMobil:
Beim Bearbeiten von Zeiterfassungseinträgen ohne Zeitangaben wird das Datum nicht mehr auf 0 Uhr gesetzt
2020-09-21 11:57:10 +02:00
Christian
1a997708a7 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2020-09-18 15:59:12 +02:00
Christian
3f47565586 cb, neues Mitarbeiterstundenkonto 2020-09-18 15:59:03 +02:00
Lyndon Jetten
f645770b16 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2020-09-15 16:03:52 +02:00
Lyndon Jetten
bd7350106c Mobilversion:
Einträge ohne Uhrzeit nehmen new Date() anstelle des 01.01.1900.
2020-09-15 16:03:49 +02:00
Christian
ad3531ce6b Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	ReportImp/demo_reports/Export/QlikCsvExporter.cs
2020-09-15 13:27:15 +02:00
Christian
7a441a9956 cb diverse bugfixing 2020-09-15 13:23:34 +02:00
Christian
e60ea35935 cb, Unterstützung von mehreren Rechnunungsnummern 2020-09-15 13:14:43 +02:00
Christian
a49343786e cb, new reports 2020-09-15 13:12:53 +02:00
Lyndon Jetten
af424556f2 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2020-09-14 19:07:32 +02:00
Lyndon Jetten
42ece55df3 BeWoPlanerMobil:
Zeiterfassungseinträge auch ohne Uhrzeit möglich
2020-09-14 19:07:23 +02:00
Christian
49dd33b241 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2020-09-04 12:35:28 +02:00
Christian
540f53326d cb Verweise 2020-09-04 12:34:37 +02:00
Lyndon Jetten
a641b691b0 Die Werte der Qlik-Mitabeiterauswertung stimmen jetzt 2020-09-02 19:50:32 +02:00
Christian
f8e7600019 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2020-09-02 18:20:36 +02:00
Christian
3b4e24e7eb cb fixed references 2020-09-02 18:20:32 +02:00
Christian
b5f5554dcf cb bugfixing 2020-09-02 18:19:15 +02:00
Christian
c68f7f8fdc CB Reports 2020-09-02 17:41:09 +02:00
Lyndon Jetten
d801a76481 Qlik-Sql-Skript 2020-08-31 18:03:49 +02:00
Lyndon Jetten
2f84b9962d . 2020-08-31 18:01:59 +02:00
Lyndon Jetten
ef016941f5 . 2020-08-31 17:54:40 +02:00
Lyndon Jetten
03cd4c5905 Qlik-Reporte eingebaut 2020-08-31 17:44:05 +02:00
Christian
128901cf16 CB Projekt Verweise korrigiert 2020-08-20 19:15:30 +02:00
Christian
ef262894b3 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	BeWo/ServiceProxy/Generated.cs
#	Host/Multitenancy/demo.config
2020-08-20 18:45:42 +02:00
Christian
816b7c88e4 CB, Sicherheitszeug 2020-08-20 18:35:33 +02:00
Lyndon Jetten
1fc2ffcc2d Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
Ein Arsch voll Konflikte.
2020-08-19 12:15:10 +02:00
Christian
7c3424c00f CB 2020-08-17 15:50:41 +02:00
Christian
0f565685b0 CB Jede Menge Reports und die Rating Änderungen 2020-08-17 15:50:00 +02:00
Christian
dba047c59b cb dies und das 2020-04-15 18:24:01 +02:00
Christian
9fd84c7f62 cb SBD 2020-04-15 18:22:10 +02:00
Christian
2e9f59a531 cb Kundenreports 2020-04-15 18:20:43 +02:00
Christian
85785d6bbe cb Reports und Renes Dienstplaner 2020-04-08 14:25:01 +02:00
Christian
f2fda51f16 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	BeWo/BeWo.csproj
#	Host/Multitenancy/demo.config
2020-04-08 14:12:45 +02:00
Christian
a953db7931 cb reports 2020-03-03 09:27:02 +01:00
rene
6ac29c8bed Dienstplaner:
- Dienst Objekt (Informationen über Name, Kürzel, Zeitraum, Pause, Farbe) eingefügt
- Dienst in Verwaltung implementiert
- Dienstplaner Tab in Auswertung eingefügt

Allgemein:
- Budget Variablen auf privat gestellt
2020-02-27 15:10:29 +01:00
Christian
67152c6f71 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2020-02-06 19:07:19 +01:00
Christian
9ba9b4ddca cb 2020-02-06 19:06:32 +01:00
Christian
8dd3b51815 cb diverse bugfixing 2020-02-06 18:57:35 +01:00
Christian
a2c942bf48 cb diverse bugfixing 2020-02-06 18:56:40 +01:00
Christian
cda0b10554 cb bugfixing textbausteine in mobil version 2020-02-06 18:44:35 +01:00
Christian
2c91535937 cb new reports 2020-02-06 18:43:11 +01:00
Christian
857d328379 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2019-12-12 17:33:14 +01:00
Christian
71e92df25a cb 2019-12-12 17:32:48 +01:00
Christian
45689f6372 cb 2019-12-12 17:31:50 +01:00
Christian
3449ef5b40 cb reports 2019-12-12 17:28:10 +01:00
2076 changed files with 395331 additions and 37381 deletions

70
.gitignore vendored
View File

@@ -1,19 +1,24 @@
/AndroidChatServer/Serveranwendung/obj
/AndroidChatServer/Serveranwendung/Serveranwendung/obj
/BeWoOhneReports.v12.suo
/BeWo/bin
/BeWo/obj
/BeWoChatServer/bin
/BeWoChatServer/obj
/BeWoLauncher/bin
/BeWoLauncher/obj
/BeWoPlanerAndroid/bin
/BeWoPlanerAndroid/obj
/BeWoPlanerMobil/bin
/BeWoPlanerMobil/obj
/BeWoPlanerMobil/node_modules
/Host/bin
/Host/obj
/Controls/bin
/Controls/obj
/Data/bin
/Data/obj
/LauncherHost/bin
/LauncherHost/obj
/Report/bin
/Report/obj
/ReportImp/AachenerVereinReports/obj
@@ -187,6 +192,8 @@
/Service/obj
/Shared/bin
/Shared/obj
/SharedLite/bin
/SharedLite/obj
/ReportImp/ABWElsebrock/bin
/ReportImp/ABWElsebrock/obj
/ReportImp/FortschritteEV/bin
@@ -416,4 +423,63 @@
/ReportImp/KuhringBetreuung/obj/Release
/ReportImp/LebenshilfeFrankfurtOder/obj/Debug
/ReportImp/LebenshilfeFrankfurtOder/obj/Release
/BeWoPlanerMobil/delete_and_ignore_file.txt
/ReportImp/AbwKlassen/bin/Debug
/ReportImp/AbwKlassen/bin/Release
/ReportImp/AbwKlassen/obj/Debug
/ReportImp/AbwKlassen/obj/Release
/ReportImp/DiakonischesWerkMuelheimTwg/bin/Debug
/ReportImp/DiakonischesWerkMuelheimTwg/obj/Debug
/ReportImp/DiakonischesWerkMuelheimTwg/obj/Release
/ReportImp/Inkomm/obj/Debug
/ReportImp/Inkomm/obj/Release
/ReportImp/LebenshilfeDorsten/obj/Debug
/ReportImp/LebenshilfeDorsten/obj/Release
/ReportImp/QuerFaelltEin/obj/Debug
/ReportImp/QuerFaelltEin/obj/Release
/ReportImp/AsbRuhr/obj/Debug
/ReportImp/AsbRuhr/obj/Release
/ReportImp/DiePerspektive/obj/Debug
/ReportImp/DiePerspektive/obj/Release
/ReportImp/PhoenixBeWo/obj/Debug
/ReportImp/PhoenixBeWo/obj/Release
/ReportImp/EvangelischeKirchengemeindeBottrop/obj/Debug
/ReportImp/EvangelischeKirchengemeindeBottrop/obj/Release
/ReportImp/InputFamilienhilfe/obj/Debug
/ReportImp/InputFamilienhilfe/obj/Release
/ReportImp/LebenshilfeWolfsburg/obj/Debug
/ReportImp/LebenshilfeWolfsburg/obj/Release
/ReportImp/SichtWeise/obj/Debug
/ReportImp/SichtWeise/obj/Release
/packages
/ReportImp/BfpDus/obj/Debug
/ReportImp/BfpDus/obj/Release
/ReportImp/DiakonischesWerkWesel/obj/Debug
/ReportImp/DiakonischesWerkWesel/obj/Release
/ReportImp/KcmGmbH/obj/Debug
/ReportImp/KcmGmbH/obj/Release
/ReportImp/LebenshilfeRodenkirchen2Reports/obj/Debug
/ReportImp/LebenshilfeRodenkirchen2Reports/obj/Release
/ReportImp/PraunheimerWerkstaetten3/obj/Debug
/ReportImp/PraunheimerWerkstaetten3/obj/Release
/ReportImp/PraunheimerWerkstaetten2/obj/Release
/ReportImp/PraunheimerWerkstaetten2/obj/Debug
/ReportImp/RosegGmbH/obj/Debug
/ReportImp/RosegGmbH/obj/Release
/ReportImp/VkmHamm2/obj/Debug
/ReportImp/VkmHamm2/obj/Release
/ReportImp/BellaDonna/obj/Debug
/ReportImp/BellaDonna/obj/Release
/ReportImp/PsychosozialeHilfenBochum/obj/Debug
/ReportImp/PsychosozialeHilfenBochum/obj/Release
/ReportImp/DieBrueckeHilfeUndHalt/obj/Debug
/ReportImp/DieBrueckeHilfeUndHalt/obj/Release
/ReportImp/DiakonischesWerkHerne/obj/Debug
/ReportImp/DiakonischesWerkHerne/obj/Release
/ReportImp/SabGmbH/obj/Debug
/ReportImp/SabGmbH/obj/Release
/ReportImp/BeWoFlex/obj/Debug
/ValidationLibrary/obj/Debug/*.cache
*.cache
/SharedLauncher/bin
/SharedLauncher/obj
/DLLs

View File

@@ -1,7 +1,7 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.27130.2010
# Visual Studio Version 16
VisualStudioVersion = 16.0.30523.141
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Client", "Client", "{E7543C39-A44C-40C9-82C9-E7FAA2D9A852}"
EndProject
@@ -391,6 +391,16 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PraxisPusteblume", "ReportI
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SawoReports", "ReportImp\SawoReports\SawoReports.csproj", "{E590CC37-E2A4-488F-BBA2-C70042BD488D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BeWoFlex", "ReportImp\BeWoFlex\BeWoFlex.csproj", "{C1FED668-ADB9-47E0-B589-1389618E1B6E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DiePerspektive", "ReportImp\DiePerspektive\DiePerspektive.csproj", "{D4094646-4495-4FD8-AA8C-770E2EFCE7E8}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AsbRuhr", "ReportImp\AsbRuhr\AsbRuhr.csproj", "{08CB01F6-CD13-4A5A-9A50-7F503A49B7F8}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DiakonischesWerkWesel", "ReportImp\DiakonischesWerkWesel\DiakonischesWerkWesel.csproj", "{062698EA-8477-4F07-BF2A-CE4FAE4DCFA3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Humanitas", "ReportImp\Humanitas\Humanitas.csproj", "{DB03F765-7CE2-40A6-B469-BCEBE61ACF9E}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|.NET = Debug|.NET
@@ -2902,6 +2912,86 @@ Global
{E590CC37-E2A4-488F-BBA2-C70042BD488D}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{E590CC37-E2A4-488F-BBA2-C70042BD488D}.Release|x86.ActiveCfg = Release|Any CPU
{E590CC37-E2A4-488F-BBA2-C70042BD488D}.Release|x86.Build.0 = Release|Any CPU
{C1FED668-ADB9-47E0-B589-1389618E1B6E}.Debug|.NET.ActiveCfg = Debug|Any CPU
{C1FED668-ADB9-47E0-B589-1389618E1B6E}.Debug|.NET.Build.0 = Debug|Any CPU
{C1FED668-ADB9-47E0-B589-1389618E1B6E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C1FED668-ADB9-47E0-B589-1389618E1B6E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C1FED668-ADB9-47E0-B589-1389618E1B6E}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{C1FED668-ADB9-47E0-B589-1389618E1B6E}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{C1FED668-ADB9-47E0-B589-1389618E1B6E}.Debug|x86.ActiveCfg = Debug|Any CPU
{C1FED668-ADB9-47E0-B589-1389618E1B6E}.Debug|x86.Build.0 = Debug|Any CPU
{C1FED668-ADB9-47E0-B589-1389618E1B6E}.Release|.NET.ActiveCfg = Release|Any CPU
{C1FED668-ADB9-47E0-B589-1389618E1B6E}.Release|.NET.Build.0 = Release|Any CPU
{C1FED668-ADB9-47E0-B589-1389618E1B6E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C1FED668-ADB9-47E0-B589-1389618E1B6E}.Release|Any CPU.Build.0 = Release|Any CPU
{C1FED668-ADB9-47E0-B589-1389618E1B6E}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{C1FED668-ADB9-47E0-B589-1389618E1B6E}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{C1FED668-ADB9-47E0-B589-1389618E1B6E}.Release|x86.ActiveCfg = Release|Any CPU
{C1FED668-ADB9-47E0-B589-1389618E1B6E}.Release|x86.Build.0 = Release|Any CPU
{D4094646-4495-4FD8-AA8C-770E2EFCE7E8}.Debug|.NET.ActiveCfg = Debug|Any CPU
{D4094646-4495-4FD8-AA8C-770E2EFCE7E8}.Debug|.NET.Build.0 = Debug|Any CPU
{D4094646-4495-4FD8-AA8C-770E2EFCE7E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D4094646-4495-4FD8-AA8C-770E2EFCE7E8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D4094646-4495-4FD8-AA8C-770E2EFCE7E8}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{D4094646-4495-4FD8-AA8C-770E2EFCE7E8}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{D4094646-4495-4FD8-AA8C-770E2EFCE7E8}.Debug|x86.ActiveCfg = Debug|Any CPU
{D4094646-4495-4FD8-AA8C-770E2EFCE7E8}.Debug|x86.Build.0 = Debug|Any CPU
{D4094646-4495-4FD8-AA8C-770E2EFCE7E8}.Release|.NET.ActiveCfg = Release|Any CPU
{D4094646-4495-4FD8-AA8C-770E2EFCE7E8}.Release|.NET.Build.0 = Release|Any CPU
{D4094646-4495-4FD8-AA8C-770E2EFCE7E8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D4094646-4495-4FD8-AA8C-770E2EFCE7E8}.Release|Any CPU.Build.0 = Release|Any CPU
{D4094646-4495-4FD8-AA8C-770E2EFCE7E8}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{D4094646-4495-4FD8-AA8C-770E2EFCE7E8}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{D4094646-4495-4FD8-AA8C-770E2EFCE7E8}.Release|x86.ActiveCfg = Release|Any CPU
{D4094646-4495-4FD8-AA8C-770E2EFCE7E8}.Release|x86.Build.0 = Release|Any CPU
{08CB01F6-CD13-4A5A-9A50-7F503A49B7F8}.Debug|.NET.ActiveCfg = Debug|Any CPU
{08CB01F6-CD13-4A5A-9A50-7F503A49B7F8}.Debug|.NET.Build.0 = Debug|Any CPU
{08CB01F6-CD13-4A5A-9A50-7F503A49B7F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{08CB01F6-CD13-4A5A-9A50-7F503A49B7F8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{08CB01F6-CD13-4A5A-9A50-7F503A49B7F8}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{08CB01F6-CD13-4A5A-9A50-7F503A49B7F8}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{08CB01F6-CD13-4A5A-9A50-7F503A49B7F8}.Debug|x86.ActiveCfg = Debug|Any CPU
{08CB01F6-CD13-4A5A-9A50-7F503A49B7F8}.Debug|x86.Build.0 = Debug|Any CPU
{08CB01F6-CD13-4A5A-9A50-7F503A49B7F8}.Release|.NET.ActiveCfg = Release|Any CPU
{08CB01F6-CD13-4A5A-9A50-7F503A49B7F8}.Release|.NET.Build.0 = Release|Any CPU
{08CB01F6-CD13-4A5A-9A50-7F503A49B7F8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{08CB01F6-CD13-4A5A-9A50-7F503A49B7F8}.Release|Any CPU.Build.0 = Release|Any CPU
{08CB01F6-CD13-4A5A-9A50-7F503A49B7F8}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{08CB01F6-CD13-4A5A-9A50-7F503A49B7F8}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{08CB01F6-CD13-4A5A-9A50-7F503A49B7F8}.Release|x86.ActiveCfg = Release|Any CPU
{08CB01F6-CD13-4A5A-9A50-7F503A49B7F8}.Release|x86.Build.0 = Release|Any CPU
{062698EA-8477-4F07-BF2A-CE4FAE4DCFA3}.Debug|.NET.ActiveCfg = Debug|Any CPU
{062698EA-8477-4F07-BF2A-CE4FAE4DCFA3}.Debug|.NET.Build.0 = Debug|Any CPU
{062698EA-8477-4F07-BF2A-CE4FAE4DCFA3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{062698EA-8477-4F07-BF2A-CE4FAE4DCFA3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{062698EA-8477-4F07-BF2A-CE4FAE4DCFA3}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{062698EA-8477-4F07-BF2A-CE4FAE4DCFA3}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{062698EA-8477-4F07-BF2A-CE4FAE4DCFA3}.Debug|x86.ActiveCfg = Debug|Any CPU
{062698EA-8477-4F07-BF2A-CE4FAE4DCFA3}.Debug|x86.Build.0 = Debug|Any CPU
{062698EA-8477-4F07-BF2A-CE4FAE4DCFA3}.Release|.NET.ActiveCfg = Release|Any CPU
{062698EA-8477-4F07-BF2A-CE4FAE4DCFA3}.Release|.NET.Build.0 = Release|Any CPU
{062698EA-8477-4F07-BF2A-CE4FAE4DCFA3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{062698EA-8477-4F07-BF2A-CE4FAE4DCFA3}.Release|Any CPU.Build.0 = Release|Any CPU
{062698EA-8477-4F07-BF2A-CE4FAE4DCFA3}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{062698EA-8477-4F07-BF2A-CE4FAE4DCFA3}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{062698EA-8477-4F07-BF2A-CE4FAE4DCFA3}.Release|x86.ActiveCfg = Release|Any CPU
{062698EA-8477-4F07-BF2A-CE4FAE4DCFA3}.Release|x86.Build.0 = Release|Any CPU
{DB03F765-7CE2-40A6-B469-BCEBE61ACF9E}.Debug|.NET.ActiveCfg = Debug|Any CPU
{DB03F765-7CE2-40A6-B469-BCEBE61ACF9E}.Debug|.NET.Build.0 = Debug|Any CPU
{DB03F765-7CE2-40A6-B469-BCEBE61ACF9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DB03F765-7CE2-40A6-B469-BCEBE61ACF9E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DB03F765-7CE2-40A6-B469-BCEBE61ACF9E}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{DB03F765-7CE2-40A6-B469-BCEBE61ACF9E}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{DB03F765-7CE2-40A6-B469-BCEBE61ACF9E}.Debug|x86.ActiveCfg = Debug|Any CPU
{DB03F765-7CE2-40A6-B469-BCEBE61ACF9E}.Debug|x86.Build.0 = Debug|Any CPU
{DB03F765-7CE2-40A6-B469-BCEBE61ACF9E}.Release|.NET.ActiveCfg = Release|Any CPU
{DB03F765-7CE2-40A6-B469-BCEBE61ACF9E}.Release|.NET.Build.0 = Release|Any CPU
{DB03F765-7CE2-40A6-B469-BCEBE61ACF9E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DB03F765-7CE2-40A6-B469-BCEBE61ACF9E}.Release|Any CPU.Build.0 = Release|Any CPU
{DB03F765-7CE2-40A6-B469-BCEBE61ACF9E}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{DB03F765-7CE2-40A6-B469-BCEBE61ACF9E}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{DB03F765-7CE2-40A6-B469-BCEBE61ACF9E}.Release|x86.ActiveCfg = Release|Any CPU
{DB03F765-7CE2-40A6-B469-BCEBE61ACF9E}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -3093,6 +3183,11 @@ Global
{8A83C4DC-A0B1-4A51-AE1D-366D7A05B298} = {E7543C39-A44C-40C9-82C9-E7FAA2D9A852}
{A6E699B3-8399-4B8D-90F1-119B021F3D44} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{E590CC37-E2A4-488F-BBA2-C70042BD488D} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{C1FED668-ADB9-47E0-B589-1389618E1B6E} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{D4094646-4495-4FD8-AA8C-770E2EFCE7E8} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{08CB01F6-CD13-4A5A-9A50-7F503A49B7F8} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{062698EA-8477-4F07-BF2A-CE4FAE4DCFA3} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{DB03F765-7CE2-40A6-B469-BCEBE61ACF9E} = {D8A691C5-146D-4613-86CC-438F02FE9106}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {FBE985BB-9F0F-4DBB-8F94-ABC37A803FF9}

View File

@@ -5,7 +5,7 @@
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{3FEBB560-9275-413A-9767-BB68C44EEBC3}</ProjectGuid>
<OutputType>WinExe</OutputType>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>BeWo</RootNamespace>
<AssemblyName>BeWoPlaner</AssemblyName>
@@ -19,7 +19,7 @@
<SignManifests>false</SignManifests>
<ManifestKeyFile>
</ManifestKeyFile>
<ManifestCertificateThumbprint>D9ACF3EBC5E47956B8D786361F7061E3F6D6F286</ManifestCertificateThumbprint>
<ManifestCertificateThumbprint>D7D02C6BE66C484058796E17BD368F3C81B4AA88</ManifestCertificateThumbprint>
<IsWebBootstrapper>true</IsWebBootstrapper>
<SignAssembly>false</SignAssembly>
<ExpressionBlendVersion>3.0.1927.0</ExpressionBlendVersion>
@@ -43,12 +43,12 @@
<TargetCulture>de-DE</TargetCulture>
<ProductName>BeWoPlaner</ProductName>
<PublisherName>beyondSoft GmbH</PublisherName>
<MinimumRequiredVersion>2.0.1.172</MinimumRequiredVersion>
<MinimumRequiredVersion>2.0.1.186</MinimumRequiredVersion>
<CreateWebPageOnPublish>true</CreateWebPageOnPublish>
<WebPage>publish.htm</WebPage>
<OpenBrowserOnPublish>false</OpenBrowserOnPublish>
<TrustUrlParameters>true</TrustUrlParameters>
<ApplicationRevision>173</ApplicationRevision>
<ApplicationRevision>187</ApplicationRevision>
<ApplicationVersion>2.0.1.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<CreateDesktopShortcut>true</CreateDesktopShortcut>
@@ -89,6 +89,10 @@
<ManifestTimestampUrl>
</ManifestTimestampUrl>
</PropertyGroup>
<PropertyGroup>
<StartupObject />
</PropertyGroup>
<PropertyGroup />
<ItemGroup>
<Reference Include="Blacklight.Wpf.Controls, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
@@ -102,6 +106,7 @@
<Reference Include="DevExpress.RichEdit.v17.1.Core, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Utils.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Mvvm.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Web.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Xpf.Accordion.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Xpf.Core.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Xpf.Charts.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
@@ -115,28 +120,23 @@
<Reference Include="DevExpress.Xpf.Printing.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Xpf.Ribbon.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Xpf.RichEdit.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Images.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Xpf.Scheduler.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Xpf.Themes.LightGray.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Xpf.Themes.Office2007Black.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Xpf.Themes.Office2010Black.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Xpf.Themes.Office2013.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Xpf.Themes.Office2016White.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraBars.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraEditors.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraPivotGrid.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraPrinting.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraCharts.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.PivotGrid.v17.1.Core, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Sparkline.v17.1.Core, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.CodeParser.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.RichEdit.v17.1.Export, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraReports.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraScheduler.v17.1.Reporting.Extensions, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraGrid.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraScheduler.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraScheduler.v17.1.Core, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraScheduler.v17.1.Reporting, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
@@ -153,6 +153,7 @@
<HintPath>..\packages\RestSharp.105.2.3\lib\net45\RestSharp.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Configuration" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
@@ -196,6 +197,10 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="MainDictionary.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="ProxyLoginView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
@@ -236,21 +241,13 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="LoginControl.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="LogoPage.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="MainControl.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="MainWindow.xaml">
<Page Include="MainPage.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
@@ -278,6 +275,26 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="View\Controls\DPCtrlEmployeeContractTooltip.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Controls\DPCtrlEmployeeTooltip.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Controls\DPCtrlDienstTooltip.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Controls\MonthPicker.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Controls\DienstplanerControl.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Controls\GoalRatingControl.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
@@ -290,6 +307,18 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\RatingTypeView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\DienstView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\GoalImportControl.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\NotizenKategorieView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
@@ -306,11 +335,23 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\Report\AbwesenheitsEmployeeHeaderTooltip.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\Report\AbwesenheitsEmployeeHeader.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\Report\DienstplanerView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\Report\EMailStatusLogControl.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\Report\AbwesenheitstabelleView.xaml">
<Page Include="View\Detail\Report\AbwesenheitsView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
@@ -318,6 +359,10 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\Report\AbwesenheitsPrintControl.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\Report\IcfImportControl.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
@@ -346,6 +391,14 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\RatingEditView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\SupportConceptGoalRatingView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\HomeView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
@@ -354,6 +407,10 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="View\Report\Rating\RatingReportView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\StundenplanView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
@@ -522,10 +579,6 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="View\Detail\ProfileEditView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="View\Detail\ServiceRecordRebookingView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
@@ -638,6 +691,7 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Compile Include="MainSession.cs" />
<Compile Include="BSLogoControl.xaml.cs">
<DependentUpon>BSLogoControl.xaml</DependentUpon>
</Compile>
@@ -680,6 +734,10 @@
<Compile Include="ConfirmDemoDialog.xaml.cs">
<DependentUpon>ConfirmDemoDialog.xaml</DependentUpon>
</Compile>
<Compile Include="MainDictionary.xaml.cs">
<DependentUpon>MainDictionary.xaml</DependentUpon>
</Compile>
<Compile Include="MainSessionSingleton.cs" />
<Compile Include="MultiLanguage\Markup\TranslateExtension.cs" />
<Compile Include="MultiLanguage\ServiceTranslator.cs" />
<Compile Include="ownChat\OwnChatHelper.cs" />
@@ -724,20 +782,16 @@
</Compile>
<Compile Include="SchulbegleitenderDienst\WochenansichtVM.cs" />
<Compile Include="SchulbegleitenderDienst\WochenVertretung.cs" />
<Compile Include="ServiceProxy\ServiceConfig.cs" />
<Compile Include="StartRoutine.cs" />
<Compile Include="UploadDialog.xaml.cs">
<DependentUpon>UploadDialog.xaml</DependentUpon>
</Compile>
<Compile Include="LockedPage.xaml.cs">
<DependentUpon>LockedPage.xaml</DependentUpon>
</Compile>
<Compile Include="LoginControl.xaml.cs">
<DependentUpon>LoginControl.xaml</DependentUpon>
</Compile>
<Compile Include="MainControl.xaml.cs">
<DependentUpon>MainControl.xaml</DependentUpon>
</Compile>
<Compile Include="MainWindow.xaml.cs">
<DependentUpon>MainWindow.xaml</DependentUpon>
<Compile Include="MainPage.xaml.cs">
<DependentUpon>MainPage.xaml</DependentUpon>
</Compile>
<Compile Include="Office\OfficeManager.cs" />
<Compile Include="Office\TableModels\AbstractTableModel.cs" />
@@ -798,8 +852,15 @@
<Compile Include="ViewModel\AdditionalServiceGroupOfPeopleVM.cs" />
<Compile Include="ViewModel\AdditionalServiceRegionVM.cs" />
<Compile Include="ViewModel\AdditionalServiceVM.cs" />
<Compile Include="ViewModel\DienstInfoVM.cs" />
<Compile Include="ViewModel\BudgetVM.cs" />
<Compile Include="ViewModel\QuittierungsbelegsstatusVM.cs" />
<Compile Include="ViewModel\RatingTypeVM.cs" />
<Compile Include="ViewModel\ListViewModel\GoalRatingListVM.cs" />
<Compile Include="ViewModel\ListViewModel\RatingTypeListVM.cs" />
<Compile Include="ViewModel\ListViewModel\DienstListVM.cs" />
<Compile Include="ViewModel\ListViewModel\BudgetListVM.cs" />
<Compile Include="ViewModel\ListViewModel\RatingListVM.cs" />
<Compile Include="ViewModel\NotizenKategorieVM.cs" />
<Compile Include="ViewModel\NotizenEintragVM.cs" />
<Compile Include="ViewModel\FeiertagVM.cs" />
@@ -822,6 +883,8 @@
<Compile Include="ViewModel\ListViewModel\NotizenEintragListVM.cs" />
<Compile Include="ViewModel\ListViewModel\FeiertagListVM.cs" />
<Compile Include="ViewModel\QuittierungsCheckVM.cs" />
<Compile Include="ViewModel\GoalRatingVM.cs" />
<Compile Include="ViewModel\RatingVM.cs" />
<Compile Include="ViewModel\TokenVM.cs" />
<Compile Include="ViewModel\ListViewModel\ArbeitszeitListVM.cs" />
<Compile Include="ViewModel\ListViewModel\ArbeitszeitEintragListVM.cs" />
@@ -880,6 +943,25 @@
<Compile Include="ViewModel\OrganisationPersonRelationVM.cs" />
<Compile Include="ViewModel\TextModuleVM.cs" />
<Compile Include="ViewModel\VerordnungslistenVM.cs" />
<Compile Include="View\Controls\DPCtrlEmployeeContractTooltip.xaml.cs">
<DependentUpon>DPCtrlEmployeeContractTooltip.xaml</DependentUpon>
</Compile>
<Compile Include="View\Controls\DPCtrlEmployeeTooltip.xaml.cs">
<DependentUpon>DPCtrlEmployeeTooltip.xaml</DependentUpon>
</Compile>
<Compile Include="View\Controls\DPCtrlDienstTooltip.xaml.cs">
<DependentUpon>DPCtrlDienstTooltip.xaml</DependentUpon>
</Compile>
<Compile Include="View\Controls\MonthPicker.xaml.cs">
<DependentUpon>MonthPicker.xaml</DependentUpon>
</Compile>
<Compile Include="View\Controls\DienstplanerControl.xaml.cs">
<DependentUpon>DienstplanerControl.xaml</DependentUpon>
</Compile>
<Compile Include="View\Controls\DPCtrlDay.cs" />
<Compile Include="View\Controls\DPCtrlEmployee.cs" />
<Compile Include="View\Controls\DPCtrlIcon.cs" />
<Compile Include="View\Controls\DPCtrlWeek.cs" />
<Compile Include="View\Controls\GoalRatingControl.xaml.cs">
<DependentUpon>GoalRatingControl.xaml</DependentUpon>
</Compile>
@@ -889,6 +971,15 @@
<Compile Include="View\Controls\ValueListEntryEditControl.xaml.cs">
<DependentUpon>ValueListEntryEditControl.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\RatingTypeView.xaml.cs">
<DependentUpon>RatingTypeView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\DienstView.xaml.cs">
<DependentUpon>DienstView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\GoalImportControl.xaml.cs">
<DependentUpon>GoalImportControl.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\NotizenKategorieView.xaml.cs">
<DependentUpon>NotizenKategorieView.xaml</DependentUpon>
</Compile>
@@ -898,12 +989,24 @@
<Compile Include="View\Detail\AbsenceTimesView.xaml.cs">
<DependentUpon>AbsenceTimesView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\Report\AbwesenheitstabelleView.xaml.cs">
<DependentUpon>AbwesenheitstabelleView.xaml</DependentUpon>
<Compile Include="View\Detail\Report\AbwesenheitsEmployeeHeaderTooltip.xaml.cs">
<DependentUpon>AbwesenheitsEmployeeHeaderTooltip.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\Report\AbwesenheitsEmployeeHeader.xaml.cs">
<DependentUpon>AbwesenheitsEmployeeHeader.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\Report\DienstplanerView.xaml.cs">
<DependentUpon>DienstplanerView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\Report\AbwesenheitsView.xaml.cs">
<DependentUpon>AbwesenheitsView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\Report\AbwesenheitsEditView.xaml.cs">
<DependentUpon>AbwesenheitsEditView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\Report\AbwesenheitsPrintControl.xaml.cs">
<DependentUpon>AbwesenheitsPrintControl.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\Report\IcfImportControl.xaml.cs">
<DependentUpon>IcfImportControl.xaml</DependentUpon>
</Compile>
@@ -934,6 +1037,12 @@
<Compile Include="View\Detail\Report\TimeSheetMailView.xaml.cs">
<DependentUpon>TimeSheetMailView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\RatingEditView.xaml.cs">
<DependentUpon>RatingEditView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\SupportConceptGoalRatingView.xaml.cs">
<DependentUpon>SupportConceptGoalRatingView.xaml</DependentUpon>
</Compile>
<Compile Include="View\HomeView.xaml.cs">
<DependentUpon>HomeView.xaml</DependentUpon>
</Compile>
@@ -941,6 +1050,9 @@
<Compile Include="View\Report\Kilometerauswertung\KilometerauslastungsView.xaml.cs">
<DependentUpon>KilometerauslastungsView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Report\Rating\RatingReportView.xaml.cs">
<DependentUpon>RatingReportView.xaml</DependentUpon>
</Compile>
<Compile Include="View\StundenplanView.xaml.cs">
<DependentUpon>StundenplanView.xaml</DependentUpon>
</Compile>
@@ -1070,9 +1182,6 @@
<Compile Include="View\Detail\ModalViewWindow.xaml.cs">
<DependentUpon>ModalViewWindow.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\ProfileEditView.xaml.cs">
<DependentUpon>ProfileEditView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\ServiceRecordRebookingView.xaml.cs">
<DependentUpon>ServiceRecordRebookingView.xaml</DependentUpon>
</Compile>
@@ -1162,17 +1271,10 @@
<Compile Include="View\Master\ReportView.xaml.cs">
<DependentUpon>ReportView.xaml</DependentUpon>
</Compile>
<Reference Include="WindowsFormsIntegration" />
<Resource Include="Ressources\Icons\Search.png" />
<Reference Include="System.Xaml" />
</ItemGroup>
<ItemGroup>
<ApplicationDefinition Include="BeWoApp.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</ApplicationDefinition>
<Page Include="Styles\AnalysisExpanderStyle.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
@@ -1691,10 +1793,6 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Compile Include="BeWoApp.xaml.cs">
<SubType>Code</SubType>
<DependentUpon>BeWoApp.xaml</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<Compile Include="Converter\BoolScaleTransformConverter.cs" />
@@ -2154,10 +2252,9 @@
<DependentUpon>PivotGridReport.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<None Include="app.config">
<None Include="app2.config">
<SubType>Designer</SubType>
</None>
<None Include="packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
@@ -2206,20 +2303,13 @@
<Project>{D5E53B0F-BF5A-41E8-93E2-0F32845FC729}</Project>
<Name>Controls</Name>
</ProjectReference>
<ProjectReference Include="..\Data\Data.csproj">
<Project>{B0D73E3D-4AE7-4024-93A6-DB1F46D7CCEE}</Project>
<Name>Data</Name>
</ProjectReference>
<ProjectReference Include="..\Report\Report.csproj">
<Project>{40D8B312-EA64-49E3-A31A-5E57ED4D5654}</Project>
<Name>Report</Name>
</ProjectReference>
<ProjectReference Include="..\Service\Service.csproj">
<Project>{094331C3-ECEE-4C89-BBFD-4C9DED89F0EF}</Project>
<Name>Service</Name>
<ProjectReference Include="..\SharedLauncher\SharedLauncher.csproj">
<Project>{efe05c79-e0dd-4311-8b90-a8da7ebdf36f}</Project>
<Name>SharedLauncher</Name>
<Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\Shared\Shared.csproj">
<Project>{2F50B83D-A3F0-4EC4-979A-3F9B7E3D8ED4}</Project>
<Project>{2f50b83d-a3f0-4ec4-979a-3f9b7e3d8ed4}</Project>
<Name>Shared</Name>
</ProjectReference>
</ItemGroup>
@@ -2778,7 +2868,19 @@
<ItemGroup>
<Resource Include="Ressources\Icons\Paste24.png" />
</ItemGroup>
<ItemGroup />
<ItemGroup>
<Resource Include="Ressources\Icons\Favorites16.png" />
<Resource Include="Ressources\Icons\Favorites32.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Ressources\Icons\FavoritesDisabled32.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Ressources\Icons\ziel.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Ressources\Icons\massnahme.png" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PostBuildEvent>

View File

@@ -2,7 +2,7 @@
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<PublishUrlHistory>D:\Projects\beyondsoft\BeWoPlaner\Publish\|D:\Projects\beyondsoft\BeWoPlaner\PublishTest\|D:\Projects\beyondsoft\BeWoPlaner\PublishDev\|D:\Projects\beyondsoft\BeWoPlaner\Publish45\|C:\Projects\beyondsoft\BeWoPlaner\Publish\</PublishUrlHistory>
<InstallUrlHistory>http://app.beyondsoft.de/sbdtest/|http://app.beyondsoft.de/dev/|http://app.beyondsoft.de/sbd/|http://app.beyondsoft.de/lha/|http://fortis-bewoplaner.fortis-ev.org.local/</InstallUrlHistory>
<InstallUrlHistory>http://app.beyondsoft.de/dev/|http://app.beyondsoft.de/sbdtest/|http://app.beyondsoft.de/sbd/|http://app.beyondsoft.de/lha/|http://fortis-bewoplaner.fortis-ev.org.local/</InstallUrlHistory>
<SupportUrlHistory />
<UpdateUrlHistory />
<BootstrapperUrlHistory />

View File

@@ -1,824 +0,0 @@
<Application x:Class="BeWo.BeWoApp"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:conv="clr-namespace:BeWo.Converter"
xmlns:bewo="clr-namespace:BeWo"
xmlns:shared="clr-namespace:BS.Shared.DataContracts;assembly=BS.Shared"
xmlns:sharedCompact="clr-namespace:BS.Shared.DataContracts.Compact;assembly=BS.Shared"
xmlns:microsoftWindowsThemes1="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Classic"
StartupUri="MainWindow.xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
mc:Ignorable="d" ShutdownMode="OnExplicitShutdown">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/PresentationFramework.Aero, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=MSIL;component/themes/aero.normalcolor.xaml" />
<ResourceDictionary Source="Styles\OrangeBlack.xaml" />
<ResourceDictionary Source="Styles\AnalysisExpanderStyle.xaml" />
</ResourceDictionary.MergedDictionaries>
<!--<conv:AssessmentSheetCategory2VisibilityConverter x:Key="AssessmentSheetCategory2VisibilityConverter" />-->
<conv:EnumToDescriptionConverter x:Key="enumToDescriptionConverter" />
<DataTemplate x:Key="whithAttributeItemTemplate">
<TextBlock Text="{Binding Converter={StaticResource enumToDescriptionConverter}}"/>
</DataTemplate>
<conv:BoolNullCheckConverter x:Key="BoolNullCheckConverter" />
<conv:BoolScaleTransformConverter x:Key="BoolScaleTransformConverter" />
<conv:BoolVisibilityConverter x:Key="BoolVisibilityConverter" />
<conv:BoolVisibilityMultiConverter x:Key="BoolVisibilityMultiConverter" />
<conv:BoolVisibilityHiddenConverter x:Key="BoolVisibilityHiddenConverter" />
<conv:CellColorConverter x:Key="CellColorConverter"/>
<conv:ClientType2VisibilityConverter x:Key="ClientType2VisibilityConverter" />
<conv:CollectionContainsTag2BoolConverter x:Key="CollectionContainsTag2BoolConverter" />
<conv:CollectionCountToBoolConverter x:Key="CollectionCountToBoolConverter" />
<conv:CostRatePeriodValueConverter x:Key="CostRatePeriodValueConverter" />
<conv:DataContract2StringConverter x:Key="DataContract2StringConverter" />
<conv:Date2CalendarWeekStringConverter x:Key="Date2CalendarWeekStringConverter" />
<conv:DateConverter x:Key="DateConverter" />
<conv:DateNullValueToEmptyStringConverter x:Key="DateNullValueToEmptyStringConverter" />
<conv:DecimalConverter x:Key="DecimalConverter" />
<conv:DownloadURLConverter x:Key="DownloadURLConverter" />
<conv:FileAttachmentTypeConverter x:Key="FileAttachmentTypeConverter"></conv:FileAttachmentTypeConverter>
<conv:FilterDCConverter x:Key="FilterDCConverter" />
<conv:IListT2DataTableConverter x:Key="IListT2DataTableConverter" />
<conv:IndexBoolConverter x:Key="IndexBoolConverter" />
<conv:Int2DecimalConverter x:Key="Int2DecimalConverter" />
<conv:NodeType2IconPathConverter x:Key="NodeType2IconPathConverter" />
<conv:NumberSmaller0Converter x:Key="NumberSmaller0Converter" />
<conv:ObjectBoolConverter x:Key="ObjectBoolConverter" />
<conv:ObjectVisibilityConverter x:Key="ObjectVisibilityConverter" />
<conv:ObjectVisibilityMultiConverter x:Key="ObjectVisibilityMultiConverter" />
<conv:OneWayToSourceSwitch x:Key="OneWayToSourceSwitch" />
<conv:PersonBackgroundBrushConverter x:Key="PersonBackgroundBrushConverter" />
<conv:ReverseValueEqualsParamVisibilityConverter x:Key="ReverseValueEqualsParamVisibilityConverter" />
<conv:SettlementDCPrintURLConverter x:Key="SettlementDCPrintURLConverter" />
<conv:StringBrushConverter x:Key="StringBrushConverter" />
<conv:StringFormatConverter x:Key="StringFormatConverter" />
<conv:StringFormatMulitConverter x:Key="StringFormatMulitConverter" />
<conv:SupportConceptOverviewDCConverter x:Key="SupportConceptOverviewDCConverter" />
<conv:UserRightTypeConverter x:Key="UserRightTypeConverter" />
<conv:ValueEqualsParamVisibilityConverter x:Key="ValueEqualsParamVisibilityConverter" />
<conv:ReactivationRight2VisibilityConverter x:Key="ReactivationRight2VisibilityConverter" />
<conv:BoolReverseConverter x:Key="BoolReverseConverter" />
<conv:IndividualGoalMassnahmeUncheckPreventConverter x:Key="IndividualGoalMassnahmeUncheckPreventConverter" />
<conv:Rights2DefaultBooleanConverter x:Key="Rights2DefaultBooleanConverter"/>
<conv:CollectionCountToVisibilityConverter x:Key="CollectionCountToVisibilityConverter" />
<conv:DeleteForGoodRight2VisibilityConverter x:Key="DeleteForGoodRight2VisibilityConverter" />
<conv:AnonymizationRight2VisibilityConverter x:Key="AnonymizationRight2VisibilityConverter" />
<Style x:Key="SupportConceptDetailStyle" TargetType="{x:Type ListBoxItem}">
<Setter Property="HorizontalContentAlignment" Value="{Binding Path=HorizontalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
<Setter Property="VerticalContentAlignment" Value="{Binding Path=VerticalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
<Setter Property="Margin" Value="0,2,0,0" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Grid>
<Border x:Name="ItemBorder" CornerRadius="5" MinHeight="30" Background="#FF000000">
<Border.OpacityMask>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#19000000" Offset="0" />
<GradientStop Color="#26000000" Offset="1" />
</LinearGradientBrush>
</Border.OpacityMask>
</Border>
<Border x:Name="ItemContent" CornerRadius="5" MinHeight="30">
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="5,3,5,3" OpacityMask="{x:Null}" SnapsToDevicePixels="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" MinWidth="250" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Image Grid.RowSpan="2" Source="{Binding Path=IconPath}" Margin="0,0,5,0" Height="30" VerticalAlignment="Center" HorizontalAlignment="Stretch" Width="Auto" RenderTransformOrigin="0.5,0.5" />
<TextBlock x:Name="txtDetail1" Grid.Column="1" Grid.Row="0" Text="{Binding Path=DetailDescription}" FontSize="14" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" />
<TextBlock x:Name="txtDetail2" Grid.Column="1" Grid.Row="1" Text="{Binding Path=AddressString}" FontSize="12" Foreground="#FFA0A0A0" FontFamily="Microsoft Sans Serif" />
<ListBox x:Name="listBoxDetail3" Grid.Row="0" Grid.Column="2" Grid.RowSpan="2" ItemsSource="{Binding Path=CostBearerDetailStrings}" FontSize="12" Foreground="{Binding ForegroundBrush}" FontFamily="Microsoft Sans Serif" Background="Transparent" BorderThickness="0" IsHitTestVisible="False" Margin="6,0,0,0">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" Foreground="{Binding Foreground, RelativeSource={RelativeSource AncestorType={x:Type ListBox}, Mode=FindAncestor}}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<TextBlock VerticalAlignment="Center" Grid.Column="3" Grid.Row="0" Grid.RowSpan="2" Margin="0,0,3,0" Visibility="{Binding Path=IsDeleted, Converter={StaticResource ReactivationRight2VisibilityConverter}, ConverterParameter=SupportConcept}">
<Hyperlink TargetName="_NewWindow" Foreground="#FFFFFFFF" Click="Hyperlink_Hilfeplan_Reaktivieren_Click" Tag="{Binding}">Reaktivieren</Hyperlink>
</TextBlock>
<Button x:Name="btnOpenServiceRecordView" Grid.Column="4" Grid.Row="0" Grid.RowSpan="2" Width="25" Height="25" Style="{DynamicResource TransparentButtonStyle}" ToolTip="{markup:Translate In Zeiterfassung öffnen}" Tag="{Binding}" Margin="0,0,2,0" Click="BtnOpenServiceRecordView_Click">
<Image Source="Ressources\Icons\HistoryDisabled.png" />
</Button>
</Grid>
</Border>
</Grid>
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding Path=IsArchived}" Value="True">
<Setter Property="Foreground" TargetName="txtDetail1" Value="#FF808080" />
<Setter Property="Foreground" TargetName="txtDetail2" Value="#FF808080" />
<Setter Property="Foreground" TargetName="listBoxDetail3" Value="#FF808080" />
</DataTrigger>
<DataTrigger Binding="{Binding Path=IsDeleted}" Value="True">
<Setter Property="Foreground" TargetName="txtDetail1" Value="#FFF97E7B" />
<Setter Property="Foreground" TargetName="txtDetail2" Value="#FFF97E7B" />
<Setter Property="Foreground" TargetName="listBoxDetail3" Value="#FFF97E7B" />
</DataTrigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="OpacityMask" TargetName="ItemBorder">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#33000000" Offset="0" />
<GradientStop Color="#66000000" Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
<Trigger Property="ListBoxItem.IsSelected" Value="True">
<Setter Property="OpacityMask" TargetName="ItemBorder">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#99000000" Offset="0" />
<GradientStop Color="#CC000000" Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="ListBoxItem.IsSelected" Value="True" />
<Condition Property="Selector.IsSelectionActive" Value="False" />
</MultiTrigger.Conditions>
<Setter Property="OpacityMask" TargetName="ItemBorder">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#99000000" Offset="0" />
<GradientStop Color="#B2000000" Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="SupportConceptSearchStyle" TargetType="{x:Type ListBoxItem}">
<Setter Property="HorizontalContentAlignment" Value="{Binding Path=HorizontalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
<Setter Property="VerticalContentAlignment" Value="{Binding Path=VerticalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
<Setter Property="Margin" Value="0,2,0,0" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Grid>
<Border x:Name="ItemBorder" CornerRadius="5" MinHeight="30" Background="#FF000000">
<Border.OpacityMask>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#19000000" Offset="0" />
<GradientStop Color="#26000000" Offset="1" />
</LinearGradientBrush>
</Border.OpacityMask>
</Border>
<Border x:Name="ItemContent" CornerRadius="5" MinHeight="30">
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="5,3,5,3" OpacityMask="{x:Null}" SnapsToDevicePixels="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Image Grid.RowSpan="2" Source="{Binding Path=IconPath}" Margin="0,0,5,0" Height="30" VerticalAlignment="Center" HorizontalAlignment="Stretch" Width="Auto" RenderTransformOrigin="0.5,0.5" />
<TextBlock x:Name="txtDetail1" Grid.Column="1" Grid.Row="0" Text="{Binding Path=DetailDescription}" FontSize="14" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" />
<ListBox x:Name="listBoxDetail3" Grid.Column="1" Grid.Row="1" Margin="-2,0,0,0" ItemsSource="{Binding Path=CostBearerDetailStrings}" FontSize="12" Foreground="{Binding ForegroundBrush}" FontFamily="Microsoft Sans Serif" Background="Transparent" BorderThickness="0" IsHitTestVisible="False" >
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" Foreground="{Binding Foreground, RelativeSource={RelativeSource AncestorType={x:Type ListBox}, Mode=FindAncestor}}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
</Border>
</Grid>
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding Path=IsArchived}" Value="True">
<Setter Property="Foreground" TargetName="txtDetail1" Value="#FF808080" />
<Setter Property="Foreground" TargetName="listBoxDetail3" Value="#FF808080" />
</DataTrigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="OpacityMask" TargetName="ItemBorder">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#33000000" Offset="0" />
<GradientStop Color="#66000000" Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
<Trigger Property="ListBoxItem.IsSelected" Value="True">
<Setter Property="OpacityMask" TargetName="ItemBorder">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#99000000" Offset="0" />
<GradientStop Color="#CC000000" Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="ListBoxItem.IsSelected" Value="True" />
<Condition Property="Selector.IsSelectionActive" Value="False" />
</MultiTrigger.Conditions>
<Setter Property="OpacityMask" TargetName="ItemBorder">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#99000000" Offset="0" />
<GradientStop Color="#B2000000" Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="MainContentGroupBoxStyle" TargetType="{x:Type GroupBox}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupBox}">
<Grid SnapsToDevicePixels="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="15" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="15" />
<RowDefinition Height="20" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Border Background="#FF202020" Grid.RowSpan="3" CornerRadius="3,1,0,3" />
<Border Background="#FF202020" Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="1" Grid.RowSpan="2" CornerRadius="0,1,0,3" />
<Path StrokeThickness="0" Fill="#FF202020" Data="M 0,0 L 20,20 H 0 Z" Grid.Column="1" />
<Border Margin="0,0,0,0" x:Name="Header" Grid.Column="0" Grid.Row="0" Background="{x:Null}" Padding="10,0,3,0" Grid.ColumnSpan="2" Grid.RowSpan="2" VerticalAlignment="Center">
<ContentPresenter TextElement.FontSize="22" Margin="5,-3,0,0" RenderTransformOrigin="0,0.5" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Content="{TemplateBinding Header}" ContentSource="Header" ContentStringFormat="{TemplateBinding HeaderStringFormat}" ContentTemplate="{TemplateBinding HeaderTemplate}" RecognizesAccessKey="True" VerticalAlignment="Stretch">
<ContentPresenter.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="0" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</ContentPresenter.RenderTransform>
</ContentPresenter>
</Border>
<Border Grid.Column="0" Grid.Row="2" Padding="5,5,5,5" Grid.ColumnSpan="2" Grid.RowSpan="1">
<ContentPresenter Margin="0,0,0,0" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Content="{TemplateBinding Content}" ContentStringFormat="{TemplateBinding ContentStringFormat}" ContentTemplate="{TemplateBinding ContentTemplate}" />
</Border>
<Path x:Name="isDirtyShape" Grid.Column="0" Grid.Row="1" VerticalAlignment="Center" HorizontalAlignment="Right" StrokeThickness="0" Data="M8.0969173,7.7938912 L7.3260856,1.6313261E-55 10.960733,0.056791361 9.8816968,7.8372078 17.130865,4.505709 18.209901,7.969982 10.336028,9.4841573 16.015164,15.065028 13.005222,17.336183 9.0298264,10.44961 4.7503484,17.141891 1.9107803,14.614571 7.6195467,9.5947088 4.3790577E-47,7.8281079 1.0589099,4.5910004 z" Margin="0,0,41.007,3" Width="18.21" Height="17.336" RenderTransformOrigin="0.5,0.5">
<Path.Fill>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FFFB6F0E" Offset="0" />
<GradientStop Color="#FF8C400A" Offset="1" />
</LinearGradientBrush>
</Path.Fill>
<Path.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="0" ScaleY="0" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="0" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</Path.RenderTransform>
</Path>
<ToggleButton Checked="Togglebutton_maximise_Checked"
Unchecked="Togglebutton_maximise_Unchecked"
Margin="3,6,3,0"
x:Name="togglebutton_maximise"
Grid.Column="0" Grid.Row="0" Width="25" Height="25"
VerticalAlignment="Center" HorizontalAlignment="Right"
Style="{DynamicResource MaximizeButtonStyle}"
Grid.ColumnSpan="1" Grid.RowSpan="2"
IsChecked="{Binding Source={x:Static bewo:BeWoApp.MainControl}, Path=IsMaximized}" />
<!-- ToggleButton Checked="togglebutton_maximise_Checked" Unchecked="togglebutton_maximise_Unchecked" Margin="3,6,3,0" x:Name="togglebutton_maximise" Grid.Column="0" Grid.Row="0" Width="25" Height="25" VerticalAlignment="Center" HorizontalAlignment="Right" Style="{DynamicResource MaximizeButtonStyle}" Grid.ColumnSpan="1" Grid.RowSpan="2"/ -->
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="Foreground" Value="{DynamicResource MainGroupBoxForegroundBrush}" />
<Setter Property="FontWeight" Value="Normal" />
<Setter Property="FontFamily" Value="Microsoft Sans Serif" />
<Setter Property="FontSize" Value="11" />
</Style>
<Style x:Key="MainContentGroupBoxWithoutMaximizeBtnStyle" TargetType="{x:Type GroupBox}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupBox}">
<Grid SnapsToDevicePixels="True" x:Name="frameGrid" Background="Transparent">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="15" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="15" />
<RowDefinition Height="20" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Border Background="#FF202020" Grid.RowSpan="3" CornerRadius="3,1,0,3" MouseLeftButtonDown="FrameLeftMouseDown" />
<Border Background="#FF202020" Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="1" Grid.RowSpan="2" CornerRadius="0,1,0,3" MouseLeftButtonDown="FrameLeftMouseDown" />
<Path StrokeThickness="0" Fill="#FF202020" Data="M 0,0 L 20,20 H 0 Z" Grid.Column="1" />
<Border Margin="0,0,0,0" x:Name="Header" Grid.Column="0" Grid.Row="0" Background="{x:Null}" Padding="10,0,3,0" Grid.ColumnSpan="2" Grid.RowSpan="2" VerticalAlignment="Center">
<ContentPresenter TextElement.FontSize="22" Margin="5,-3,0,0" RenderTransformOrigin="0,0.5" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Content="{TemplateBinding Header}" ContentSource="Header" ContentStringFormat="{TemplateBinding HeaderStringFormat}" ContentTemplate="{TemplateBinding HeaderTemplate}" RecognizesAccessKey="True" VerticalAlignment="Stretch">
<ContentPresenter.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="0" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</ContentPresenter.RenderTransform>
</ContentPresenter>
</Border>
<Border Grid.Column="0" Grid.Row="2" Padding="5,5,5,5" Grid.ColumnSpan="2" Grid.RowSpan="1">
<ContentPresenter Margin="0,0,0,0" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Content="{TemplateBinding Content}" ContentStringFormat="{TemplateBinding ContentStringFormat}" ContentTemplate="{TemplateBinding ContentTemplate}" />
</Border>
<Path x:Name="isDirtyShape" Grid.Column="0" Grid.Row="1" VerticalAlignment="Center" HorizontalAlignment="Right" StrokeThickness="0" Data="M8.0969173,7.7938912 L7.3260856,1.6313261E-55 10.960733,0.056791361 9.8816968,7.8372078 17.130865,4.505709 18.209901,7.969982 10.336028,9.4841573 16.015164,15.065028 13.005222,17.336183 9.0298264,10.44961 4.7503484,17.141891 1.9107803,14.614571 7.6195467,9.5947088 4.3790577E-47,7.8281079 1.0589099,4.5910004 z" Margin="0,0,41.007,3" Width="18.21" Height="17.336" RenderTransformOrigin="0.5,0.5">
<Path.Fill>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FFFB6F0E" Offset="0" />
<GradientStop Color="#FF8C400A" Offset="1" />
</LinearGradientBrush>
</Path.Fill>
<Path.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="0" ScaleY="0" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="0" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</Path.RenderTransform>
</Path>
<Button Margin="3,3,3,3" x:Name="button_close" Grid.Column="0" Grid.Row="0"
Width="25" Height="25" VerticalAlignment="Center" HorizontalAlignment="Right"
Style="{DynamicResource CloseButtonStyle}" Command="ApplicationCommands.Close"
Grid.RowSpan="2" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="Foreground" Value="{DynamicResource MainGroupBoxForegroundBrush}" />
<Setter Property="FontWeight" Value="Normal" />
<Setter Property="FontFamily" Value="Microsoft Sans Serif" />
<Setter Property="FontSize" Value="11" />
</Style>
<Style x:Key="MainContentGroupBoxWithMinimizeBtnStyle" TargetType="{x:Type GroupBox}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupBox}">
<Grid SnapsToDevicePixels="True" x:Name="frameGrid" Background="Transparent">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="15" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="15" />
<RowDefinition Height="20" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Border Background="#FF202020" Grid.RowSpan="3" CornerRadius="3,1,0,3" MouseLeftButtonDown="FrameLeftMouseDown" />
<Border Background="#FF202020" Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="1" Grid.RowSpan="2" CornerRadius="0,1,0,3" MouseLeftButtonDown="FrameLeftMouseDown" />
<Path StrokeThickness="0" Fill="#FF202020" Data="M 0,0 L 20,20 H 0 Z" Grid.Column="1" />
<Border Margin="0,0,0,0" x:Name="Header" Grid.Column="0" Grid.Row="0" Background="{x:Null}" Padding="10,0,3,0" Grid.ColumnSpan="2" Grid.RowSpan="2" VerticalAlignment="Center">
<ContentPresenter TextElement.FontSize="22" Margin="5,-3,0,0" RenderTransformOrigin="0,0.5" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Content="{TemplateBinding Header}" ContentSource="Header" ContentStringFormat="{TemplateBinding HeaderStringFormat}" ContentTemplate="{TemplateBinding HeaderTemplate}" RecognizesAccessKey="True" VerticalAlignment="Stretch">
<ContentPresenter.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="0" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</ContentPresenter.RenderTransform>
</ContentPresenter>
</Border>
<Border Grid.Column="0" Grid.Row="2" Padding="5,5,5,5" Grid.ColumnSpan="2" Grid.RowSpan="1">
<ContentPresenter Margin="0,0,0,0" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Content="{TemplateBinding Content}" ContentStringFormat="{TemplateBinding ContentStringFormat}" ContentTemplate="{TemplateBinding ContentTemplate}" />
</Border>
<Path x:Name="isDirtyShape" Grid.Column="0" Grid.Row="1" VerticalAlignment="Center" HorizontalAlignment="Right" StrokeThickness="0" Data="M8.0969173,7.7938912 L7.3260856,1.6313261E-55 10.960733,0.056791361 9.8816968,7.8372078 17.130865,4.505709 18.209901,7.969982 10.336028,9.4841573 16.015164,15.065028 13.005222,17.336183 9.0298264,10.44961 4.7503484,17.141891 1.9107803,14.614571 7.6195467,9.5947088 4.3790577E-47,7.8281079 1.0589099,4.5910004 z" Margin="0,0,41.007,3" Width="18.21" Height="17.336" RenderTransformOrigin="0.5,0.5">
<Path.Fill>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FFFB6F0E" Offset="0" />
<GradientStop Color="#FF8C400A" Offset="1" />
</LinearGradientBrush>
</Path.Fill>
<Path.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="0" ScaleY="0" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="0" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</Path.RenderTransform>
</Path>
<Button Margin="3,3,3,3" x:Name="button_close" Grid.Column="0" Grid.Row="0"
Width="25" Height="25" VerticalAlignment="Center" HorizontalAlignment="Right"
Style="{DynamicResource MinimizeButtonStyle}" Command="ApplicationCommands.Close"
Grid.RowSpan="2" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="Foreground" Value="{DynamicResource MainGroupBoxForegroundBrush}" />
<Setter Property="FontWeight" Value="Normal" />
<Setter Property="FontFamily" Value="Microsoft Sans Serif" />
<Setter Property="FontSize" Value="11" />
</Style>
<Style x:Key="MainContentGroupBoxWithMinMaxCloseBtnStyle" TargetType="{x:Type GroupBox}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupBox}">
<Grid SnapsToDevicePixels="True" x:Name="frameGrid" Background="Transparent">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="15" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="15" />
<RowDefinition Height="20" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Border Background="#FF202020" Grid.RowSpan="3" CornerRadius="3,1,0,3" MouseLeftButtonDown="FrameLeftMouseDown" />
<Border Background="#FF202020" Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="1" Grid.RowSpan="2" CornerRadius="0,1,0,3" MouseLeftButtonDown="FrameLeftMouseDown" />
<Path StrokeThickness="0" Fill="#FF202020" Data="M 0,0 L 20,20 H 0 Z" Grid.Column="1" />
<Border Margin="0,0,0,0" x:Name="Header" Grid.Column="0" Grid.Row="0" Background="{x:Null}" Padding="10,0,3,0" Grid.ColumnSpan="2" Grid.RowSpan="2" VerticalAlignment="Center">
<ContentPresenter TextElement.FontSize="22" Margin="5,-3,0,0" RenderTransformOrigin="0,0.5" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Content="{TemplateBinding Header}" ContentSource="Header" ContentStringFormat="{TemplateBinding HeaderStringFormat}" ContentTemplate="{TemplateBinding HeaderTemplate}" RecognizesAccessKey="True" VerticalAlignment="Stretch">
<ContentPresenter.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="0" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</ContentPresenter.RenderTransform>
</ContentPresenter>
</Border>
<Border Grid.Column="0" Grid.Row="2" Padding="5,5,5,5" Grid.ColumnSpan="2" Grid.RowSpan="1">
<ContentPresenter Margin="0,0,0,0" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Content="{TemplateBinding Content}" ContentStringFormat="{TemplateBinding ContentStringFormat}" ContentTemplate="{TemplateBinding ContentTemplate}" />
</Border>
<Path x:Name="isDirtyShape" Grid.Column="0" Grid.Row="1" VerticalAlignment="Center" HorizontalAlignment="Right" StrokeThickness="0" Data="M8.0969173,7.7938912 L7.3260856,1.6313261E-55 10.960733,0.056791361 9.8816968,7.8372078 17.130865,4.505709 18.209901,7.969982 10.336028,9.4841573 16.015164,15.065028 13.005222,17.336183 9.0298264,10.44961 4.7503484,17.141891 1.9107803,14.614571 7.6195467,9.5947088 4.3790577E-47,7.8281079 1.0589099,4.5910004 z" Margin="0,0,41.007,3" Width="18.21" Height="17.336" RenderTransformOrigin="0.5,0.5">
<Path.Fill>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FFFB6F0E" Offset="0" />
<GradientStop Color="#FF8C400A" Offset="1" />
</LinearGradientBrush>
</Path.Fill>
<Path.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="0" ScaleY="0" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="0" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</Path.RenderTransform>
</Path>
<StackPanel Orientation="Horizontal" Margin="3,3,3,3" Grid.Column="0" Grid.Row="0" Grid.RowSpan="2" VerticalAlignment="Center" HorizontalAlignment="Right" >
<Button Margin="3,3,3,3" x:Name="button_Minimize"
Width="25" Height="25" VerticalAlignment="Center" HorizontalAlignment="Right"
Style="{DynamicResource MinimizeFullyButtonStyle }" Click="TogglebuttonChat_Minimize_Checked" />
<ToggleButton Margin="3,3,3,3" x:Name="button_Maximize"
Width="25" Height="25" VerticalAlignment="Center" HorizontalAlignment="Right"
Style="{DynamicResource MaximizeButtonStyle}" Checked="TogglebuttonChat_maximise_Checked" Unchecked="TogglebuttonChat_maximise_Unchecked" />
<Button Margin="3,3,3,3" x:Name="button_close"
Width="25" Height="25" VerticalAlignment="Center" HorizontalAlignment="Right"
Style="{DynamicResource CloseButtonStyle}" Command="ApplicationCommands.Close" />
</StackPanel>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="Foreground" Value="{DynamicResource MainGroupBoxForegroundBrush}" />
<Setter Property="FontWeight" Value="Normal" />
<Setter Property="FontFamily" Value="Microsoft Sans Serif" />
<Setter Property="FontSize" Value="11" />
</Style>
<Style x:Key="PopUpWindowStyle" TargetType="{x:Type GroupBox}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupBox}">
<Grid SnapsToDevicePixels="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="10" />
<RowDefinition Height="20" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Border Background="#FF202020" Grid.RowSpan="2" CornerRadius="3,1,0,3" />
<Border Background="#FF202020" Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="1" Grid.RowSpan="2" CornerRadius="0,1,0,3" />
<Path StrokeThickness="0" Fill="#FF202020" Data="M 0,0 L 10,10 H 0 Z" Grid.Column="1" />
<Border Margin="0,0,0,0" x:Name="Header" Grid.Column="0" Grid.Row="0" Background="{x:Null}" Padding="10,0,3,0" Grid.ColumnSpan="2" Grid.RowSpan="2" VerticalAlignment="Bottom">
<ContentPresenter TextElement.FontSize="16" Margin="5,0,0,3" RenderTransformOrigin="0,0.5" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Content="{TemplateBinding Header}" ContentSource="Header" ContentStringFormat="{TemplateBinding HeaderStringFormat}" ContentTemplate="{TemplateBinding HeaderTemplate}" RecognizesAccessKey="True" VerticalAlignment="Stretch">
<ContentPresenter.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="0" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</ContentPresenter.RenderTransform>
</ContentPresenter>
</Border>
<Border Grid.Column="0" Grid.Row="2" Padding="5,5,5,5" Grid.ColumnSpan="2" Grid.RowSpan="1">
<ContentPresenter Margin="0,0,0,0" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Content="{TemplateBinding Content}" ContentStringFormat="{TemplateBinding ContentStringFormat}" ContentTemplate="{TemplateBinding ContentTemplate}" />
</Border>
<Path x:Name="isDirtyShape" Grid.Column="0" Grid.Row="0" Grid.RowSpan="2" VerticalAlignment="Center" HorizontalAlignment="Right" StrokeThickness="0" Data="M8.0969173,7.7938912 L7.3260856,1.6313261E-55 10.960733,0.056791361 9.8816968,7.8372078 17.130865,4.505709 18.209901,7.969982 10.336028,9.4841573 16.015164,15.065028 13.005222,17.336183 9.0298264,10.44961 4.7503484,17.141891 1.9107803,14.614571 7.6195467,9.5947088 4.3790577E-47,7.8281079 1.0589099,4.5910004 z" Margin="0,0,41.007,3" Width="18.21" Height="17.336" RenderTransformOrigin="0.5,0.5">
<Path.Fill>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FFFB6F0E" Offset="0" />
<GradientStop Color="#FF8C400A" Offset="1" />
</LinearGradientBrush>
</Path.Fill>
<Path.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="0" ScaleY="0" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="0" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</Path.RenderTransform>
</Path>
<Button Margin="3,3,3,3" x:Name="button_close" Grid.Column="0" Grid.Row="0" Width="20" Height="20" VerticalAlignment="Center" HorizontalAlignment="Right" Style="{DynamicResource CloseButtonStyle}" Command="ApplicationCommands.Close" Grid.ColumnSpan="1" Grid.RowSpan="2" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="Foreground" Value="{DynamicResource MainGroupBoxForegroundBrush}" />
<Setter Property="FontWeight" Value="Normal" />
<Setter Property="FontFamily" Value="Microsoft Sans Serif" />
<Setter Property="FontSize" Value="11" />
</Style>
<HierarchicalDataTemplate DataType="{x:Type shared:SupportConceptTreeNodeDC}" ItemsSource="{Binding Path=ChildNodes}">
<Grid Margin="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Image Margin="0 0 3 0" Width="16" Height="16" Source="{Binding Path=NodeType, Converter={StaticResource NodeType2IconPathConverter}}" />
<TextBlock Grid.Column="1" Text="{Binding Path=DetailDescription}" FontSize="12" Foreground="Black" FontFamily="Microsoft Sans Serif" />
</Grid>
</HierarchicalDataTemplate>
<Style x:Key="ObjectComboBoxStyle" TargetType="{x:Type ComboBox}">
<Setter Property="FocusVisualStyle" Value="{StaticResource ComboBoxFocusVisual}" />
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}" />
<Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.WindowBrushKey}}" />
<Setter Property="BorderBrush" Value="{StaticResource TextBoxBorderBrush}" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="Padding" Value="1" />
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto" />
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto" />
<Setter Property="ScrollViewer.CanContentScroll" Value="true" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ComboBox}">
<Border SnapsToDevicePixels="True" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
<Grid>
<Border x:Name="BorderBackground" />
<Border x:Name="Border" Background="{TemplateBinding Background}" BorderThickness="2,2,2,2">
<Popup x:Name="PART_Popup" AllowsTransparency="True" IsOpen="{TemplateBinding IsDropDownOpen}" Placement="Bottom" PopupAnimation="{DynamicResource {x:Static SystemParameters.ComboBoxPopupAnimationKey}}" Focusable="False">
<microsoftWindowsThemes1:SystemDropShadowChrome MaxHeight="{TemplateBinding MaxDropDownHeight}" MinWidth="{Binding Path=ActualWidth, ElementName=Border}" x:Name="Shdw" Color="#00FFFFFF">
<Border x:Name="DropDownBorder" Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}" BorderBrush="{DynamicResource {x:Static SystemColors.WindowFrameBrushKey}}" BorderThickness="1,1,1,1">
<ScrollViewer>
<ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" KeyboardNavigation.DirectionalNavigation="Contained" />
</ScrollViewer>
</Border>
</microsoftWindowsThemes1:SystemDropShadowChrome>
</Popup>
</Border>
<DockPanel>
<FrameworkElement Width="{DynamicResource {x:Static SystemParameters.VerticalScrollBarWidthKey}}" DockPanel.Dock="Right" />
<Border Margin="{TemplateBinding Padding}" x:Name="SelectedItemBorder">
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="1,0,1,1" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Content="{TemplateBinding SelectionBoxItem}" ContentStringFormat="{TemplateBinding SelectionBoxItemStringFormat}" ContentTemplate="{TemplateBinding SelectionBoxItemTemplate}" />
</Border>
</DockPanel>
<ToggleButton Style="{DynamicResource ComboBoxTransparentButtonStyle}" Margin="1,2,1,2" MinHeight="0" MinWidth="0" Width="Auto" Focusable="False" IsChecked="{Binding Path=IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" ClickMode="Press" />
</Grid>
</Border>
<ControlTemplate.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsSelectionBoxHighlighted" Value="True" />
<Condition Property="IsDropDownOpen" Value="False" />
</MultiTrigger.Conditions>
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.HighlightTextBrushKey}}" />
</MultiTrigger>
<Trigger Property="IsSelectionBoxHighlighted" Value="True">
<Setter Property="Background" TargetName="BorderBackground" Value="#80000000" />
</Trigger>
<Trigger Property="HasItems" Value="False">
<Setter Property="MinHeight" TargetName="DropDownBorder" Value="95" />
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}" />
<Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" />
</Trigger>
<Trigger Property="IsGrouping" Value="True">
<Setter Property="ScrollViewer.CanContentScroll" Value="False" />
</Trigger>
<Trigger Property="HasDropShadow" SourceName="PART_Popup" Value="True">
<Setter Property="Margin" TargetName="Shdw" Value="0,0,5,5" />
<Setter Property="Color" TargetName="Shdw" Value="#71000000" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="ItemContainerStyle" Value="{DynamicResource ObjectComboBoxItemStyle}" />
</Style>
<Style x:Key="ObjectComboBoxItemStyle" TargetType="{x:Type ComboBoxItem}">
<Setter Property="HorizontalContentAlignment" Value="{Binding Path=HorizontalContentAlignment, RelativeSource={RelativeSource FindAncestor, AncestorLevel=1, AncestorType={x:Type ItemsControl}}}" />
<Setter Property="VerticalContentAlignment" Value="{Binding Path=VerticalContentAlignment, RelativeSource={RelativeSource FindAncestor, AncestorLevel=1, AncestorType={x:Type ItemsControl}}}" />
<Setter Property="Padding" Value="3,0,3,0" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ComboBoxItem}">
<Border x:Name="Bd" SnapsToDevicePixels="True" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Padding="{TemplateBinding Padding}">
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Content="{TemplateBinding Content}" ContentStringFormat="{TemplateBinding ContentStringFormat}" ContentTemplate="{TemplateBinding ContentTemplate}" />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="ButtonFocusVisual">
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<Rectangle Stroke="Black" StrokeDashArray="1 2" StrokeThickness="1" Margin="2" SnapsToDevicePixels="true" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="WarningButton" TargetType="{x:Type Button}">
<Setter Property="FocusVisualStyle" Value="{StaticResource ButtonFocusVisual}" />
<Setter Property="Background" Value="{StaticResource ButtonNormalBackground}" />
<Setter Property="BorderBrush" Value="{StaticResource ButtonNormalBorder}" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" />
<Setter Property="HorizontalContentAlignment" Value="Center" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="Padding" Value="1" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Image Width="16" Height="16" Source="Ressources\Icons\warning-16x16.png" />
<ControlTemplate.Triggers>
<Trigger Property="IsKeyboardFocused" Value="true" />
<Trigger Property="ToggleButton.IsChecked" Value="true" />
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Foreground" Value="#ADADAD" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<DataTemplate x:Key="CustomerComboBoxItemTemplate" DataType="{x:Type shared:SupportConceptTreeNodeDC}">
<Grid Margin="0,1,0,1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Border x:Name="ItemBorder" CornerRadius="5" MinHeight="30" Background="#FF000000" Grid.RowSpan="3" Grid.ColumnSpan="2" Margin="0,0,0,0">
<Border.OpacityMask>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#19000000" Offset="0" />
<GradientStop Color="#26000000" Offset="1" />
</LinearGradientBrush>
</Border.OpacityMask>
</Border>
<StackPanel Orientation="Horizontal">
<Image Visibility="{Binding Path=SupportConceptName, Converter={StaticResource ObjectVisibilityConverter} }" Source="Ressources\Icons\UserHomeMaleDisabled.png" Height="20" VerticalAlignment="Center" HorizontalAlignment="Left" Width="Auto" />
<TextBlock FontSize="14" Foreground="#FFD2D2D2" x:Name="customerText" Tag="{Binding}" Margin="3 2" Text="{Binding Path=CustomerName}" VerticalAlignment="Center" TextWrapping="Wrap" />
</StackPanel>
<TextBlock FontSize="12" x:Name="supportConceptText" Grid.Column="0" Grid.Row="1" Margin="3 2" Text="{Binding Path=SupportConceptName}" VerticalAlignment="Center" Foreground="{Binding Path=NodeForegroundBrush}" />
<TextBlock FontSize="12" Foreground="#FFA0A0A0" x:Name="costBearerText" Grid.Column="0" Grid.Row="2" Margin="3 2" Text="{Binding Path=CostBearerName}" VerticalAlignment="Center" />
<Button Content="I" Width="15" Height="15" Grid.Column="1" Style="{DynamicResource WarningButton}" Visibility="{Binding Path=IsCustomerWarningActive, Converter={StaticResource BoolVisibilityConverter}}">
<Button.ToolTip>
<TextBlock Text="{Binding Path=CustomerWarning}" />
</Button.ToolTip>
</Button>
</Grid>
<DataTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="OpacityMask" TargetName="ItemBorder">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#33000000" Offset="0" />
<GradientStop Color="#66000000" Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
</DataTemplate.Triggers>
</DataTemplate>
<ItemsPanelTemplate x:Key="CustomerComboBoxItemsPanelTemplate">
<StackPanel IsItemsHost="True" Background="{DynamicResource SupportConceptListBrush}" />
</ItemsPanelTemplate>
<DataTemplate x:Key="SupportConceptComboBoxItemTemplate" DataType="{x:Type sharedCompact:CompactSupportConceptDC}">
<Grid Margin="0,1,0,1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Border x:Name="ItemBorder" CornerRadius="5" MinHeight="30" Background="#FF000000" Grid.RowSpan="3" Grid.ColumnSpan="2" Margin="0,0,0,0">
<Border.OpacityMask>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#19000000" Offset="0" />
<GradientStop Color="#26000000" Offset="1" />
</LinearGradientBrush>
</Border.OpacityMask>
</Border>
<StackPanel Orientation="Horizontal">
<Image Visibility="{Binding Path=SupportConceptName, Converter={StaticResource ObjectVisibilityConverter} }" Source="Ressources\Icons\UserHomeMaleDisabled.png" Height="20" VerticalAlignment="Center" HorizontalAlignment="Left" Width="Auto" />
<TextBlock FontSize="14" Foreground="#FFD2D2D2" x:Name="customerText" Tag="{Binding}" Margin="3 2" Text="{Binding Path=CustomerName}" VerticalAlignment="Center" TextWrapping="Wrap" />
</StackPanel>
<TextBlock FontSize="12" x:Name="supportConceptText" Grid.Column="0" Grid.Row="1" Margin="3 2" Text="{Binding Path=SimpleDescription}" VerticalAlignment="Center" Foreground="{Binding Path=NodeForegroundBrush}" />
<TextBlock FontSize="12" Foreground="#FFA0A0A0" x:Name="costBearerText" Grid.Column="0" Grid.Row="2" Margin="3 2" Text="{Binding Path=AllCostBearerNames}" VerticalAlignment="Center" />
</Grid>
<DataTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="OpacityMask" TargetName="ItemBorder">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#33000000" Offset="0" />
<GradientStop Color="#66000000" Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
</DataTemplate.Triggers>
</DataTemplate>
<ItemsPanelTemplate x:Key="OrganisationComboBoxItemsPanelTemplate">
<StackPanel IsItemsHost="True" Background="{DynamicResource OrganisationContentBrush}" />
</ItemsPanelTemplate>
<DataTemplate x:Key="OrganisationComboBoxItemTemplate" DataType="{x:Type sharedCompact:CompactOrganisationDC}">
<Grid>
<Border x:Name="ItemBorder" CornerRadius="5" Margin="2" MinHeight="30" Background="#FF000000">
<Border.OpacityMask>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#19000000" Offset="0" />
<GradientStop Color="#26000000" Offset="1" />
</LinearGradientBrush>
</Border.OpacityMask>
</Border>
<Border x:Name="ItemContent" CornerRadius="5" MinHeight="30">
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="5,3,5,3" OpacityMask="{x:Null}" SnapsToDevicePixels="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Image Grid.RowSpan="2" Source="{Binding Path=IconPath}" Margin="0,0,5,0" Height="30" VerticalAlignment="Center" HorizontalAlignment="Stretch" Width="Auto" RenderTransformOrigin="0.5,0.5" Grid.Row="0" />
<TextBlock x:Name="txtDetail1" Grid.Column="1" Text="{Binding Path=DetailDescription}" FontSize="14" Foreground="#FFFFFFFF" FontFamily="Microsoft Sans Serif" />
<TextBlock x:Name="txtDetail2" Grid.Column="1" Grid.Row="1" Text="{Binding Path=AddressString}" FontSize="12" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" />
</Grid>
</Border>
</Grid>
</DataTemplate>
<ControlTemplate x:Key="dx_textedit_border" TargetType="{x:Type ContentControl}">
<Border Background="White" BorderBrush="#6f7074" BorderThickness="1">
<ContentPresenter />
</Border>
</ControlTemplate>
</ResourceDictionary>
</Application.Resources>
</Application>

File diff suppressed because it is too large Load Diff

View File

@@ -21,10 +21,10 @@ namespace BeWo.Converter
switch(parameter.ToString())
{
case "Customer":
hasRight = BeWoApp.LoggedOnUser.HasRight(UserRightType.Customer_Anonymization);
hasRight = MainSession.LoggedOnUser.HasRight(UserRightType.Customer_Anonymization);
break;
case "Employee":
hasRight = BeWoApp.LoggedOnUser.HasRight(UserRightType.Employee_Anonymization);
hasRight = MainSession.LoggedOnUser.HasRight(UserRightType.Employee_Anonymization);
break;
}

View File

@@ -5,7 +5,9 @@ using System.Linq;
using System.Windows.Data;
using System.Windows.Markup;
using System.Windows.Media;
using BeWo.View.Detail;
using BeWo.ViewModel;
using BS.Shared.DataContracts;
using DevExpress.Xpf.Grid;
namespace BeWo.Converter
@@ -23,9 +25,45 @@ namespace BeWo.Converter
var viewTag = cellData.View.Tag as List<AdditionalServiceBookingVM>;
var date = int.Parse(value[1].ToString().Split('.')[0], NumberStyles.Integer);
if (viewTag != null && viewTag.Count > 0 && value.Length > 2 && value[2] is Teilnehmer)
{
var booking = viewTag[0];
if (date <= DateTime.DaysInMonth(booking.Date.Year, booking.Date.Month))
{
var dt = new DateTime(booking.Date.Year, booking.Date.Month, date);
if (dt.DayOfWeek == DayOfWeek.Saturday || dt.DayOfWeek == DayOfWeek.Sunday)
{
return Brushes.CornflowerBlue;
}
var t = (Teilnehmer) value[2];
if (IsAbsence(dt, t.Customer.AbsenceTimes))
{
return Brushes.LightGray;
}
}
}
return viewTag.Any(v => v.Date.Day.Equals(date)) ? Brushes.White : b;
}
private bool IsAbsence(DateTime dt, List<AbsenceTimeDC> absenceTimes)
{
foreach (var at in absenceTimes)
{
if ((!at.Start.HasValue || at.Start.Value <= dt) && (!at.End.HasValue || at.End.Value >= dt))
{
return true;
}
}
return false;
}
public object[] ConvertBack(object value, Type[] targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); }
public override object ProvideValue(IServiceProvider serviceProvider) { return this; }

View File

@@ -19,7 +19,7 @@ namespace BeWo.Converter
{
Int32.TryParse((string)parameter, out clienttype);
if (clienttype == BeWoApp.Mandator.BeWoClientType)
if (clienttype == MainSession.Mandator.BeWoClientType)
{
return Visibility.Visible;
}

View File

@@ -7,6 +7,7 @@ using BeWo.Core;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using BS.SharedLauncher.Information;
namespace BeWo.Converter
{
@@ -21,7 +22,7 @@ namespace BeWo.Converter
return null;
}
string url = BeWoApp.SiteOfOrigin + "/ReportView.aspx?cOid=" + lDC.CustomerOid + "&type=" + Utils.EnumName(ReportTypes.CustomerData);
string url = ConnectionInformation.CoreServerAddressOrigin + "/ReportView.aspx?cOid=" + lDC.CustomerOid + "&type=" + Utils.EnumName(ReportTypes.CustomerData);
url = BeWoWpfUtils.GetHTMLEncodedURL(url);
return new Uri(url);

View File

@@ -21,13 +21,13 @@ namespace BeWo.Converter
switch(parameter.ToString())
{
case "Customer":
hasRight = BeWoApp.LoggedOnUser.HasRight(UserRightType.Customer_Full_Delete);
hasRight = MainSession.LoggedOnUser.HasRight(UserRightType.Customer_Full_Delete);
break;
case "Employee":
hasRight = BeWoApp.LoggedOnUser.HasRight(UserRightType.Employee_Full_Delete);
hasRight = MainSession.LoggedOnUser.HasRight(UserRightType.Employee_Full_Delete);
break;
case "Person":
hasRight = BeWoApp.LoggedOnUser.HasRight(UserRightType.Person_Full_Delete);
hasRight = MainSession.LoggedOnUser.HasRight(UserRightType.Person_Full_Delete);
break;
}

View File

@@ -3,6 +3,7 @@ using System.Globalization;
using System.Windows.Data;
using BeWo.Core;
using BS.SharedLauncher.Information;
namespace BeWo.Converter
{
@@ -12,7 +13,7 @@ namespace BeWo.Converter
{
if (value == null)
return null;
return BeWoWpfUtils.GetHTMLEncodedURL(BeWoApp.SiteOfOrigin + value.ToString());
return BeWoWpfUtils.GetHTMLEncodedURL(ConnectionInformation.CoreServerAddressOrigin + value.ToString());
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)

View File

@@ -4,6 +4,7 @@ using System.Windows.Data;
using BeWo.Core;
using BeWo.ViewModel;
using BS.SharedLauncher.Information;
namespace BeWo.Converter
{
@@ -18,7 +19,7 @@ namespace BeWo.Converter
return null;
}
string url = BeWoApp.SiteOfOrigin + "/ReportView.aspx?ioid=" + lVM.DataContract.InvoiceBaseOid + "&type=CustomerInvoice";
string url = ConnectionInformation.CoreServerAddressOrigin + "/ReportView.aspx?ioid=" + lVM.DataContract.InvoiceBaseOid + "&type=CustomerInvoice";
url = BeWoWpfUtils.GetHTMLEncodedURL(url);

View File

@@ -20,19 +20,19 @@ namespace BeWo.Converter
switch (parameter.ToString())
{
case "Person":
hasRight = BeWoApp.LoggedOnUser.HasRight(UserRightType.PersonAllowReactivation);
hasRight = MainSession.LoggedOnUser.HasRight(UserRightType.PersonAllowReactivation);
break;
case "Organisation":
hasRight = BeWoApp.LoggedOnUser.HasRight(UserRightType.OrganisationAllowReactivation);
hasRight = MainSession.LoggedOnUser.HasRight(UserRightType.OrganisationAllowReactivation);
break;
case "SupportConcept":
hasRight = BeWoApp.LoggedOnUser.HasRight(UserRightType.SupportConceptAllowReactivation);
hasRight = MainSession.LoggedOnUser.HasRight(UserRightType.SupportConceptAllowReactivation);
break;
case "Customer":
hasRight = BeWoApp.LoggedOnUser.HasRight(UserRightType.CustomerAllowReactivation);
hasRight = MainSession.LoggedOnUser.HasRight(UserRightType.CustomerAllowReactivation);
break;
case "Employee":
hasRight = BeWoApp.LoggedOnUser.HasRight(UserRightType.EmployeeAllowReactivation);
hasRight = MainSession.LoggedOnUser.HasRight(UserRightType.EmployeeAllowReactivation);
break;
}

View File

@@ -23,7 +23,7 @@ namespace BeWo.Converter
rightsList.AddRange(rights.Select(rightString => (UserRightType) Enum.Parse(typeof (UserRightType), rightString.Trim())));
tmp = BeWoApp.HasLoggedOnUserRight(rightsList.ToArray()) ? DefaultBoolean.True : DefaultBoolean.False;
tmp = MainSession.HasLoggedOnUserRight(rightsList.ToArray()) ? DefaultBoolean.True : DefaultBoolean.False;
}
return tmp;

View File

@@ -4,9 +4,9 @@ using System.Windows.Data;
using BeWo.Core;
using BeWo.ViewModel;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.SharedLauncher.Information;
namespace BeWo.Converter
{
@@ -33,7 +33,7 @@ namespace BeWo.Converter
}
}
string url = BeWoApp.SiteOfOrigin + "/ReportView.aspx?" + oidString + "&type=" + Utils.EnumName(typ);
string url = ConnectionInformation.CoreServerAddressOrigin + "/ReportView.aspx?" + oidString + "&type=" + Utils.EnumName(typ);
url = BeWoWpfUtils.GetHTMLEncodedURL(url);

View File

@@ -55,6 +55,8 @@ using DevExpress.XtraScheduler;
using RestSharp;
using Control = System.Windows.Controls.Control;
using Utils = BS.Shared.Core.Utils;
using Brush = System.Windows.Media.Brush;
using BS.SharedLauncher.Information;
namespace BeWo.Core
{
@@ -102,10 +104,15 @@ namespace BeWo.Core
public static void NavigateToReportUri(string navigateUriString, string title)
{
NavigateToReportUriWithDocumentPreviewControl(navigateUriString, title, null);
NavigateToReportUri(navigateUriString, title, null);
}
public static void NavigateToReportUriWithDocumentPreviewControl(string navigateUriString, string title, DocumentPreviewControl dp)
public static void NavigateToReportUri(string navigateUriString, string title, Action callback)
{
NavigateToReportUriWithDocumentPreviewControl(navigateUriString, title, null, callback);
}
public static void NavigateToReportUriWithDocumentPreviewControl(string navigateUriString, string title, DocumentPreviewControl dp, Action callback)
{
var reportTemplates = ServiceFacade.DoOperationsServiceSync(x => x.GetReportTemplates(navigateUriString));
@@ -119,7 +126,7 @@ namespace BeWo.Core
Width = 500,
WindowStartupLocation = WindowStartupLocation.CenterOwner,
GroupBoxContent = control,
Owner = BeWoApp.CurrentBeWo.MainWindow,
Owner = Session.GetWindow(),
rootGroupBox = { Header = "Layout speichern" }
};
@@ -144,10 +151,14 @@ namespace BeWo.Core
//var newUri = navigateUriString.Replace(typeString, "template=" + (selectedTemplate.Oid.HasValue ? selectedTemplate.Oid.Value.ToString() : "-1"));
BeWoApp.MainControl.StartWaiting();
MainSession.MainPage.StartWaiting();
StartGetReportStreamAsync(GetReportStreamForWPFControl, newUri, ms => BeWoApp.MainControl.Dispatch(delegate
StartGetReportStreamAsync(GetReportStreamForWPFControl, newUri, ms => MainSession.MainPage.Dispatch(delegate
{
if (callback != null)
{
callback();
}
ShowReportWindow(ms, title, dp);
}));
};
@@ -156,10 +167,14 @@ namespace BeWo.Core
}
else
{
BeWoApp.MainControl.StartWaiting();
MainSession.MainPage.StartWaiting();
StartGetReportStreamAsync(GetReportStreamForWPFControl, navigateUriString, ms => BeWoApp.MainControl.Dispatch(delegate
StartGetReportStreamAsync(GetReportStreamForWPFControl, navigateUriString, ms => MainSession.MainPage.Dispatch(delegate
{
if (callback != null)
{
callback();
}
ShowReportWindow(ms, title, dp);
}));
}
@@ -231,8 +246,8 @@ namespace BeWo.Core
}
catch (Exception e)
{
BeWoApp.ShowError(null, e, true);
BeWoApp.MainControl.EndWaiting();
Session.ShowError(null, e, true);
MainSession.MainPage.EndWaiting();
}
},
null);
@@ -377,10 +392,10 @@ namespace BeWo.Core
Title = viewModel.ToString()
};
BeWoApp.MainControl.OpenedModalViewWindows.Add(CurrentModalViewWindow);
MainSession.MainPage.OpenedModalViewWindows.Add(CurrentModalViewWindow);
_ModalViewWindowsToUpdate.Add(CurrentModalViewWindow);
foreach (var window in BeWoApp.MainControl.OpenedModalViewWindows.Where(window => !BeWoApp.MainControl.OpenedModalViewWindows.Last().Equals(window)))
foreach (var window in MainSession.MainPage.OpenedModalViewWindows.Where(window => !MainSession.MainPage.OpenedModalViewWindows.Last().Equals(window)))
{
ShowModalBackground(window.RootGrid);
}
@@ -390,15 +405,15 @@ namespace BeWo.Core
public static void RemoveModalViewWindow()
{
if(BeWoApp.MainControl.OpenedModalViewWindows.Count > 1 && CurrentModalViewWindow != null)
if(MainSession.MainPage.OpenedModalViewWindows.Count > 1 && CurrentModalViewWindow != null)
{
var nextToLastWindowWithModalBackground = BeWoApp.MainControl.OpenedModalViewWindows.ElementAt(BeWoApp.MainControl.OpenedModalViewWindows.Count - 2);
var nextToLastWindowWithModalBackground = MainSession.MainPage.OpenedModalViewWindows.ElementAt(MainSession.MainPage.OpenedModalViewWindows.Count - 2);
nextToLastWindowWithModalBackground.RootGrid.Children.RemoveAt(1);
}
BeWoApp.MainControl.OpenedModalViewWindows.Remove(CurrentModalViewWindow);
MainSession.MainPage.OpenedModalViewWindows.Remove(CurrentModalViewWindow);
CurrentModalViewWindow = BeWoApp.MainControl.OpenedModalViewWindows.Count > 0 ? BeWoApp.MainControl.OpenedModalViewWindows.ElementAt(BeWoApp.MainControl.OpenedModalViewWindows.Count - 1) : null;
CurrentModalViewWindow = MainSession.MainPage.OpenedModalViewWindows.Count > 0 ? MainSession.MainPage.OpenedModalViewWindows.ElementAt(MainSession.MainPage.OpenedModalViewWindows.Count - 1) : null;
}
public static bool CheckViewIsCalledFromWindow(BeWoView view)
@@ -431,10 +446,10 @@ namespace BeWo.Core
public static void UpdateAllViews<T>(T updatedObject) where T : IFilterableDC
{
var activeView = BeWoApp.MainControl.ActiveView;
var activeView = MainSession.MainPage.ActiveView;
UpdateView(activeView, updatedObject);
if(BeWoApp.MainControl.OpenedModalViewWindows.Count <= 0)
if(MainSession.MainPage.OpenedModalViewWindows.Count <= 0)
{
return;
}
@@ -918,7 +933,7 @@ namespace BeWo.Core
else if(typeof(T) == typeof(CompactSupportConceptDC))
{
var updatedSupportConcept = new CompactSupportConceptDC();
ServiceFacade.DoCustomerServiceSync(s => updatedSupportConcept = s.LoadCompactSupportConceptDC((pUpdateObject as CompactSupportConceptDC).SupportConceptOid, BeWoApp.LoggedOnEmployee.EmployeeOid));
ServiceFacade.DoCustomerServiceSync(s => updatedSupportConcept = s.LoadCompactSupportConceptDC((pUpdateObject as CompactSupportConceptDC).SupportConceptOid, MainSession.LoggedOnEmployee.EmployeeOid));
if(equityInvoiceView?.SelectedSupportConcept != null)
{
@@ -1054,9 +1069,9 @@ namespace BeWo.Core
pSupportConceptView.popupedit_employee.Text = updatedEmployee.ToString();
}
if(BeWoApp.LoggedOnUser.Employee.EmployeeOid.Equals(updatedEmployee.EmployeeOid))
if(MainSession.LoggedOnUser.Employee.EmployeeOid.Equals(updatedEmployee.EmployeeOid))
{
BeWoApp.LoggedOnUser.Employee = updatedEmployee;
MainSession.LoggedOnUser.Employee = updatedEmployee;
}
pSupportConceptView.popupedit_employee.Text = updatedEmployee.ToString();
@@ -1249,7 +1264,7 @@ namespace BeWo.Core
pUserView.ViewModel.Employee = updatedEmployee;
var myView = new BeWoView();
BeWoApp.MainControl.Views.TryGetValue(UIContext.User, out myView);
MainSession.MainPage.Views.TryGetValue(UIContext.User, out myView);
if(myView is UserNavigationView naviView)
{
@@ -1540,7 +1555,7 @@ namespace BeWo.Core
supConSelConSeletedItem.SupportConceptTreeNodeDC.SupportConcept.Customer = updatedCustomer;
}
var newList = control.SearchView.ObjectList;
List<CompactSupportConceptDC> newList = control.SearchView.ObjectList;
foreach (var concept in newList.Where(concept => concept.Customer.Equals(updatedCustomer)))
concept.Customer = updatedCustomer;
@@ -1553,15 +1568,15 @@ namespace BeWo.Core
private static void UpdateLoggedInEmployee(long employeeOid)
{
if (employeeOid != BeWoApp.LoggedOnUser.Employee.EmployeeOid)
if (employeeOid != MainSession.LoggedOnUser.Employee.EmployeeOid)
return;
ServiceFacade.DoEmployeeServiceSync(s => BeWoApp.LoggedOnUser.Employee = s.LoadCompactEmployee(BeWoApp.LoggedOnUser.Employee.EmployeeOid));
ServiceFacade.DoEmployeeServiceSync(s => MainSession.LoggedOnUser.Employee = s.LoadCompactEmployee(MainSession.LoggedOnUser.Employee.EmployeeOid));
if (BeWoApp.MainControl.HomeButtonPanel == null)
if (MainSession.MainPage.HomeButtonPanel == null)
return;
//BeWoApp.MainControl.HomeView.txtHeader.Text = BeWoApp.LoggedOnUser.Employee.ToString();
MainSession.MainPage.HomeView.txtHeader.Text = MainSession.LoggedOnUser.Employee.ToString();
}
public static void WriteExcelFile(string content, string path)
@@ -1663,7 +1678,7 @@ namespace BeWo.Core
var dc = vm.CommitToDataContract();
dc.Employee = selectedEmployee ?? BeWoApp.LoggedOnUser.Employee;
dc.Employee = selectedEmployee ?? MainSession.LoggedOnUser.Employee;
dc.SupportConcept = scDc;
dc.CostBearer = cbDc;
@@ -1718,12 +1733,12 @@ namespace BeWo.Core
var r = new List<ServiceRecordValidationResultDC>();
var maxdays = BeWoApp.AppSettings.MaxDaysEditServiceRecordsAllowed;
var maxdays = MainSession.AppSettings.MaxDaysEditServiceRecordsAllowed;
if (withoutClient && BeWoApp.AppSettings.MaxDaysEditServiceRecordsAllowed <= 0)
if (withoutClient && MainSession.AppSettings.MaxDaysEditServiceRecordsAllowed <= 0)
maxdays = -1;
if (BeWoApp.LoggedOnUser.HasRight(UserRightType.ServiceRecord_AllowEditAfterMaxDaysInNextMonth))
if (MainSession.LoggedOnUser.HasRight(UserRightType.ServiceRecord_AllowEditAfterMaxDaysInNextMonth))
maxdays = -1;
var test = dc.Start;
@@ -1746,20 +1761,20 @@ namespace BeWo.Core
exitLoop = true;
break;
case ServiceRecordValidationResult.OutOfEditLimit:
MessageBox.Show("Sie können keine neuen Leistungen für den " + vm.DateAndTime.Value.ToShortDateString() + " dokumentieren, da bereits der " + BeWoApp.AppSettings.MaxDaysEditServiceRecordsAllowed + ". des nachfolgenden Monats überschritten ist.", "Speichern", MessageBoxButton.OK, MessageBoxImage.Information);
MessageBox.Show("Sie können keine neuen Leistungen für den " + vm.DateAndTime.Value.ToShortDateString() + " dokumentieren, da bereits der " + MainSession.AppSettings.MaxDaysEditServiceRecordsAllowed + ". des nachfolgenden Monats überschritten ist.", "Speichern", MessageBoxButton.OK, MessageBoxImage.Information);
lValid = false;
exitLoop = true;
break;
case ServiceRecordValidationResult.FristAbgelaufen:
if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.ServiceRecordAllowEditAfterMindays))
if (!MainSession.LoggedOnUser.HasRight(UserRightType.ServiceRecordAllowEditAfterMindays))
{
if (BeWoApp.AppSettings.AnzTageZeiterfassErfolgt == 1)
if (MainSession.AppSettings.AnzTageZeiterfassErfolgt == 1)
{
MessageBox.Show("Sie können keine neuen Leistungen für den " + vm.DateAndTime.Value.ToShortDateString() + " dokumentieren, da die Zeiterfassung innerhalb von einem Tag erfolgen muss.", "Speichern", MessageBoxButton.OK, MessageBoxImage.Information);
}
else
{
MessageBox.Show("Sie können keine neuen Leistungen für den " + vm.DateAndTime.Value.ToShortDateString() + " dokumentieren, da die Zeiterfassung innerhalb von " + BeWoApp.AppSettings.AnzTageZeiterfassErfolgt + " Tagen erfolgen muss.", "Speichern", MessageBoxButton.OK, MessageBoxImage.Information);
MessageBox.Show("Sie können keine neuen Leistungen für den " + vm.DateAndTime.Value.ToShortDateString() + " dokumentieren, da die Zeiterfassung innerhalb von " + MainSession.AppSettings.AnzTageZeiterfassErfolgt + " Tagen erfolgen muss.", "Speichern", MessageBoxButton.OK, MessageBoxImage.Information);
}
lValid = false;
@@ -1773,7 +1788,7 @@ namespace BeWo.Core
break;
case ServiceRecordValidationResult.ServiceRecordOverlapping:
if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.ServiceRecord_AllowCreateOverlappingFLS))
if (!MainSession.LoggedOnUser.HasRight(UserRightType.ServiceRecord_AllowCreateOverlappingFLS))
{
MessageBox.Show("An dem gewählten Datum '" + vm.DateAndTime.Value.ToShortDateString() + " " + vm.DateAndTime.Value.ToShortTimeString() + "' existiert bereits ein Eintrag (" + result.Message + " bei Klient/in " + result.CustomerName + ") .\nSpeichern nicht möglich.", "Speichern nicht möglich", MessageBoxButton.OK, MessageBoxImage.Information);
lValid = false;
@@ -1786,7 +1801,7 @@ namespace BeWo.Core
break;
case ServiceRecordValidationResult.EmployeeOverlapping:
if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.ServiceRecord_AllowCreateOverlappingFLSForEmployee))
if (!MainSession.LoggedOnUser.HasRight(UserRightType.ServiceRecord_AllowCreateOverlappingFLSForEmployee))
{
MessageBox.Show("An dem gewählten Datum '" + vm.DateAndTime.Value.ToShortDateString() + " " + vm.DateAndTime.Value.ToShortTimeString() + "' existiert bereits ein Eintrag von " + result.EmployeeName + "\n(" + result.Message + ").\nSpeichern nicht möglich.", "Speichern nicht möglich", MessageBoxButton.OK, MessageBoxImage.Information);
lValid = false;
@@ -1808,7 +1823,7 @@ namespace BeWo.Core
"Die für {2} genehmigten FLS ({0:N}) werden mit diesem Eintrag überschritten. ({1:N}).",
result.ApprovedHours, result.HoursNew, klient);
if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.ServiceRecord_AllowCreateMoreFLSThanApproved))
if (!MainSession.LoggedOnUser.HasRight(UserRightType.ServiceRecord_AllowCreateMoreFLSThanApproved))
{
MessageBox.Show(msg + ").\nSpeichern nicht möglich.", "Speichern nicht möglich", MessageBoxButton.OK, MessageBoxImage.Information);
lValid = false;
@@ -1825,7 +1840,7 @@ namespace BeWo.Core
{
klient2 = "Klient/in " + result.CustomerName;
}
if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.BookServiceRecordAfterSettlementInvoice))
if (!MainSession.LoggedOnUser.HasRight(UserRightType.BookServiceRecordAfterSettlementInvoice))
{
MessageBox.Show(String.Format("Sie können den Eintrag nicht bearbeiten, da bereits eine Spitzabrechnung für {0} erstellt wurde.", klient2), "Speichern nicht möglich", MessageBoxButton.OK, MessageBoxImage.Warning);
lValid = false;
@@ -1868,7 +1883,7 @@ namespace BeWo.Core
var dc = vm.CommitToDataContract();
var emp = BeWoApp.LoggedOnUser.Employee;
var emp = MainSession.LoggedOnUser.Employee;
var r = new List<ServiceRecordValidationResultDC>();
@@ -1941,7 +1956,7 @@ namespace BeWo.Core
var serienTermine = (List<SchedulerAppointmentDC>)variablen["serienTermine"];
var mehrtaegigeTermine = (List<SchedulerAppointmentDC>)variablen["mehrtaegigeTermine"];
ServiceFacade.DoReportServiceAsync(strom => strom.CreateKalenderReport(appointmentIds, employeeOid, serienTermine, selectedDays, mehrtaegigeTermine), ms => BeWoApp.MainControl.Dispatch(() => ShowReportWindow(ms, title)));
ServiceFacade.DoReportServiceAsync(strom => strom.CreateKalenderReport(appointmentIds, employeeOid, serienTermine, selectedDays, mehrtaegigeTermine), ms => MainSession.MainPage.Dispatch(() => ShowReportWindow(ms, title)));
break;
case ReportEnum.KassenbuchReportEnum:
@@ -1952,7 +1967,7 @@ namespace BeWo.Core
var kasse = (BargeldkassenDC) variablen["bargeldkasse"];
ServiceFacade.DoReportServiceAsync(strom => strom.CreateKassenbuchReportImZeitraum(zeitraum,endzeitraum, kasse, objectOid, objectTid), ms => BeWoApp.MainControl.Dispatch(() => ShowReportWindow(ms, title)));
ServiceFacade.DoReportServiceAsync(strom => strom.CreateKassenbuchReportImZeitraum(zeitraum,endzeitraum, kasse, objectOid, objectTid), ms => MainSession.MainPage.Dispatch(() => ShowReportWindow(ms, title)));
break;
case ReportEnum.ZahlungsbelegEnum:
@@ -1960,7 +1975,7 @@ namespace BeWo.Core
var objectOid2 = Convert.ToInt64(variablen["objectoid"]);
var objectTid2 = (TableID) Enum.Parse(typeof(TableID), variablen["objecttid"].ToString());
ServiceFacade.DoReportServiceAsync(strom => strom.CreateKassenbelegReport(transaktion, objectOid2, objectTid2), ms => BeWoApp.MainControl.Dispatch(() => ShowReportWindow(ms, title)));
ServiceFacade.DoReportServiceAsync(strom => strom.CreateKassenbelegReport(transaktion, objectOid2, objectTid2), ms => MainSession.MainPage.Dispatch(() => ShowReportWindow(ms, title)));
break;
}
@@ -1984,9 +1999,9 @@ namespace BeWo.Core
ms.Close();
ms.Dispose();
//report.DefaultPrinterSettingsUsing.UseLandscape = BeWoApp.AppSettings.PrinterSettingsUseLandscape;
//report.DefaultPrinterSettingsUsing.UseMargins = BeWoApp.AppSettings.PrinterSettingsUseMargins;
//report.DefaultPrinterSettingsUsing.UsePaperKind = BeWoApp.AppSettings.PrinterSettingsUsePaperKind;
//report.DefaultPrinterSettingsUsing.UseLandscape = MainSession.AppSettings.PrinterSettingsUseLandscape;
//report.DefaultPrinterSettingsUsing.UseMargins = MainSession.AppSettings.PrinterSettingsUseMargins;
//report.DefaultPrinterSettingsUsing.UsePaperKind = MainSession.AppSettings.PrinterSettingsUsePaperKind;
BeWoWindow window = null;
@@ -1998,7 +2013,7 @@ namespace BeWo.Core
documentPreviewControl.Loaded += CustomizeReportPreviewToolBar;
documentPreviewControl.SnapsToDevicePixels = true;
window = new BeWoWindow { GroupBoxContent = documentPreviewControl, Owner = BeWoApp.CurrentBeWo.MainWindow };
window = new BeWoWindow { GroupBoxContent = documentPreviewControl, Owner = Session.GetWindow() };
ThemeManager.SetTheme(window, Theme.Office2010Black);
}
@@ -2016,7 +2031,7 @@ namespace BeWo.Core
documentPreviewControl.Visibility = Visibility.Visible;
BeWoApp.MainControl.EndWaiting();
MainSession.MainPage.EndWaiting();
}
public static PasswortSecurityStrength CheckPasswordSecurity(string paswd)
@@ -2090,7 +2105,7 @@ namespace BeWo.Core
{
if (employees.Count == 0)
{
employees.Add(BeWoApp.CompactLoggedOnEmployee);
employees.Add(MainSession.CompactLoggedOnEmployee);
}
// Gruppenbuchungen
@@ -2120,7 +2135,7 @@ namespace BeWo.Core
{
if(employees.Count == 0)
{
employees.Add(BeWoApp.CompactLoggedOnEmployee);
employees.Add(MainSession.CompactLoggedOnEmployee);
}
// Gruppenbuchungen
@@ -2131,33 +2146,33 @@ namespace BeWo.Core
}
public static void OwnChatSynchronisationVeranlassen()
{
if (!BeWoApp.Mandator.Apikey.IsNullOrEmpty())
{
if (!MainSession.Mandator.Apikey.IsNullOrEmpty())
{
try
{
var tenant = BeWoApp.Tenant;
var tenant = ConnectionInformation.Tenant;
#if DEBUG
tenant = "5473568546";
#endif
BeWoApp.GetChatServerUrlAsync(serverUrl =>
MainSession.GetChatServerUrlAsync(serverUrl =>
{
var client = new RestClient($"{serverUrl}/api/ownchat/sync/schedule/{BeWoApp.Mandator.Apikey}/{tenant}");
var client = new RestClient($"{serverUrl}/api/ownchat/sync/schedule/{MainSession.Mandator.Apikey}/{tenant}");
var request = new RestRequest();
client.ExecuteAsync(request, null);
});
// var serverUrl = BeWoApp.GetChatServerURL();
// var serverUrl = MainSession.GetChatServerURL();
// if (!string.IsNullOrEmpty(serverUrl))
// {
//#if DEBUG
// var endurl = serverUrl + "/api/ownchat/sync/schedule/" + BeWoApp.Mandator.Apikey + "/5473568546";
// var endurl = serverUrl + "/api/ownchat/sync/schedule/" + MainSession.Mandator.Apikey + "/5473568546";
//#else
// var endurl = serverUrl + "/api/ownchat/sync/schedule/" + BeWoApp.Mandator.Apikey + "/" + BeWoApp.Tenant;
// var endurl = serverUrl + "/api/ownchat/sync/schedule/" + MainSession.Mandator.Apikey + "/" + ConnectionInformation.Tenant;
//#endif
// WebRequest request = WebRequest.Create(endurl);
@@ -2167,11 +2182,11 @@ namespace BeWo.Core
// response.Close();
// response.Dispose();
//}
}
catch (Exception exception)
{
// MessageBox.Show("Die Verbindung konnte nicht aufgebaut werden.", "ownChat Fehler ", MessageBoxButton.OK);
// MessageBox.Show("Die Verbindung konnte nicht aufgebaut werden.", "ownChat Fehler ", MessageBoxButton.OK);
}
}
@@ -2179,19 +2194,19 @@ namespace BeWo.Core
public static bool HasRights(IEnumerable<UserRightType> pUserRightTypes)
{
return BeWoApp.HasLoggedOnUserRight(pUserRightTypes.ToArray());
return MainSession.HasLoggedOnUserRight(pUserRightTypes.ToArray());
}
public static bool HasRight(UserRightType pUserRightType)
{
return BeWoApp.LoggedOnUser.HasRight(pUserRightType);
return MainSession.LoggedOnUser.HasRight(pUserRightType);
}
public static bool CheckSchedulerRights(Appointment pAppointment, bool pIsNew, SchedulerRightsCheckType pCheckType)
{
var storage = pAppointment.GetCustomFieldStorage();
return Utils.CheckSchedulerRights(storage.CustomerList, storage.ResourceList, storage.EmployeeList.ToList(), storage.Originator, pIsNew, pCheckType, BeWoApp.LoggedOnUser);
}
return Utils.CheckSchedulerRights(storage.CustomerList, storage.ResourceList, storage.EmployeeList.ToList(), storage.Originator, pIsNew, pCheckType, MainSession.LoggedOnUser);
}
}
}

View File

@@ -354,5 +354,8 @@ namespace BeWo.Core.Config
public bool ShowPivotGrid { get; set; }
public string ExpandedAdministrationItems { get; set; }
public bool ShowUrlaubsplanung { get; set; }
public bool DontShowSpitzabrechnung { get; set; }
public bool ShowDienstplanung { get; set; }
}
}

View File

@@ -4,6 +4,7 @@ using BeWo.ViewModel;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.SharedLauncher.Information;
using System;
using System.Collections.Generic;
using System.IO;
@@ -84,7 +85,7 @@ namespace BeWo.Core
{
if (!offeneDialoge.ContainsKey(e.FullPath) )
{
BeWoApp.CurrentBeWo.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (Action)delegate
Session.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (Action)delegate
{
var dialog = new UploadDialog(e.FullPath, x);

View File

@@ -1,4 +1,5 @@
using System;
using BS.SharedLauncher.Information;
using System;
using System.ComponentModel;
namespace BeWo.Core
@@ -56,8 +57,8 @@ namespace BeWo.Core
public Uri GenerateNewExcelLink()
{
this._ExcelFileId = Guid.NewGuid() + ".xls";
//alles nach dem ? wird beim klick auf word/excel export im jeweiligen view erstellt tenant=" + BeWoApp.Tenant + "&username=" + BeWoApp.UserName + "&token=" + BeWoApp.LoggedOnUser.RC2Password + "&
this._ExcelUri = new Uri(BeWoApp.SiteOfOrigin + "/Download.aspx?fileid=" + this._ExcelFileId);
//alles nach dem ? wird beim klick auf word/excel export im jeweiligen view erstellt tenant=" + ConnectionInformation.Tenant + "&username=" + ConnectionInformation.Username + "&token=" + MainSession.LoggedOnUser.RC2Password + "&
this._ExcelUri = new Uri(ConnectionInformation.CoreServerAddressOrigin + "/Download.aspx?fileid=" + this._ExcelFileId);
if (this.PropertyChanged != null)
{
@@ -71,7 +72,7 @@ namespace BeWo.Core
{
this._WordFileId = Guid.NewGuid() + ".doc";
//alles nach dem ? wird beim klick auf word/excel export im jeweiligen view erstellt
this._WordUri = new Uri(BeWoApp.SiteOfOrigin + "/Download.aspx?tenant=" + BeWoApp.Tenant + "&username=" + BeWoApp.UserName + "&token=" + BeWoApp.LoggedOnUser.RC2Password + "&fileid=" + this._WordFileId);
this._WordUri = new Uri(ConnectionInformation.CoreServerAddressOrigin + "/Download.aspx?tenant=" + ConnectionInformation.Tenant + "&username=" + ConnectionInformation.Username + "&token=" + MainSession.LoggedOnUser.RC2Password + "&fileid=" + this._WordFileId);
if (this.PropertyChanged != null)
{

View File

@@ -38,7 +38,9 @@ namespace BeWo.Core.Service
private List<CompactEmployeeDC> mTeamMembers;
private Dictionary<ValueListEntryDC, List<ResourceDC>> mCats2ResInDic;
private List<RatingTypeDC> mRatingTypes;
private Dictionary<ValueListEntryDC, List<ResourceDC>> mCats2ResInDic;
private Cache()
{
@@ -63,6 +65,7 @@ namespace BeWo.Core.Service
this.ClearCustomers();
this.ClearWohnheims();
ClearResources();
ClearRatingTypes();
}
public void ClearAllValueListEntries()
@@ -115,12 +118,17 @@ namespace BeWo.Core.Service
mCats2ResInDic = null;
}
public void GetActiveSupportConceptCostbearer(Action<List<CompactSupportConceptDC>> callback)
public void ClearRatingTypes()
{
mRatingTypes = null;
}
public void GetActiveSupportConceptCostbearer(Action<List<CompactSupportConceptDC>> callback)
{
if (this.mActiveSupportConceptCostbearerList == null)
{
ServiceFacade.DoOperationsServiceAsync(
s => s.GetAllActiveSupportConceptCostbearer(false, true, BeWoApp.LoggedOnEmployee.EmployeeOid.Value),
s => s.GetAllActiveSupportConceptCostbearer(false, true, MainSession.LoggedOnEmployee.EmployeeOid.Value),
r =>
{
r.Sort((x, y) => (x.LastName + ", " + x.FirstName).CompareTo(y.LastName + ", " + y.FirstName));
@@ -141,7 +149,7 @@ namespace BeWo.Core.Service
// {
// var list = ServiceFacade.DoOperationsServiceSync(
// s => s.GetAllActiveSupportConceptCostbearer(false, true, BeWoApp.LoggedOnEmployee.EmployeeOid.Value));
// s => s.GetAllActiveSupportConceptCostbearer(false, true, MainSession.LoggedOnEmployee.EmployeeOid.Value));
// list.Sort((x, y) => { return (x.LastName + ", " + x.FirstName).CompareTo(y.LastName + ", " + y.FirstName); });
// this.mActiveSupportConceptCostbearerList = list;
@@ -158,7 +166,7 @@ namespace BeWo.Core.Service
if (this.mActiveAndApprovedSupportConceptCostbearerList == null)
{
ServiceFacade.DoOperationsServiceAsync(
s => s.GetAllActiveSupportConceptCostbearer(true, true, BeWoApp.LoggedOnEmployee.EmployeeOid.Value),
s => s.GetAllActiveSupportConceptCostbearer(true, true, MainSession.LoggedOnEmployee.EmployeeOid.Value),
r =>
{
r.Sort((x, y) => { return (x.LastName + ", " + x.FirstName).CompareTo(y.LastName + ", " + y.FirstName); });
@@ -247,6 +255,16 @@ namespace BeWo.Core.Service
}
}
public List<RatingTypeDC> GetAllRatingTypeList()
{
if(mRatingTypes == null)
{
ServiceFacade.DoOperationsServiceSync(cs => mRatingTypes = cs.GetAllRatingTypes());
}
return mRatingTypes;
}
public void GetServiceCategoryDescriptionDict(Action<Dictionary<ServiceCategoryDC, List<ServiceDescriptionDC>>> callback)
{
if (this.mServiceCategoryDescriptionDict == null)
@@ -277,7 +295,7 @@ namespace BeWo.Core.Service
if (this.mSupportConceptTree == null)
{
ServiceFacade.DoOperationsServiceAsync(
s => s.GetSupportConceptTreeByEmployee(BeWoApp.LoggedOnUser.Employee.EmployeeOid),
s => s.GetSupportConceptTreeByEmployee(MainSession.LoggedOnUser.Employee.EmployeeOid),
lTree =>
{
lTree.DoForEach(n => n.RecursivelySetParentOnChilds());
@@ -334,6 +352,28 @@ namespace BeWo.Core.Service
return ve;
}
public void AddGoalEntry(ValueListEntryDC newdc)
{
if (newdc.ValueListEntryOid.HasValue)
{
var ve = GetGoalEntry(newdc.ValueListEntryOid.Value);
if (ve == null || !ve.ValueListEntryOid.HasValue)
{
if (mValueListEntryDict != null)
{
if (!mValueListEntryDict.ContainsKey(newdc.Type))
{
mValueListEntryDict[newdc.Type] = new List<ValueListEntryDC>();
}
mValueListEntryDict[newdc.Type].Add(newdc);
}
}
}
}
public ValueListEntryDC GetValueListEntry(ValueListEntryType type, long oid)
{
if (mValueListEntryDict == null || !mValueListEntryDict.ContainsKey(type))
@@ -413,7 +453,7 @@ namespace BeWo.Core.Service
if (mAllCompactCustomers == null)
{
ServiceFacade.DoCustomerServiceAsync(
s => s.GetAllActiveAndArchivedCustomersCompact(BeWoApp.LoggedOnEmployee.EmployeeOid.Value),
s => s.GetAllActiveAndArchivedCustomersCompact(MainSession.LoggedOnEmployee.EmployeeOid.Value),
r =>
{
r.Sort((x, y) => (x.LastName + ", " + x.FirstName).CompareTo(y.LastName + ", " + y.FirstName));
@@ -432,7 +472,7 @@ namespace BeWo.Core.Service
{
if (mAllCompactCustomers == null)
{
ServiceFacade.DoCustomerServiceSync(cs => mAllCompactCustomers = cs.GetAllActiveAndArchivedCustomersCompact(BeWoApp.LoggedOnEmployee.EmployeeOid.Value));
ServiceFacade.DoCustomerServiceSync(cs => mAllCompactCustomers = cs.GetAllActiveAndArchivedCustomersCompact(MainSession.LoggedOnEmployee.EmployeeOid.Value));
mAllCompactCustomers.Sort((x, y) => (x.LastName + ", " + x.FirstName).CompareTo(y.LastName + ", " + y.FirstName));
}

View File

@@ -284,6 +284,7 @@ namespace BeWo.Core.Service
public static void RecursiveSynchronousSCValueListEntrySave(SupportConceptGoalTreeItem treeItem)
{
var neuerDC = ServiceFacade.DoValueListServiceSync(s => s.InsertNewValueListEntry(treeItem.GoalEntryVM.CommitToDataContract()));
Cache.GetInstance().AddGoalEntry(neuerDC);
InsertedGoals.Add(neuerDC);
treeItem.GoalEntryVM = new ValueListEntryVM(neuerDC);
treeItem.GoalEntryDC = neuerDC;
@@ -302,7 +303,7 @@ namespace BeWo.Core.Service
{
ValueListEntryDC copyVe = new ValueListEntryDC();
copyVe.Abbreviation = ve.Abbreviation;
copyVe.Rating = copyRating ? ve.Rating : null;
copyVe.RatingTypeOid = copyRating ? ve.RatingTypeOid : null;
copyVe.Notice = ve.Notice;
copyVe.IsSystemEntry = ve.IsSystemEntry;
copyVe.ParentOid = ve.ParentOid;

View File

@@ -26,6 +26,7 @@ namespace BeWo.Core.Service
{
var treeItem = new SupportConceptGoalDC
{
CheckRecursive = false,
GoalEntryDC = goalCat,
IsExpanded = allGoalsAndCategories.Count <= 30
};
@@ -57,15 +58,20 @@ namespace BeWo.Core.Service
}
}
var zieleOhneKinder = goalCategoryDict.Values.Where(w => w.Children.Count == 0).ToList();
foreach (var ziel in zieleOhneKinder)
{
CheckIfSelected(ziel, selectedGoals);
}
//var zieleOhneKinder = goalCategoryDict.Values.Where(w => w.Children.Count == 0).ToList();
//foreach (var ziel in zieleOhneKinder)
//{
// CheckIfSelected(ziel, selectedGoals);
//}
var alleZiele = goalCategoryDict.Values.ToList();
foreach (var ziel in alleZiele)
{
CheckIfSelected(ziel, selectedGoals);
}
foreach (var goal in massnahmen)
{
var kind = new SupportConceptGoalDC { GoalEntryDC = goal };
var kind = new SupportConceptGoalDC { GoalEntryDC = goal, CheckRecursive = false };
CheckIfSelected(kind, selectedGoals);
@@ -91,29 +97,38 @@ namespace BeWo.Core.Service
if (existingGoal.Equals(goal.GoalEntryDC))
{
goal.IsChecked = true;
goal.GoalEntryDC.Rating = existingGoal.Rating;
goal.GoalEntryDC.RatingTypeOid = existingGoal.RatingTypeOid;
if (existingGoal.RatingTypeOid.HasValue)
{
var rdc = Cache.GetInstance().GetAllRatingTypeList()
.FirstOrDefault(r => r.RatingTypeOid == existingGoal.RatingTypeOid);
if (rdc != null)
{
goal.RatingName = rdc.DisplayName;
}
}
}
}
goal.PropertyChanged += (s, e) =>
{
var selectedGoal = s as SupportConceptGoalDC;
if (selectedGoal != null)
{
if (selectedGoal.IsChecked)
{
if (!selectedGoals.Contains(selectedGoal.GoalEntryDC))
{
selectedGoals.Add(selectedGoal.GoalEntryDC);
}
//goal.PropertyChanged += (s, e) =>
//{
// var selectedGoal = s as SupportConceptGoalDC;
// if (selectedGoal != null)
// {
// if (selectedGoal.IsChecked)
// {
// if (!selectedGoals.Contains(selectedGoal.GoalEntryDC))
// {
// selectedGoals.Add(selectedGoal.GoalEntryDC);
// }
}
else
{
selectedGoals.Remove(selectedGoal.GoalEntryDC);
}
}
};
// }
// else
// {
// selectedGoals.Remove(selectedGoal.GoalEntryDC);
// }
// }
//};
}
}
@@ -294,18 +309,18 @@ namespace BeWo.Core.Service
}
dc.Employee = BeWoApp.LoggedOnUser.Employee;
dc.Employee = MainSession.LoggedOnUser.Employee;
dc.Customer = customerCompact;
if (customerCompact != null)
{
dc.SupportConcept = HoleHilfeplanAusListe(scList, customerCompact, firstTime, lastTime);
}
if (BeWoApp.AppSettings.IsEndDateVisible)
if (MainSession.AppSettings.IsEndDateVisible)
{
dc.ServiceRecordFormat = ServiceRecordFormate.ZeiterfassungMitEndDatum;
}
else if (BeWoApp.AppSettings.IsOnlyYearMonthVisible)
else if (MainSession.AppSettings.IsOnlyYearMonthVisible)
{
dc.ServiceRecordFormat = ServiceRecordFormate.ZeiterfassungMitMonatJahr;
}

View File

@@ -20,10 +20,34 @@ namespace BeWo.Core
set => _GoalEntryVM = value;
}
//CB Das ist doch genau falsch herum?
public bool IsGoal => GoalEntryVM != null ?
GoalEntryVM.Type.Equals(ValueListEntryType.SupportConceptGoalType) || GoalEntryVM.Type.Equals(ValueListEntryType.SupportConceptIndividualGoalType) :
GoalEntryDC.Type.Equals(ValueListEntryType.SupportConceptGoalType) || GoalEntryDC.Type.Equals(ValueListEntryType.SupportConceptIndividualGoalType);
public bool IsMassnahme
{
get
{
bool ism = false;
if (GoalEntryVM != null)
{
ism = GoalEntryVM.Type.Equals(ValueListEntryType.SupportConceptGoalType) || GoalEntryVM.Type.Equals(ValueListEntryType.SupportConceptIndividualGoalType);
}
else if (GoalEntryDC != null)
{
ism = GoalEntryDC.Type.Equals(ValueListEntryType.SupportConceptGoalType) || GoalEntryDC.Type.Equals(ValueListEntryType.SupportConceptIndividualGoalType);
}
return ism;
}
}
//public bool IsGoal => GoalEntryVM != null ?
// GoalEntryVM.Type.Equals(ValueListEntryType.SupportConceptGoalType) || GoalEntryVM.Type.Equals(ValueListEntryType.SupportConceptIndividualGoalType) :
// GoalEntryDC.Type.Equals(ValueListEntryType.SupportConceptGoalType) || GoalEntryDC.Type.Equals(ValueListEntryType.SupportConceptIndividualGoalType);
public bool ShowNotice
@@ -36,6 +60,8 @@ namespace BeWo.Core
}
}
public bool IsHidden { get; set; }
public BindingList<SupportConceptGoalTreeItem> Items
{
get => _Children ?? (_Children = new BindingList<SupportConceptGoalTreeItem>());

View File

@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using DevExpress.Xpf.Editors;
using DevExpress.Xpf.Grid;
using DevExpress.Xpf.Scheduler;
namespace BeWo
@@ -17,6 +18,22 @@ namespace BeWo
}
}
//class CustomGridLocalizer : GridControlLocalizer
//{
// protected override void PopulateStringTable()
// {
// base.PopulateStringTable();
// for (int i = 0; i < 10000; i++)
// {
// var enumInt = (GridControlStringId)i;
// AddString(enumInt, enumInt.ToString());
// }
// ;
// }
//}
//class CustomSchedulerResXLocalizer : SchedulerControlResXLocalizer
//{
// public override string GetLocalizedString(SchedulerControlStringId id)
@@ -28,7 +45,7 @@ namespace BeWo
// {
// base.PopulateStringTable();
// }
//}

View File

@@ -4,7 +4,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d" Width="Auto" Background="{StaticResource LoginBackground}" SnapsToDevicePixels="False" Focusable="True">
mc:Ignorable="d" Width="Auto" Background="{DynamicResource LoginBackground}" SnapsToDevicePixels="False" Focusable="True">
<Page.Resources>
<Storyboard x:Key="OnLoaded1">
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="GridLogin" Storyboard.TargetProperty="(UIElement.Opacity)">
@@ -15,7 +15,7 @@
</Page.Resources>
<Page.Triggers>
<EventTrigger RoutedEvent="FrameworkElement.Loaded" SourceName="GridLogin">
<BeginStoryboard Storyboard="{StaticResource OnLoaded1}" />
<BeginStoryboard Storyboard="{DynamicResource OnLoaded1}" />
</EventTrigger>
</Page.Triggers>
<Grid>

View File

@@ -9,8 +9,8 @@ namespace BeWo
InitializeComponent();
Loaded += LockedPage_Loaded;
LblVersion.Content = BeWoApp.Version;
lblGesperrt.Content = $"Gesperrt von Benutzer {BeWoApp.LoggedOnUser.Employee.FirstName} {BeWoApp.LoggedOnUser.Employee.LastName}";
LblVersion.Content = MainSession.Version;
lblGesperrt.Content = $"Gesperrt von Benutzer {MainSession.LoggedOnUser.Employee.FirstName} {MainSession.LoggedOnUser.Employee.LastName}";
}
private void LockedPage_Loaded(object sender, RoutedEventArgs e)

File diff suppressed because it is too large Load Diff

817
BeWo/MainDictionary.xaml Normal file
View File

@@ -0,0 +1,817 @@
<ResourceDictionary x:Class="BeWo.MainDictionary"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:conv="clr-namespace:BeWo.Converter"
xmlns:bewo="clr-namespace:BeWo"
xmlns:shared="clr-namespace:BS.Shared.DataContracts;assembly=BS.Shared"
xmlns:sharedCompact="clr-namespace:BS.Shared.DataContracts.Compact;assembly=BS.Shared"
xmlns:microsoftWindowsThemes1="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Classic"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/PresentationFramework.Aero, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=MSIL;component/themes/aero.normalcolor.xaml" />
<ResourceDictionary Source="Styles\OrangeBlack.xaml" />
<ResourceDictionary Source="Styles\AnalysisExpanderStyle.xaml" />
</ResourceDictionary.MergedDictionaries>
<!--<conv:AssessmentSheetCategory2VisibilityConverter x:Key="AssessmentSheetCategory2VisibilityConverter" />-->
<conv:EnumToDescriptionConverter x:Key="enumToDescriptionConverter" />
<DataTemplate x:Key="whithAttributeItemTemplate">
<TextBlock Text="{Binding Converter={StaticResource enumToDescriptionConverter}}"/>
</DataTemplate>
<conv:BoolNullCheckConverter x:Key="BoolNullCheckConverter" />
<conv:BoolScaleTransformConverter x:Key="BoolScaleTransformConverter" />
<conv:BoolVisibilityConverter x:Key="BoolVisibilityConverter" />
<conv:BoolVisibilityMultiConverter x:Key="BoolVisibilityMultiConverter" />
<conv:BoolVisibilityHiddenConverter x:Key="BoolVisibilityHiddenConverter" />
<conv:CellColorConverter x:Key="CellColorConverter"/>
<conv:ClientType2VisibilityConverter x:Key="ClientType2VisibilityConverter" />
<conv:CollectionContainsTag2BoolConverter x:Key="CollectionContainsTag2BoolConverter" />
<conv:CollectionCountToBoolConverter x:Key="CollectionCountToBoolConverter" />
<conv:CostRatePeriodValueConverter x:Key="CostRatePeriodValueConverter" />
<conv:DataContract2StringConverter x:Key="DataContract2StringConverter" />
<conv:Date2CalendarWeekStringConverter x:Key="Date2CalendarWeekStringConverter" />
<conv:DateConverter x:Key="DateConverter" />
<conv:DateNullValueToEmptyStringConverter x:Key="DateNullValueToEmptyStringConverter" />
<conv:DecimalConverter x:Key="DecimalConverter" />
<conv:DownloadURLConverter x:Key="DownloadURLConverter" />
<conv:FileAttachmentTypeConverter x:Key="FileAttachmentTypeConverter"></conv:FileAttachmentTypeConverter>
<conv:FilterDCConverter x:Key="FilterDCConverter" />
<conv:IListT2DataTableConverter x:Key="IListT2DataTableConverter" />
<conv:IndexBoolConverter x:Key="IndexBoolConverter" />
<conv:Int2DecimalConverter x:Key="Int2DecimalConverter" />
<conv:NodeType2IconPathConverter x:Key="NodeType2IconPathConverter" />
<conv:NumberSmaller0Converter x:Key="NumberSmaller0Converter" />
<conv:ObjectBoolConverter x:Key="ObjectBoolConverter" />
<conv:ObjectVisibilityConverter x:Key="ObjectVisibilityConverter" />
<conv:ObjectVisibilityMultiConverter x:Key="ObjectVisibilityMultiConverter" />
<conv:OneWayToSourceSwitch x:Key="OneWayToSourceSwitch" />
<conv:PersonBackgroundBrushConverter x:Key="PersonBackgroundBrushConverter" />
<conv:ReverseValueEqualsParamVisibilityConverter x:Key="ReverseValueEqualsParamVisibilityConverter" />
<conv:SettlementDCPrintURLConverter x:Key="SettlementDCPrintURLConverter" />
<conv:StringBrushConverter x:Key="StringBrushConverter" />
<conv:StringFormatConverter x:Key="StringFormatConverter" />
<conv:StringFormatMulitConverter x:Key="StringFormatMulitConverter" />
<conv:SupportConceptOverviewDCConverter x:Key="SupportConceptOverviewDCConverter" />
<conv:UserRightTypeConverter x:Key="UserRightTypeConverter" />
<conv:ValueEqualsParamVisibilityConverter x:Key="ValueEqualsParamVisibilityConverter" />
<conv:ReactivationRight2VisibilityConverter x:Key="ReactivationRight2VisibilityConverter" />
<conv:BoolReverseConverter x:Key="BoolReverseConverter" />
<conv:IndividualGoalMassnahmeUncheckPreventConverter x:Key="IndividualGoalMassnahmeUncheckPreventConverter" />
<conv:Rights2DefaultBooleanConverter x:Key="Rights2DefaultBooleanConverter"/>
<conv:CollectionCountToVisibilityConverter x:Key="CollectionCountToVisibilityConverter" />
<conv:DeleteForGoodRight2VisibilityConverter x:Key="DeleteForGoodRight2VisibilityConverter" />
<conv:AnonymizationRight2VisibilityConverter x:Key="AnonymizationRight2VisibilityConverter" />
<Style x:Key="SupportConceptDetailStyle" TargetType="{x:Type ListBoxItem}">
<Setter Property="HorizontalContentAlignment" Value="{Binding Path=HorizontalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
<Setter Property="VerticalContentAlignment" Value="{Binding Path=VerticalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
<Setter Property="Margin" Value="0,2,0,0" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Grid>
<Border x:Name="ItemBorder" CornerRadius="5" MinHeight="30" Background="#FF000000">
<Border.OpacityMask>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#19000000" Offset="0" />
<GradientStop Color="#26000000" Offset="1" />
</LinearGradientBrush>
</Border.OpacityMask>
</Border>
<Border x:Name="ItemContent" CornerRadius="5" MinHeight="30">
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="5,3,5,3" OpacityMask="{x:Null}" SnapsToDevicePixels="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" MinWidth="250" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Image Grid.RowSpan="2" Source="{Binding Path=IconPath}" Margin="0,0,5,0" Height="30" VerticalAlignment="Center" HorizontalAlignment="Stretch" Width="Auto" RenderTransformOrigin="0.5,0.5" />
<TextBlock x:Name="txtDetail1" Grid.Column="1" Grid.Row="0" Text="{Binding Path=DetailDescription}" FontSize="14" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" />
<TextBlock x:Name="txtDetail2" Grid.Column="1" Grid.Row="1" Text="{Binding Path=AddressString}" FontSize="12" Foreground="#FFA0A0A0" FontFamily="Microsoft Sans Serif" />
<ListBox x:Name="listBoxDetail3" Grid.Row="0" Grid.Column="2" Grid.RowSpan="2" ItemsSource="{Binding Path=CostBearerDetailStrings}" FontSize="12" Foreground="{Binding ForegroundBrush}" FontFamily="Microsoft Sans Serif" Background="Transparent" BorderThickness="0" IsHitTestVisible="False" Margin="6,0,0,0">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" Foreground="{Binding Foreground, RelativeSource={RelativeSource AncestorType={x:Type ListBox}, Mode=FindAncestor}}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<TextBlock VerticalAlignment="Center" Grid.Column="3" Grid.Row="0" Grid.RowSpan="2" Margin="0,0,3,0" Visibility="{Binding Path=IsDeleted, Converter={StaticResource ReactivationRight2VisibilityConverter}, ConverterParameter=SupportConcept}">
<Hyperlink TargetName="_NewWindow" Foreground="#FFFFFFFF" Click="Hyperlink_Hilfeplan_Reaktivieren_Click" Tag="{Binding}">Reaktivieren</Hyperlink>
</TextBlock>
<Button x:Name="btnOpenServiceRecordView" Grid.Column="4" Grid.Row="0" Grid.RowSpan="2" Width="25" Height="25" Style="{DynamicResource TransparentButtonStyle}" ToolTip="{markup:Translate In Zeiterfassung öffnen}" Tag="{Binding}" Margin="0,0,2,0" Click="BtnOpenServiceRecordView_Click">
<Image Source="Ressources\Icons\HistoryDisabled.png" />
</Button>
</Grid>
</Border>
</Grid>
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding Path=IsArchived}" Value="True">
<Setter Property="Foreground" TargetName="txtDetail1" Value="#FF808080" />
<Setter Property="Foreground" TargetName="txtDetail2" Value="#FF808080" />
<Setter Property="Foreground" TargetName="listBoxDetail3" Value="#FF808080" />
</DataTrigger>
<DataTrigger Binding="{Binding Path=IsDeleted}" Value="True">
<Setter Property="Foreground" TargetName="txtDetail1" Value="#FFF97E7B" />
<Setter Property="Foreground" TargetName="txtDetail2" Value="#FFF97E7B" />
<Setter Property="Foreground" TargetName="listBoxDetail3" Value="#FFF97E7B" />
</DataTrigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="OpacityMask" TargetName="ItemBorder">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#33000000" Offset="0" />
<GradientStop Color="#66000000" Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
<Trigger Property="ListBoxItem.IsSelected" Value="True">
<Setter Property="OpacityMask" TargetName="ItemBorder">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#99000000" Offset="0" />
<GradientStop Color="#CC000000" Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="ListBoxItem.IsSelected" Value="True" />
<Condition Property="Selector.IsSelectionActive" Value="False" />
</MultiTrigger.Conditions>
<Setter Property="OpacityMask" TargetName="ItemBorder">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#99000000" Offset="0" />
<GradientStop Color="#B2000000" Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="SupportConceptSearchStyle" TargetType="{x:Type ListBoxItem}">
<Setter Property="HorizontalContentAlignment" Value="{Binding Path=HorizontalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
<Setter Property="VerticalContentAlignment" Value="{Binding Path=VerticalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
<Setter Property="Margin" Value="0,2,0,0" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Grid>
<Border x:Name="ItemBorder" CornerRadius="5" MinHeight="30" Background="#FF000000">
<Border.OpacityMask>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#19000000" Offset="0" />
<GradientStop Color="#26000000" Offset="1" />
</LinearGradientBrush>
</Border.OpacityMask>
</Border>
<Border x:Name="ItemContent" CornerRadius="5" MinHeight="30">
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="5,3,5,3" OpacityMask="{x:Null}" SnapsToDevicePixels="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Image Grid.RowSpan="2" Source="{Binding Path=IconPath}" Margin="0,0,5,0" Height="30" VerticalAlignment="Center" HorizontalAlignment="Stretch" Width="Auto" RenderTransformOrigin="0.5,0.5" />
<TextBlock x:Name="txtDetail1" Grid.Column="1" Grid.Row="0" Text="{Binding Path=DetailDescription}" FontSize="14" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" />
<ListBox x:Name="listBoxDetail3" Grid.Column="1" Grid.Row="1" Margin="-2,0,0,0" ItemsSource="{Binding Path=CostBearerDetailStrings}" FontSize="12" Foreground="{Binding ForegroundBrush}" FontFamily="Microsoft Sans Serif" Background="Transparent" BorderThickness="0" IsHitTestVisible="False" >
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" Foreground="{Binding Foreground, RelativeSource={RelativeSource AncestorType={x:Type ListBox}, Mode=FindAncestor}}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
</Border>
</Grid>
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding Path=IsArchived}" Value="True">
<Setter Property="Foreground" TargetName="txtDetail1" Value="#FF808080" />
<Setter Property="Foreground" TargetName="listBoxDetail3" Value="#FF808080" />
</DataTrigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="OpacityMask" TargetName="ItemBorder">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#33000000" Offset="0" />
<GradientStop Color="#66000000" Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
<Trigger Property="ListBoxItem.IsSelected" Value="True">
<Setter Property="OpacityMask" TargetName="ItemBorder">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#99000000" Offset="0" />
<GradientStop Color="#CC000000" Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="ListBoxItem.IsSelected" Value="True" />
<Condition Property="Selector.IsSelectionActive" Value="False" />
</MultiTrigger.Conditions>
<Setter Property="OpacityMask" TargetName="ItemBorder">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#99000000" Offset="0" />
<GradientStop Color="#B2000000" Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="MainContentGroupBoxStyle" TargetType="{x:Type GroupBox}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupBox}">
<Grid SnapsToDevicePixels="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="15" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="15" />
<RowDefinition Height="20" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Border Background="#FF202020" Grid.RowSpan="3" CornerRadius="3,1,0,3" />
<Border Background="#FF202020" Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="1" Grid.RowSpan="2" CornerRadius="0,1,0,3" />
<Path StrokeThickness="0" Fill="#FF202020" Data="M 0,0 L 20,20 H 0 Z" Grid.Column="1" />
<Border Margin="0,0,0,0" x:Name="Header" Grid.Column="0" Grid.Row="0" Background="{x:Null}" Padding="10,0,3,0" Grid.ColumnSpan="2" Grid.RowSpan="2" VerticalAlignment="Center">
<ContentPresenter TextElement.FontSize="22" Margin="5,-3,0,0" RenderTransformOrigin="0,0.5" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Content="{TemplateBinding Header}" ContentSource="Header" ContentStringFormat="{TemplateBinding HeaderStringFormat}" ContentTemplate="{TemplateBinding HeaderTemplate}" RecognizesAccessKey="True" VerticalAlignment="Stretch">
<ContentPresenter.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="0" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</ContentPresenter.RenderTransform>
</ContentPresenter>
</Border>
<Border Grid.Column="0" Grid.Row="2" Padding="5,5,5,5" Grid.ColumnSpan="2" Grid.RowSpan="1">
<ContentPresenter Margin="0,0,0,0" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Content="{TemplateBinding Content}" ContentStringFormat="{TemplateBinding ContentStringFormat}" ContentTemplate="{TemplateBinding ContentTemplate}" />
</Border>
<Path x:Name="isDirtyShape" Grid.Column="0" Grid.Row="1" VerticalAlignment="Center" HorizontalAlignment="Right" StrokeThickness="0" Data="M8.0969173,7.7938912 L7.3260856,1.6313261E-55 10.960733,0.056791361 9.8816968,7.8372078 17.130865,4.505709 18.209901,7.969982 10.336028,9.4841573 16.015164,15.065028 13.005222,17.336183 9.0298264,10.44961 4.7503484,17.141891 1.9107803,14.614571 7.6195467,9.5947088 4.3790577E-47,7.8281079 1.0589099,4.5910004 z" Margin="0,0,41.007,3" Width="18.21" Height="17.336" RenderTransformOrigin="0.5,0.5">
<Path.Fill>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FFFB6F0E" Offset="0" />
<GradientStop Color="#FF8C400A" Offset="1" />
</LinearGradientBrush>
</Path.Fill>
<Path.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="0" ScaleY="0" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="0" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</Path.RenderTransform>
</Path>
<ToggleButton Checked="Togglebutton_maximise_Checked"
Unchecked="Togglebutton_maximise_Unchecked"
Margin="3,6,3,0"
x:Name="togglebutton_maximise"
Grid.Column="0" Grid.Row="0" Width="25" Height="25"
VerticalAlignment="Center" HorizontalAlignment="Right"
Style="{DynamicResource MaximizeButtonStyle}"
Grid.ColumnSpan="1" Grid.RowSpan="2"
IsChecked="{Binding Source={x:Static bewo:MainSession.MainPage}, Path=IsMaximized}" />
<!-- ToggleButton Checked="togglebutton_maximise_Checked" Unchecked="togglebutton_maximise_Unchecked" Margin="3,6,3,0" x:Name="togglebutton_maximise" Grid.Column="0" Grid.Row="0" Width="25" Height="25" VerticalAlignment="Center" HorizontalAlignment="Right" Style="{DynamicResource MaximizeButtonStyle}" Grid.ColumnSpan="1" Grid.RowSpan="2"/ -->
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="Foreground" Value="{DynamicResource MainGroupBoxForegroundBrush}" />
<Setter Property="FontWeight" Value="Normal" />
<Setter Property="FontFamily" Value="Microsoft Sans Serif" />
<Setter Property="FontSize" Value="11" />
</Style>
<Style x:Key="MainContentGroupBoxWithoutMaximizeBtnStyle" TargetType="{x:Type GroupBox}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupBox}">
<Grid SnapsToDevicePixels="True" x:Name="frameGrid" Background="Transparent">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="15" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="15" />
<RowDefinition Height="20" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Border Background="#FF202020" Grid.RowSpan="3" CornerRadius="3,1,0,3" MouseLeftButtonDown="FrameLeftMouseDown" />
<Border Background="#FF202020" Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="1" Grid.RowSpan="2" CornerRadius="0,1,0,3" MouseLeftButtonDown="FrameLeftMouseDown" />
<Path StrokeThickness="0" Fill="#FF202020" Data="M 0,0 L 20,20 H 0 Z" Grid.Column="1" />
<Border Margin="0,0,0,0" x:Name="Header" Grid.Column="0" Grid.Row="0" Background="{x:Null}" Padding="10,0,3,0" Grid.ColumnSpan="2" Grid.RowSpan="2" VerticalAlignment="Center">
<ContentPresenter TextElement.FontSize="22" Margin="5,-3,0,0" RenderTransformOrigin="0,0.5" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Content="{TemplateBinding Header}" ContentSource="Header" ContentStringFormat="{TemplateBinding HeaderStringFormat}" ContentTemplate="{TemplateBinding HeaderTemplate}" RecognizesAccessKey="True" VerticalAlignment="Stretch">
<ContentPresenter.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="0" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</ContentPresenter.RenderTransform>
</ContentPresenter>
</Border>
<Border Grid.Column="0" Grid.Row="2" Padding="5,5,5,5" Grid.ColumnSpan="2" Grid.RowSpan="1">
<ContentPresenter Margin="0,0,0,0" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Content="{TemplateBinding Content}" ContentStringFormat="{TemplateBinding ContentStringFormat}" ContentTemplate="{TemplateBinding ContentTemplate}" />
</Border>
<Path x:Name="isDirtyShape" Grid.Column="0" Grid.Row="1" VerticalAlignment="Center" HorizontalAlignment="Right" StrokeThickness="0" Data="M8.0969173,7.7938912 L7.3260856,1.6313261E-55 10.960733,0.056791361 9.8816968,7.8372078 17.130865,4.505709 18.209901,7.969982 10.336028,9.4841573 16.015164,15.065028 13.005222,17.336183 9.0298264,10.44961 4.7503484,17.141891 1.9107803,14.614571 7.6195467,9.5947088 4.3790577E-47,7.8281079 1.0589099,4.5910004 z" Margin="0,0,41.007,3" Width="18.21" Height="17.336" RenderTransformOrigin="0.5,0.5">
<Path.Fill>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FFFB6F0E" Offset="0" />
<GradientStop Color="#FF8C400A" Offset="1" />
</LinearGradientBrush>
</Path.Fill>
<Path.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="0" ScaleY="0" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="0" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</Path.RenderTransform>
</Path>
<Button Margin="3,3,3,3" x:Name="button_close" Grid.Column="0" Grid.Row="0"
Width="25" Height="25" VerticalAlignment="Center" HorizontalAlignment="Right"
Style="{DynamicResource CloseButtonStyle}" Command="ApplicationCommands.Close"
Grid.RowSpan="2" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="Foreground" Value="{DynamicResource MainGroupBoxForegroundBrush}" />
<Setter Property="FontWeight" Value="Normal" />
<Setter Property="FontFamily" Value="Microsoft Sans Serif" />
<Setter Property="FontSize" Value="11" />
</Style>
<Style x:Key="MainContentGroupBoxWithMinimizeBtnStyle" TargetType="{x:Type GroupBox}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupBox}">
<Grid SnapsToDevicePixels="True" x:Name="frameGrid" Background="Transparent">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="15" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="15" />
<RowDefinition Height="20" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Border Background="#FF202020" Grid.RowSpan="3" CornerRadius="3,1,0,3" MouseLeftButtonDown="FrameLeftMouseDown" />
<Border Background="#FF202020" Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="1" Grid.RowSpan="2" CornerRadius="0,1,0,3" MouseLeftButtonDown="FrameLeftMouseDown" />
<Path StrokeThickness="0" Fill="#FF202020" Data="M 0,0 L 20,20 H 0 Z" Grid.Column="1" />
<Border Margin="0,0,0,0" x:Name="Header" Grid.Column="0" Grid.Row="0" Background="{x:Null}" Padding="10,0,3,0" Grid.ColumnSpan="2" Grid.RowSpan="2" VerticalAlignment="Center">
<ContentPresenter TextElement.FontSize="22" Margin="5,-3,0,0" RenderTransformOrigin="0,0.5" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Content="{TemplateBinding Header}" ContentSource="Header" ContentStringFormat="{TemplateBinding HeaderStringFormat}" ContentTemplate="{TemplateBinding HeaderTemplate}" RecognizesAccessKey="True" VerticalAlignment="Stretch">
<ContentPresenter.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="0" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</ContentPresenter.RenderTransform>
</ContentPresenter>
</Border>
<Border Grid.Column="0" Grid.Row="2" Padding="5,5,5,5" Grid.ColumnSpan="2" Grid.RowSpan="1">
<ContentPresenter Margin="0,0,0,0" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Content="{TemplateBinding Content}" ContentStringFormat="{TemplateBinding ContentStringFormat}" ContentTemplate="{TemplateBinding ContentTemplate}" />
</Border>
<Path x:Name="isDirtyShape" Grid.Column="0" Grid.Row="1" VerticalAlignment="Center" HorizontalAlignment="Right" StrokeThickness="0" Data="M8.0969173,7.7938912 L7.3260856,1.6313261E-55 10.960733,0.056791361 9.8816968,7.8372078 17.130865,4.505709 18.209901,7.969982 10.336028,9.4841573 16.015164,15.065028 13.005222,17.336183 9.0298264,10.44961 4.7503484,17.141891 1.9107803,14.614571 7.6195467,9.5947088 4.3790577E-47,7.8281079 1.0589099,4.5910004 z" Margin="0,0,41.007,3" Width="18.21" Height="17.336" RenderTransformOrigin="0.5,0.5">
<Path.Fill>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FFFB6F0E" Offset="0" />
<GradientStop Color="#FF8C400A" Offset="1" />
</LinearGradientBrush>
</Path.Fill>
<Path.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="0" ScaleY="0" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="0" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</Path.RenderTransform>
</Path>
<Button Margin="3,3,3,3" x:Name="button_close" Grid.Column="0" Grid.Row="0"
Width="25" Height="25" VerticalAlignment="Center" HorizontalAlignment="Right"
Style="{DynamicResource MinimizeButtonStyle}" Command="ApplicationCommands.Close"
Grid.RowSpan="2" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="Foreground" Value="{DynamicResource MainGroupBoxForegroundBrush}" />
<Setter Property="FontWeight" Value="Normal" />
<Setter Property="FontFamily" Value="Microsoft Sans Serif" />
<Setter Property="FontSize" Value="11" />
</Style>
<Style x:Key="MainContentGroupBoxWithMinMaxCloseBtnStyle" TargetType="{x:Type GroupBox}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupBox}">
<Grid SnapsToDevicePixels="True" x:Name="frameGrid" Background="Transparent">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="15" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="15" />
<RowDefinition Height="20" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Border Background="#FF202020" Grid.RowSpan="3" CornerRadius="3,1,0,3" MouseLeftButtonDown="FrameLeftMouseDown" />
<Border Background="#FF202020" Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="1" Grid.RowSpan="2" CornerRadius="0,1,0,3" MouseLeftButtonDown="FrameLeftMouseDown" />
<Path StrokeThickness="0" Fill="#FF202020" Data="M 0,0 L 20,20 H 0 Z" Grid.Column="1" />
<Border Margin="0,0,0,0" x:Name="Header" Grid.Column="0" Grid.Row="0" Background="{x:Null}" Padding="10,0,3,0" Grid.ColumnSpan="2" Grid.RowSpan="2" VerticalAlignment="Center">
<ContentPresenter TextElement.FontSize="22" Margin="5,-3,0,0" RenderTransformOrigin="0,0.5" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Content="{TemplateBinding Header}" ContentSource="Header" ContentStringFormat="{TemplateBinding HeaderStringFormat}" ContentTemplate="{TemplateBinding HeaderTemplate}" RecognizesAccessKey="True" VerticalAlignment="Stretch">
<ContentPresenter.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="0" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</ContentPresenter.RenderTransform>
</ContentPresenter>
</Border>
<Border Grid.Column="0" Grid.Row="2" Padding="5,5,5,5" Grid.ColumnSpan="2" Grid.RowSpan="1">
<ContentPresenter Margin="0,0,0,0" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Content="{TemplateBinding Content}" ContentStringFormat="{TemplateBinding ContentStringFormat}" ContentTemplate="{TemplateBinding ContentTemplate}" />
</Border>
<Path x:Name="isDirtyShape" Grid.Column="0" Grid.Row="1" VerticalAlignment="Center" HorizontalAlignment="Right" StrokeThickness="0" Data="M8.0969173,7.7938912 L7.3260856,1.6313261E-55 10.960733,0.056791361 9.8816968,7.8372078 17.130865,4.505709 18.209901,7.969982 10.336028,9.4841573 16.015164,15.065028 13.005222,17.336183 9.0298264,10.44961 4.7503484,17.141891 1.9107803,14.614571 7.6195467,9.5947088 4.3790577E-47,7.8281079 1.0589099,4.5910004 z" Margin="0,0,41.007,3" Width="18.21" Height="17.336" RenderTransformOrigin="0.5,0.5">
<Path.Fill>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FFFB6F0E" Offset="0" />
<GradientStop Color="#FF8C400A" Offset="1" />
</LinearGradientBrush>
</Path.Fill>
<Path.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="0" ScaleY="0" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="0" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</Path.RenderTransform>
</Path>
<StackPanel Orientation="Horizontal" Margin="3,3,3,3" Grid.Column="0" Grid.Row="0" Grid.RowSpan="2" VerticalAlignment="Center" HorizontalAlignment="Right" >
<Button Margin="3,3,3,3" x:Name="button_Minimize"
Width="25" Height="25" VerticalAlignment="Center" HorizontalAlignment="Right"
Style="{DynamicResource MinimizeFullyButtonStyle }" Click="TogglebuttonChat_Minimize_Checked" />
<ToggleButton Margin="3,3,3,3" x:Name="button_Maximize"
Width="25" Height="25" VerticalAlignment="Center" HorizontalAlignment="Right"
Style="{DynamicResource MaximizeButtonStyle}" Checked="TogglebuttonChat_maximise_Checked" Unchecked="TogglebuttonChat_maximise_Unchecked" />
<Button Margin="3,3,3,3" x:Name="button_close"
Width="25" Height="25" VerticalAlignment="Center" HorizontalAlignment="Right"
Style="{DynamicResource CloseButtonStyle}" Command="ApplicationCommands.Close" />
</StackPanel>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="Foreground" Value="{DynamicResource MainGroupBoxForegroundBrush}" />
<Setter Property="FontWeight" Value="Normal" />
<Setter Property="FontFamily" Value="Microsoft Sans Serif" />
<Setter Property="FontSize" Value="11" />
</Style>
<Style x:Key="PopUpWindowStyle" TargetType="{x:Type GroupBox}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupBox}">
<Grid SnapsToDevicePixels="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="10" />
<RowDefinition Height="20" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Border Background="#FF202020" Grid.RowSpan="2" CornerRadius="3,1,0,3" />
<Border Background="#FF202020" Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="1" Grid.RowSpan="2" CornerRadius="0,1,0,3" />
<Path StrokeThickness="0" Fill="#FF202020" Data="M 0,0 L 10,10 H 0 Z" Grid.Column="1" />
<Border Margin="0,0,0,0" x:Name="Header" Grid.Column="0" Grid.Row="0" Background="{x:Null}" Padding="10,0,3,0" Grid.ColumnSpan="2" Grid.RowSpan="2" VerticalAlignment="Bottom">
<ContentPresenter TextElement.FontSize="16" Margin="5,0,0,3" RenderTransformOrigin="0,0.5" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Content="{TemplateBinding Header}" ContentSource="Header" ContentStringFormat="{TemplateBinding HeaderStringFormat}" ContentTemplate="{TemplateBinding HeaderTemplate}" RecognizesAccessKey="True" VerticalAlignment="Stretch">
<ContentPresenter.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="0" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</ContentPresenter.RenderTransform>
</ContentPresenter>
</Border>
<Border Grid.Column="0" Grid.Row="2" Padding="5,5,5,5" Grid.ColumnSpan="2" Grid.RowSpan="1">
<ContentPresenter Margin="0,0,0,0" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Content="{TemplateBinding Content}" ContentStringFormat="{TemplateBinding ContentStringFormat}" ContentTemplate="{TemplateBinding ContentTemplate}" />
</Border>
<Path x:Name="isDirtyShape" Grid.Column="0" Grid.Row="0" Grid.RowSpan="2" VerticalAlignment="Center" HorizontalAlignment="Right" StrokeThickness="0" Data="M8.0969173,7.7938912 L7.3260856,1.6313261E-55 10.960733,0.056791361 9.8816968,7.8372078 17.130865,4.505709 18.209901,7.969982 10.336028,9.4841573 16.015164,15.065028 13.005222,17.336183 9.0298264,10.44961 4.7503484,17.141891 1.9107803,14.614571 7.6195467,9.5947088 4.3790577E-47,7.8281079 1.0589099,4.5910004 z" Margin="0,0,41.007,3" Width="18.21" Height="17.336" RenderTransformOrigin="0.5,0.5">
<Path.Fill>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FFFB6F0E" Offset="0" />
<GradientStop Color="#FF8C400A" Offset="1" />
</LinearGradientBrush>
</Path.Fill>
<Path.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="0" ScaleY="0" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="0" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</Path.RenderTransform>
</Path>
<Button Margin="3,3,3,3" x:Name="button_close" Grid.Column="0" Grid.Row="0" Width="20" Height="20" VerticalAlignment="Center" HorizontalAlignment="Right" Style="{DynamicResource CloseButtonStyle}" Command="ApplicationCommands.Close" Grid.ColumnSpan="1" Grid.RowSpan="2" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="Foreground" Value="{DynamicResource MainGroupBoxForegroundBrush}" />
<Setter Property="FontWeight" Value="Normal" />
<Setter Property="FontFamily" Value="Microsoft Sans Serif" />
<Setter Property="FontSize" Value="11" />
</Style>
<HierarchicalDataTemplate DataType="{x:Type shared:SupportConceptTreeNodeDC}" ItemsSource="{Binding Path=ChildNodes}">
<Grid Margin="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Image Margin="0 0 3 0" Width="16" Height="16" Source="{Binding Path=NodeType, Converter={StaticResource NodeType2IconPathConverter}}" />
<TextBlock Grid.Column="1" Text="{Binding Path=DetailDescription}" FontSize="12" Foreground="Black" FontFamily="Microsoft Sans Serif" />
</Grid>
</HierarchicalDataTemplate>
<Style x:Key="ObjectComboBoxStyle" TargetType="{x:Type ComboBox}">
<Setter Property="FocusVisualStyle" Value="{DynamicResource ComboBoxFocusVisual}" />
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}" />
<Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.WindowBrushKey}}" />
<Setter Property="BorderBrush" Value="{DynamicResource TextBoxBorderBrush}" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="Padding" Value="1" />
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto" />
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto" />
<Setter Property="ScrollViewer.CanContentScroll" Value="true" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ComboBox}">
<Border SnapsToDevicePixels="True" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
<Grid>
<Border x:Name="BorderBackground" />
<Border x:Name="Border" Background="{TemplateBinding Background}" BorderThickness="2,2,2,2">
<Popup x:Name="PART_Popup" AllowsTransparency="True" IsOpen="{TemplateBinding IsDropDownOpen}" Placement="Bottom" PopupAnimation="{DynamicResource {x:Static SystemParameters.ComboBoxPopupAnimationKey}}" Focusable="False">
<microsoftWindowsThemes1:SystemDropShadowChrome MaxHeight="{TemplateBinding MaxDropDownHeight}" MinWidth="{Binding Path=ActualWidth, ElementName=Border}" x:Name="Shdw" Color="#00FFFFFF">
<Border x:Name="DropDownBorder" Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}" BorderBrush="{DynamicResource {x:Static SystemColors.WindowFrameBrushKey}}" BorderThickness="1,1,1,1">
<ScrollViewer>
<ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" KeyboardNavigation.DirectionalNavigation="Contained" />
</ScrollViewer>
</Border>
</microsoftWindowsThemes1:SystemDropShadowChrome>
</Popup>
</Border>
<DockPanel>
<FrameworkElement Width="{DynamicResource {x:Static SystemParameters.VerticalScrollBarWidthKey}}" DockPanel.Dock="Right" />
<Border Margin="{TemplateBinding Padding}" x:Name="SelectedItemBorder">
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="1,0,1,1" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Content="{TemplateBinding SelectionBoxItem}" ContentStringFormat="{TemplateBinding SelectionBoxItemStringFormat}" ContentTemplate="{TemplateBinding SelectionBoxItemTemplate}" />
</Border>
</DockPanel>
<ToggleButton Style="{DynamicResource ComboBoxTransparentButtonStyle}" Margin="1,2,1,2" MinHeight="0" MinWidth="0" Width="Auto" Focusable="False" IsChecked="{Binding Path=IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" ClickMode="Press" />
</Grid>
</Border>
<ControlTemplate.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsSelectionBoxHighlighted" Value="True" />
<Condition Property="IsDropDownOpen" Value="False" />
</MultiTrigger.Conditions>
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.HighlightTextBrushKey}}" />
</MultiTrigger>
<Trigger Property="IsSelectionBoxHighlighted" Value="True">
<Setter Property="Background" TargetName="BorderBackground" Value="#80000000" />
</Trigger>
<Trigger Property="HasItems" Value="False">
<Setter Property="MinHeight" TargetName="DropDownBorder" Value="95" />
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}" />
<Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" />
</Trigger>
<Trigger Property="IsGrouping" Value="True">
<Setter Property="ScrollViewer.CanContentScroll" Value="False" />
</Trigger>
<Trigger Property="HasDropShadow" SourceName="PART_Popup" Value="True">
<Setter Property="Margin" TargetName="Shdw" Value="0,0,5,5" />
<Setter Property="Color" TargetName="Shdw" Value="#71000000" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="ItemContainerStyle" Value="{DynamicResource ObjectComboBoxItemStyle}" />
</Style>
<Style x:Key="ObjectComboBoxItemStyle" TargetType="{x:Type ComboBoxItem}">
<Setter Property="HorizontalContentAlignment" Value="{Binding Path=HorizontalContentAlignment, RelativeSource={RelativeSource FindAncestor, AncestorLevel=1, AncestorType={x:Type ItemsControl}}}" />
<Setter Property="VerticalContentAlignment" Value="{Binding Path=VerticalContentAlignment, RelativeSource={RelativeSource FindAncestor, AncestorLevel=1, AncestorType={x:Type ItemsControl}}}" />
<Setter Property="Padding" Value="3,0,3,0" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ComboBoxItem}">
<Border x:Name="Bd" SnapsToDevicePixels="True" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Padding="{TemplateBinding Padding}">
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Content="{TemplateBinding Content}" ContentStringFormat="{TemplateBinding ContentStringFormat}" ContentTemplate="{TemplateBinding ContentTemplate}" />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="ButtonFocusVisual">
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<Rectangle Stroke="Black" StrokeDashArray="1 2" StrokeThickness="1" Margin="2" SnapsToDevicePixels="true" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="WarningButton" TargetType="{x:Type Button}">
<Setter Property="FocusVisualStyle" Value="{DynamicResource ButtonFocusVisual}" />
<Setter Property="Background" Value="{DynamicResource ButtonNormalBackground}" />
<Setter Property="BorderBrush" Value="{DynamicResource ButtonNormalBorder}" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" />
<Setter Property="HorizontalContentAlignment" Value="Center" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="Padding" Value="1" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Image Width="16" Height="16" Source="Ressources\Icons\warning-16x16.png" />
<ControlTemplate.Triggers>
<Trigger Property="IsKeyboardFocused" Value="true" />
<Trigger Property="ToggleButton.IsChecked" Value="true" />
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Foreground" Value="#ADADAD" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<DataTemplate x:Key="CustomerComboBoxItemTemplate" DataType="{x:Type shared:SupportConceptTreeNodeDC}">
<Grid Margin="0,1,0,1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Border x:Name="ItemBorder" CornerRadius="5" MinHeight="30" Background="#FF000000" Grid.RowSpan="3" Grid.ColumnSpan="2" Margin="0,0,0,0">
<Border.OpacityMask>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#19000000" Offset="0" />
<GradientStop Color="#26000000" Offset="1" />
</LinearGradientBrush>
</Border.OpacityMask>
</Border>
<StackPanel Orientation="Horizontal">
<Image Visibility="{Binding Path=SupportConceptName, Converter={StaticResource ObjectVisibilityConverter} }" Source="Ressources\Icons\UserHomeMaleDisabled.png" Height="20" VerticalAlignment="Center" HorizontalAlignment="Left" Width="Auto" />
<TextBlock FontSize="14" Foreground="#FFD2D2D2" x:Name="customerText" Tag="{Binding}" Margin="3 2" Text="{Binding Path=CustomerName}" VerticalAlignment="Center" TextWrapping="Wrap" />
</StackPanel>
<TextBlock FontSize="12" x:Name="supportConceptText" Grid.Column="0" Grid.Row="1" Margin="3 2" Text="{Binding Path=SupportConceptName}" VerticalAlignment="Center" Foreground="{Binding Path=NodeForegroundBrush}" />
<TextBlock FontSize="12" Foreground="#FFA0A0A0" x:Name="costBearerText" Grid.Column="0" Grid.Row="2" Margin="3 2" Text="{Binding Path=CostBearerName}" VerticalAlignment="Center" />
<Button Content="I" Width="15" Height="15" Grid.Column="1" Style="{DynamicResource WarningButton}" Visibility="{Binding Path=IsCustomerWarningActive, Converter={StaticResource BoolVisibilityConverter}}">
<Button.ToolTip>
<TextBlock Text="{Binding Path=CustomerWarning}" />
</Button.ToolTip>
</Button>
</Grid>
<DataTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="OpacityMask" TargetName="ItemBorder">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#33000000" Offset="0" />
<GradientStop Color="#66000000" Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
</DataTemplate.Triggers>
</DataTemplate>
<ItemsPanelTemplate x:Key="CustomerComboBoxItemsPanelTemplate">
<StackPanel IsItemsHost="True" Background="{DynamicResource SupportConceptListBrush}" />
</ItemsPanelTemplate>
<DataTemplate x:Key="SupportConceptComboBoxItemTemplate" DataType="{x:Type sharedCompact:CompactSupportConceptDC}">
<Grid Margin="0,1,0,1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Border x:Name="ItemBorder" CornerRadius="5" MinHeight="30" Background="#FF000000" Grid.RowSpan="3" Grid.ColumnSpan="2" Margin="0,0,0,0">
<Border.OpacityMask>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#19000000" Offset="0" />
<GradientStop Color="#26000000" Offset="1" />
</LinearGradientBrush>
</Border.OpacityMask>
</Border>
<StackPanel Orientation="Horizontal">
<Image Visibility="{Binding Path=SupportConceptName, Converter={StaticResource ObjectVisibilityConverter} }" Source="Ressources\Icons\UserHomeMaleDisabled.png" Height="20" VerticalAlignment="Center" HorizontalAlignment="Left" Width="Auto" />
<TextBlock FontSize="14" Foreground="#FFD2D2D2" x:Name="customerText" Tag="{Binding}" Margin="3 2" Text="{Binding Path=CustomerName}" VerticalAlignment="Center" TextWrapping="Wrap" />
</StackPanel>
<TextBlock FontSize="12" x:Name="supportConceptText" Grid.Column="0" Grid.Row="1" Margin="3 2" Text="{Binding Path=SimpleDescription}" VerticalAlignment="Center" Foreground="{Binding Path=NodeForegroundBrush}" />
<TextBlock FontSize="12" Foreground="#FFA0A0A0" x:Name="costBearerText" Grid.Column="0" Grid.Row="2" Margin="3 2" Text="{Binding Path=AllCostBearerNames}" VerticalAlignment="Center" />
</Grid>
<DataTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="OpacityMask" TargetName="ItemBorder">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#33000000" Offset="0" />
<GradientStop Color="#66000000" Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
</DataTemplate.Triggers>
</DataTemplate>
<ItemsPanelTemplate x:Key="OrganisationComboBoxItemsPanelTemplate">
<StackPanel IsItemsHost="True" Background="{DynamicResource OrganisationContentBrush}" />
</ItemsPanelTemplate>
<DataTemplate x:Key="OrganisationComboBoxItemTemplate" DataType="{x:Type sharedCompact:CompactOrganisationDC}">
<Grid>
<Border x:Name="ItemBorder" CornerRadius="5" Margin="2" MinHeight="30" Background="#FF000000">
<Border.OpacityMask>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#19000000" Offset="0" />
<GradientStop Color="#26000000" Offset="1" />
</LinearGradientBrush>
</Border.OpacityMask>
</Border>
<Border x:Name="ItemContent" CornerRadius="5" MinHeight="30">
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="5,3,5,3" OpacityMask="{x:Null}" SnapsToDevicePixels="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Image Grid.RowSpan="2" Source="{Binding Path=IconPath}" Margin="0,0,5,0" Height="30" VerticalAlignment="Center" HorizontalAlignment="Stretch" Width="Auto" RenderTransformOrigin="0.5,0.5" Grid.Row="0" />
<TextBlock x:Name="txtDetail1" Grid.Column="1" Text="{Binding Path=DetailDescription}" FontSize="14" Foreground="#FFFFFFFF" FontFamily="Microsoft Sans Serif" />
<TextBlock x:Name="txtDetail2" Grid.Column="1" Grid.Row="1" Text="{Binding Path=AddressString}" FontSize="12" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" />
</Grid>
</Border>
</Grid>
</DataTemplate>
<ControlTemplate x:Key="dx_textedit_border" TargetType="{x:Type ContentControl}">
<Border Background="White" BorderBrush="#6f7074" BorderThickness="1">
<ContentPresenter />
</Border>
</ControlTemplate>
</ResourceDictionary>

102
BeWo/MainDictionary.xaml.cs Normal file
View File

@@ -0,0 +1,102 @@
using BeWo.View.Navigation;
using BS.Shared.DataContracts.Compact;
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.Documents;
using System.Windows.Input;
namespace BeWo
{
partial class MainDictionary
{
public MainDictionary()
{
InitializeComponent();
}
private void Hyperlink_Hilfeplan_Reaktivieren_Click(object sender, RoutedEventArgs e)
{
var scNavView = (SupportConceptNavigationView)MainSession.MainPage.ActiveView;
if (scNavView != null)
{
var supportConcept = (CompactSupportConceptDC)((Hyperlink)sender).Tag;
scNavView.MainNavigationView_OnReactivateObject(supportConcept);
}
}
private void BtnOpenServiceRecordView_Click(object sender, RoutedEventArgs e)
{
var btn = sender as Button;
if (btn == null) return;
var dc = btn.Tag as CompactSupportConceptDC;
if (dc == null) return;
if (MainSession.MainPage != null)
MainSession.MainPage.NavigateToServiceRecordView(dc.SupportConceptOid);
}
private void Togglebutton_maximise_Checked(object sender, RoutedEventArgs e)
{
if (MainSession.MainPage != null)
MainSession.MainPage.Maximize();
}
private void Togglebutton_maximise_Unchecked(object sender, RoutedEventArgs e)
{
if (MainSession.MainPage != null)
MainSession.MainPage.Minimize();
}
private void TogglebuttonChat_maximise_Unchecked(object sender, RoutedEventArgs e)
{
if (MainSession.MainPage.HomeView.ServiceChatView != null)
MainSession.MainPage.HomeView.ServiceChatView.Normal();
}
private void TogglebuttonChat_maximise_Checked(object sender, RoutedEventArgs e)
{
if (MainSession.MainPage.HomeView.ServiceChatView != null)
MainSession.MainPage.HomeView.ServiceChatView.Maximize();
}
private void TogglebuttonChat_Minimize_Checked(object sender, RoutedEventArgs e)
{
if (MainSession.MainPage.HomeView.ServiceChatView != null)
MainSession.MainPage.HomeView.ServiceChatView.Minimize();
}
private void FrameLeftMouseDown(object sender, MouseButtonEventArgs e)
{
var border = (Border)sender;
var borderParent = (Grid)border.Parent;
DependencyObject template = borderParent.TemplatedParent;
var parent = new Window();
var x = (FrameworkElement)template;
if (x != null)
{
var y = new FrameworkElement();
while (y != null)
{
y = (FrameworkElement)x.Parent;
if (y != null)
x = y;
}
if (x is Window)
{
parent = (Window)x;
parent.DragMove();
}
}
}
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

894
BeWo/MainSession.cs Normal file
View File

@@ -0,0 +1,894 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Media;
using System.Windows.Threading;
using BeWo.Core;
using BeWo.Core.Config;
using BeWo.ServiceProxy;
using BeWo.View;
using BeWo.View.Navigation;
using BeWo.View.Navigation.Filter;
using BS.Shared;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using BS.Shared.Extensions;
using BS.Shared.Core;
using ChatController.HauptKlassen;
using DevExpress.Xpf.Core;
using DevExpress.Xpf.Grid;
using BS.SharedLauncher;
using BS.SharedLauncher.Information;
namespace BeWo
{
public static class MainSession
{
public static string ShortVersion = "3";
public static string Version = "Version 3.0 TEST";
public static int RenderTier = 0;
private static AppSettings _AppSettings;
private static CompactEmployeeDC _CompactLoggedOnEmployee;
private static EmployeeDC _LoggedOnEmployee;
private static UserDC _LoggedOnUser;
private static MandatorDC _Mandator;
private static List<Window> _OpenDevExpressEditForms = new List<Window>();
private static DocumentWatcher _DocumentWatcher;
private static FrameworkElement _lockedContent;
private static int _LockUITime = 30;
static MainSession()
{
MainSessionSingleton.Instance.LoggedOnUsersRights = LoggedOnUsersRights;
}
public static Dictionary<string, string> ICD10Diagnosis { get; set; }
public static EmployeeDC LoggedOnEmployee
{
get { return _LoggedOnEmployee; }
set { _LoggedOnEmployee = value; }
}
public static long? LoggedOnEmployeeOid => _LoggedOnEmployee?.EmployeeOid;
public static CompactEmployeeDC CompactLoggedOnEmployee
{
get => _CompactLoggedOnEmployee;
set => _CompactLoggedOnEmployee = value;
}
public static ObservableCollection<UserRightType> LoggedOnUsersRights
{
get
{
if (LoggedOnUser != null)
return LoggedOnUser.GetGrantedRights().ToObservableCollection();
return null;
}
}
public static DocumentWatcher DocumentWatcher
{
get
{
if (_DocumentWatcher == null)
{
_DocumentWatcher = new DocumentWatcher();
}
return _DocumentWatcher;
}
}
public static AppSettings AppSettings
{
get
{
if (_AppSettings == null)
{
RestoreAppSettings();
}
return _AppSettings;
}
}
public static UserDC LoggedOnUser
{
get => _LoggedOnUser;
set
{
_LoggedOnUser = value;
if (_LoggedOnUser != null)
{
var settings = _LoggedOnUser.Settings;
//Session.BeginInvokeNormal(() =>
ServiceFacade.DoEmployeeServiceAsync(s => s.LoadEmployee(value.Employee.EmployeeOid),
r =>
{
_LoggedOnEmployee = r;
ServiceFacade.DoEmployeeServiceAsync(s => s.LoadCompactEmployee(value.Employee.EmployeeOid), r2 => { _CompactLoggedOnEmployee = r2; });
Session.BeginInvokeNormal(() => MainPage.InitOffeneTermine());
});
}
Session.FirePropertyChanged("LoggedOnUsersRights");
}
}
public static MandatorDC Mandator
{
get => _Mandator;
set
{
_Mandator = value;
bool showDatevFields = false;
bool isServiceRecordNoticeMandatory = true;
bool isPasswordSecurityActiv = false;
bool showServiceRecordsDistanceFields = false;
bool showHilfeplanBezeichnung = false;
bool showArbeitszeiten = false;
bool showCustomerDistanceFields = false;
bool showAdditionalService = false;
bool showRoundedDurationInEmployeeAnalysis = true;
bool showTeamNews = false;
bool showMarker = false;
bool showAnnualReport = false;
int maxDaysEditServiceRecordsAllowed = 0;
int hilfeplanAuslaufAuswahl = 3;
int anzTageZeiterfassErfolgt = 0;
int zeiterfassungsSchwellwert = 80;
bool printerSettingsUseLandscape = false;
bool printerSettingsUseMargins = false;
bool printerSettingsUsePaperKind = false;
var hideServiceRecordInsertedByAndInsertedOn = false;
bool isEndDateVisible = false;
bool isOnlyYearMonthVisible = false;
bool isZeiterfassDateNormal = true;
bool isZeiterfassungInStdMin = false;
int lastSelectedStundenkontoIntervall = 3;
bool showSignatures = false;
bool showRtfTextfield = false;
bool showPivotGrid = false;
bool showUrlaubsplanung = false;
bool dontShowSpitzabrechnung = false;
bool showDienstplanung = false;
AppSettings.ShowAdvisedAttendedFlag = false;
String timeRecordingMenuName = "";
if (_Mandator != null)
{
string val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "ShowMedication");
AppSettings.IsMedicationAllowed = val != null && val.Equals("1");
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "ShowScheduler");
AppSettings.IsSchedulerAllowed = val != null && val.Equals("1");
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "ShowWohnheime");
AppSettings.IsWohnheimAllowed = val != null && val.Equals("1");
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "ShowChat");
AppSettings.IsChatAllowed = val != null && val.Equals("1");
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "IsServiceRecordNoticeMandatory");
if (val != null && val.Equals("0"))
{
isServiceRecordNoticeMandatory = false;
}
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "IsPasswordSecurityActiv");
if (val != null && val.Equals("1"))
{
isPasswordSecurityActiv = true;
}
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "IsEndDateVisible");
if (val != null && val.Equals("1"))
{
isEndDateVisible = true;
}
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "IsOnlyYearMonthVisible");
if (val != null && val.Equals("1"))
{
isOnlyYearMonthVisible = true;
}
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "IsZeiterfassungInStdMin");
if (val != null && val.Equals("1"))
{
isZeiterfassungInStdMin = true;
}
if (!isZeiterfassungInStdMin)
{
AppSettings.LetzteZeiterfassungsDauer = ZeiterfassungsDauer.Minuten;
}
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "IsZeiterfassDateNormal");
if (val != null && val.Equals("0"))
{
isZeiterfassDateNormal = false;
}
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "MaxDaysEditServiceRecordsAllowed");
int result;
if (Int32.TryParse(val, out result))
{
maxDaysEditServiceRecordsAllowed = result;
}
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "HilfeplanAuslaufAuswahl");
int resultplan;
if (Int32.TryParse(val, out resultplan))
{
hilfeplanAuslaufAuswahl = resultplan;
}
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "LastSelectedStundenkontoIntervall");
int resultinterval;
if (Int32.TryParse(val, out resultinterval))
{
lastSelectedStundenkontoIntervall = resultinterval;
}
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "AnzTageZeiterfassErfolgt");
int resultzeitplan;
if (Int32.TryParse(val, out resultzeitplan))
{
anzTageZeiterfassErfolgt = resultzeitplan;
}
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "ZeiterfassungsSchwellwert");
int resultschwell;
if (Int32.TryParse(val, out resultschwell))
{
zeiterfassungsSchwellwert = resultschwell;
}
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "ShowDistanceFields");
if (val != null && val.Equals("1"))
{
showServiceRecordsDistanceFields = true;
}
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "ShowHilfeplanBezeichnung");
if (val != null && val.Equals("1"))
{
showHilfeplanBezeichnung = true;
}
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "ShowArbeitszeiten");
if (val != null && val.Equals("1"))
{
showArbeitszeiten = true;
}
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "ShowRessources");
AppSettings.ShowRessources = val != null && val.Equals("1");
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "ShowTeamNews");
if (val != null && val.Equals("1"))
{
showTeamNews = true;
}
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "ShowPivotGrid");
if (val != null && val.Equals("1"))
{
showPivotGrid = true;
}
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "ShowUrlaubsplanung");
if (val != null && val.Equals("1"))
{
showUrlaubsplanung = true;
}
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "dontShowSpitzabrechnung");
if (val != null && val.Equals("1"))
{
dontShowSpitzabrechnung = true;
}
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "ShowDienstplanung");
if (val != null && val.Equals("1"))
{
showDienstplanung = true;
}
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "ShowMarker");
if (val != null && val.Equals("1"))
{
showMarker = true;
}
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "ShowAnnualReport");
if (val != null && val.Equals("1"))
{
showAnnualReport = true;
}
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "ShowCustomerDistanceFields");
if (val != null && val.Equals("1"))
{
showCustomerDistanceFields = true;
}
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "ShowAdditionalService");
if (val != null && val.Equals("1"))
{
showAdditionalService = true;
}
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "ShowRoundedDurationInEmployeeAnalysis");
if (val != null && val.Equals("0"))
{
showRoundedDurationInEmployeeAnalysis = false;
}
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "ShowDatevFields");
if (val != null && val.Equals("1"))
{
showDatevFields = true;
}
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "PrinterSettingsUseLandscape");
if (val != null && val.Equals("1"))
{
printerSettingsUseLandscape = true;
}
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "PrinterSettingsUseMargins");
if (val != null && val.Equals("1"))
{
printerSettingsUseMargins = true;
}
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "PrinterSettingsUsePaperKind");
if (val != null && val.Equals("1"))
{
printerSettingsUsePaperKind = true;
}
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "HideServiceRecordInsertedByAndInsertedOn");
if (val != null && val.Equals("1"))
{
hideServiceRecordInsertedByAndInsertedOn = true;
}
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "ShowSignature");
if (val != null && val.Equals("1"))
{
showSignatures = true;
}
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, "ShowRtfTextfield");
if (val != null && val.Equals("1"))
{
showRtfTextfield = true;
}
switch (_Mandator.BeWoClientType)
{
case 1:
//Die Kette
showDatevFields = true;
AppSettings.ShowAdvisedAttendedFlag = true;
break;
case 2:
//Datev
showDatevFields = true;
break;
case 3:
////Köln Ring
showDatevFields = true;
timeRecordingMenuName = "Dokumentation";
break;
case 4:
//Betreuwo
break;
case 5:
//Kontakt und Krisenhilfe
AppSettings.ShowLargeCustomerNotice = true;
break;
case 6:
// Nur Jahresbericht
break;
case 7:
//IBP
showDatevFields = true;
break;
case 8:
//LH Würzburg
break;
case 9:
//Caritas Frankfurt+Aids Hilfe Gießen + Alle mit Korridor (Kostenträger Hessen)
break;
case 10:
//Integra
showDatevFields = true;
break;
case 11:
//Hannover
showDatevFields = true;
break;
}
}
AppSettings.ShowDatevFields = showDatevFields;
AppSettings.IsServiceRecordNoticeMandatory = isServiceRecordNoticeMandatory;
AppSettings.IsPasswordSecurityActiv = isPasswordSecurityActiv;
AppSettings.IsEndDateVisible = isEndDateVisible;
AppSettings.IsOnlyYearMonthVisible = isOnlyYearMonthVisible;
AppSettings.IsZeiterfassDateNormal = isZeiterfassDateNormal;
AppSettings.IsZeiterfassungInStdMin = isZeiterfassungInStdMin;
AppSettings.MaxDaysEditServiceRecordsAllowed = maxDaysEditServiceRecordsAllowed;
AppSettings.HilfeplanAuslaufAuswahl = hilfeplanAuslaufAuswahl;
AppSettings.LastSelectedStundenkontoIntervall = lastSelectedStundenkontoIntervall;
AppSettings.AnzTageZeiterfassErfolgt = anzTageZeiterfassErfolgt;
AppSettings.ZeiterfassungsSchwellwert = zeiterfassungsSchwellwert;
AppSettings.TimeRecordingMenuName = timeRecordingMenuName;
AppSettings.ShowDistanceFields = showServiceRecordsDistanceFields;
AppSettings.ShowHilfeplanBezeichnung = showHilfeplanBezeichnung;
AppSettings.ShowArbeitszeiten = showArbeitszeiten;
AppSettings.ShowSignatures = showSignatures;
AppSettings.ShowRtfTextfield = showRtfTextfield;
AppSettings.ShowCustomerDistanceFields = showCustomerDistanceFields;
AppSettings.ShowAdditionalService = showAdditionalService;
AppSettings.ShowRoundedDurationInEmployeeAnalysis = showRoundedDurationInEmployeeAnalysis;
AppSettings.HideServiceRecordInsertedByAndInsertedOn = hideServiceRecordInsertedByAndInsertedOn;
AppSettings.ShowTeamNews = showTeamNews;
AppSettings.ShowMarker = showMarker;
AppSettings.ShowAnnualReport = showAnnualReport;
AppSettings.PrinterSettingsUseLandscape = printerSettingsUseLandscape;
AppSettings.PrinterSettingsUseMargins = printerSettingsUseMargins;
AppSettings.PrinterSettingsUsePaperKind = printerSettingsUsePaperKind;
AppSettings.ShowPivotGrid = showPivotGrid;
AppSettings.ShowUrlaubsplanung = showUrlaubsplanung;
AppSettings.DontShowSpitzabrechnung = dontShowSpitzabrechnung;
AppSettings.ShowDienstplanung = showDienstplanung;
BS.Shared.Settings.ApplicationSettings.SupportConceptExpirationLimitInMonths = AppSettings.HilfeplanAuslaufAuswahl;
}
}
public static int LockUITime
{
get
{
var lockTime = _Mandator.Settings.SplitToKeyValuePairList(";", "=").FirstOrDefault(f => f.Key.Equals("TimeUntilUILock")).Value;
if (_LoggedOnUser != null && lockTime != null)
{
return Convert.ToInt32(lockTime);
}
return _LockUITime;
}
set
{
_LockUITime = value;
if (_LoggedOnUser == null)
{
return;
}
AutoLockUI.LockUITime = value;
AutoLockUI.StopTimer();
AutoLockUI.StartAutoLockUIOption();
}
}
public static MainPage MainPage { get; set; }
public static string GetAndCreateUserAppDataPath()
{
try
{
string localAppData = Environment.GetFolderPath(
Environment.SpecialFolder.LocalApplicationData);
string companyFilePath
= Path.Combine(localAppData, "beyondSoft");
if (!Directory.Exists(companyFilePath))
Directory.CreateDirectory(companyFilePath);
string bewoFilePath
= Path.Combine(companyFilePath, "BeWoPlaner");
if (!Directory.Exists(bewoFilePath))
Directory.CreateDirectory(bewoFilePath);
return bewoFilePath;
}
catch (Exception ex)
{
MessageBox.Show(
"Fehler beim Anlegen des Anwendungsordners. Sie besitzen nicht die erforderlichen Rechte, bitte wenden Sie sich an Ihren Systemadministrator.\n" +
ex.Message, "BeWoPlaner", MessageBoxButton.OK, MessageBoxImage.Exclamation);
}
return Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
}
internal static bool HasLoggedOnUserRight(UserRightType[] pRight)
{
if (LoggedOnUser != null)
{
return pRight == null || (pRight.Length == 1 && pRight[0] == UserRightType.None) || LoggedOnUser.GetGrantedRights().Exists(
right =>
{
var rightAsString = pRight.ToString();
var vals = rightAsString.Split(",");
foreach (var urt in pRight)
{
if (urt == right)
{
return true;
}
}
return false;
});
}
return false;
}
internal static void SaveAppSettings()
{
if (_AppSettings != null && _LoggedOnUser != null && _AppSettings.IsDirty)
{
_AppSettings.IsDirty = false;
UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, "WindowStateType", ((int)_AppSettings.WindowState).ToString(), _LoggedOnUser.Settings);
UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, "LastSelectedServiceRecordTimeInterval", ((int)_AppSettings.LastSelectedServiceRecordTimeInterval).ToString(), _LoggedOnUser.Settings);
UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, "CustomerFilterInZeiterfassung", ((int)_AppSettings.CustomerFilterInZeiterfassung).ToString(), _LoggedOnUser.Settings);
UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, "CustomerFilterSupportConcepts", ((int)_AppSettings.CustomerFilterSupportConcepts).ToString(), _LoggedOnUser.Settings);
UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, "CustomerFilterCustomers", ((int)_AppSettings.CustomerFilterCustomers).ToString(), _LoggedOnUser.Settings);
UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, "ShowExpiredSupportConcepts", _AppSettings.ShowExpiredSupportConcepts ? "1" : "0", _LoggedOnUser.Settings);
UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, "ShowServiceRecordGridControl", _AppSettings.ShowServiceRecordGridControl ? "1" : "0", _LoggedOnUser.Settings);
UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, "StartupPanelMaximized", _AppSettings.StartupPanelMaximized, _LoggedOnUser.Settings);
UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, "HideServiceRecordInsertedByAndInsertedOn", _AppSettings.HideServiceRecordInsertedByAndInsertedOn ? "1" : "0", _LoggedOnUser.Settings);
UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, "DocumentationFontSize", _AppSettings.DocumentationFontSize.ToString(), _LoggedOnUser.Settings);
UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, "ZeigeNurMeineTermine", _AppSettings.ZeigeNurMeineTermine ? "1" : "0", _LoggedOnUser.Settings);
UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, "LastSelectedServiceRecordTimeIntervalDays", _AppSettings.LastSelectedServiceRecordTimeIntervalDays.ToString(), _LoggedOnUser.Settings);
UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, "LetzteZeiterfassungsDauer", ((int)_AppSettings.LetzteZeiterfassungsDauer).ToString(), _LoggedOnUser.Settings);
string val = string.Empty;
if (_AppSettings.StartupPanelOrder != null)
{
foreach (string item in _AppSettings.StartupPanelOrder)
{
if (val.Length > 0)
{
val += "|";
}
val += item;
}
}
UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, "StartupPanelOrder", val, _LoggedOnUser.Settings);
ServiceFacade.DoUserServiceAsync(s => s.UpdateUserSettings(_LoggedOnUser.UserOid.Value, _LoggedOnUser.Settings), ReloadSettings, false);
}
}
public static void FirePropertyChanged(string pPropertyName)
{
Session.FirePropertyChanged(pPropertyName);
}
public static void InitAutoUILocking()
{
EventManager.RegisterClassHandler(typeof(Window), UIElement.PreviewMouseDownEvent, new MouseButtonEventHandler(OnPreviewMouseDown));
EventManager.RegisterClassHandler(typeof(Window), UIElement.PreviewKeyDownEvent, new KeyEventHandler(OnPreviewKeyDown));
var settingsKeyValuePairList = _Mandator.Settings.SplitToKeyValuePairList(";", "=").ToList();
var x = settingsKeyValuePairList.FirstOrDefault(f => f.Key.Equals("TimeUntilUILock")).Value ?? "NULL";
var y = _LockUITime;
AutoLockUI.LockUITime = Convert.ToInt32(settingsKeyValuePairList.FirstOrDefault(f => f.Key.Equals("TimeUntilUILock")).Value ?? LockUITime.ToString());
AutoLockUI.DoAutoLockUIEvent += AutoLockUIDoAutoLockUIEvent;
AutoLockUI.StartAutoLockUIOption();
}
private static void ReloadSettings(List<SettingsDC> settings)
{
if (_LoggedOnUser != null)
_LoggedOnUser.Settings = settings;
}
private static void RestoreAppSettings()
{
if (_LoggedOnUser != null)
{
_AppSettings = new AppSettings();
var settings = _LoggedOnUser.Settings;
var val = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, "WindowStateType", settings);
if (int.TryParse(val, out var result))
{
_AppSettings.WindowState = (AppSettings.WindowStateType)result;
}
val = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, "LastSelectedServiceRecordTimeInterval", settings);
if (int.TryParse(val, out result))
{
_AppSettings.LastSelectedServiceRecordTimeInterval = (ServiceRecordTimeInterval)result;
}
val = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, "CustomerFilterInZeiterfassung", settings);
if (int.TryParse(val, out result))
{
_AppSettings.CustomerFilterInZeiterfassung = (CustomerFilterEnum)result;
}
val = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, "CustomerFilterSupportConcepts", settings);
if (int.TryParse(val, out result))
{
_AppSettings.CustomerFilterSupportConcepts = (CustomerFilterEnum)result;
}
val = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, "CustomerFilterCustomers", settings);
if (int.TryParse(val, out result))
{
_AppSettings.CustomerFilterCustomers = (CustomerFilterEnum)result;
}
val = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, "ShowServiceRecordGridControl", settings);
_AppSettings.ShowServiceRecordGridControl = val == "1";
val = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, "ShowExpiredSupportConcepts", settings);
_AppSettings.ShowExpiredSupportConcepts = val != "0";
_AppSettings.StartupPanelMaximized = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, "StartupPanelMaximized", settings);
_AppSettings.DocumentationFontSize = Convert.ToDouble(UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, "DocumentationFontSize", settings));
//val = GetSettingValue(SettingsType.ApplicationSettings, "ZeigeNurMeineTermine");
//_AppSettings.ZeigeNurMeineTermine = val != "0";
_AppSettings.ZeigeNurMeineTermine = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, "ZeigeNurMeineTermine", settings) == "1";
val = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, "LastSelectedServiceRecordTimeIntervalDays", settings);
if (val != null)
{
_AppSettings.LastSelectedServiceRecordTimeIntervalDays = Convert.ToInt32(UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, "LastSelectedServiceRecordTimeIntervalDays", settings));
}
val = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, "LetzteZeiterfassungsDauer", settings);
if (val != null)
{
var x = Convert.ToInt32(UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, "LetzteZeiterfassungsDauer", settings));
_AppSettings.LetzteZeiterfassungsDauer = x == 0 ? ZeiterfassungsDauer.Minuten : ZeiterfassungsDauer.Stunden;
}
val = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, "StartupPanelOrder", settings);
if (val != null)
{
_AppSettings.StartupPanelOrder = new List<string>();
var panels = val.Split('|');
foreach (var item in panels)
{
_AppSettings.StartupPanelOrder.Add(item);
}
}
_AppSettings.IsDirty = false;
}
}
private static void BtnOpenServiceRecordView_Click(object sender, RoutedEventArgs e)
{
var btn = sender as Button;
if (btn == null) return;
var dc = btn.Tag as CompactSupportConceptDC;
if (dc == null) return;
if (MainPage != null)
MainPage.NavigateToServiceRecordView(dc.SupportConceptOid);
}
private static void Togglebutton_maximise_Checked(object sender, RoutedEventArgs e)
{
if (MainPage != null)
MainPage.Maximize();
}
private static void Togglebutton_maximise_Unchecked(object sender, RoutedEventArgs e)
{
if (MainPage != null)
MainPage.Minimize();
}
private static void TogglebuttonChat_maximise_Unchecked(object sender, RoutedEventArgs e)
{
if (MainPage.HomeView.ServiceChatView != null)
MainPage.HomeView.ServiceChatView.Normal();
}
private static void TogglebuttonChat_maximise_Checked(object sender, RoutedEventArgs e)
{
if (MainPage.HomeView.ServiceChatView != null)
MainPage.HomeView.ServiceChatView.Maximize();
}
private static void TogglebuttonChat_Minimize_Checked(object sender, RoutedEventArgs e)
{
if (MainPage.HomeView.ServiceChatView != null)
MainPage.HomeView.ServiceChatView.Minimize();
}
private static void FrameLeftMouseDown(object sender, MouseButtonEventArgs e)
{
var border = (Border)sender;
var borderParent = (Grid)border.Parent;
DependencyObject template = borderParent.TemplatedParent;
var parent = new Window();
var x = (FrameworkElement)template;
if (x != null)
{
var y = new FrameworkElement();
while (y != null)
{
y = (FrameworkElement)x.Parent;
if (y != null)
x = y;
}
if (x is Window)
{
parent = (Window)x;
parent.DragMove();
}
}
}
private static void AutoLockUIDoAutoLockUIEvent()
{
if (ConnectionInformation.Username.Equals("BSAdmin"))
{
AutoLockUI.StartAutoLockUIOption();
return;
}
if (MainPage.Content is LockedPage)
{
AutoLockUI.StartAutoLockUIOption();
return;
}
_lockedContent = MainPage.Content as FrameworkElement;
var openWindowCollection = Application.Current.Windows;
foreach (var blubb in openWindowCollection)
{
var abc = (Window)blubb;
if (!abc.Title.Equals("BeWoPlaner") && blubb.GetType() == typeof(WindowContentHolder))
{
abc.Close();
}
}
MainPage.HideCurrentModalViewWindows();
var lockedPage = new LockedPage();
lockedPage.ButtonLogin.Click += UnlockBeWoPlaner;
Application.Current.MainWindow.Content = lockedPage;
Application.Current.Dispatcher.Invoke(new Action(() => Application.Current.MainWindow?.Activate()));
AutoLockUI.StartAutoLockUIOption();
}
private static void UnlockBeWoPlaner(object sender, RoutedEventArgs e)
{
var lbtn = (Button)sender;
var lbtnParent = (Grid)lbtn.Parent;
var mainWindowUIElements = new UIElement[lbtnParent.Children.Count];
lbtnParent.Children.CopyTo(mainWindowUIElements, 0);
var elementList = mainWindowUIElements.ToList();
var username = ((TextBox)elementList.Where(el => el is TextBox && ((TextBox)el).Name.Equals("TextBoxUsername")).ToList()[0]).Text;
var password = ((PasswordBox)elementList.Where(el => el is PasswordBox && ((PasswordBox)el).Name.Equals("PasswordBoxPassword")).ToList()[0]).Password;
if (string.IsNullOrEmpty(username) || !username.Equals(_LoggedOnUser.LoginName, StringComparison.OrdinalIgnoreCase))
{
MessageBox.Show("Das Programm kann nur vom Benutzer '" + _LoggedOnUser.LoginName + "' entsperrt werden.", "Fehler bei der Anmeldung", MessageBoxButton.OK, MessageBoxImage.Exclamation);
return;
}
username = $"{username}//Version=Sperrung aufgehoben";
ServiceFacade.DoUserServiceAsync(u => u.IsUserValid(username, password, ""), r =>
{
if (!r.Equals(ServiceProxy.UserValidationResult.UserValid))
{
MessageBox.Show("Anmeldeinformationen nicht bekannt. Bitte überprüfen Sie den Benutzernamen und das Passwort!", "Fehler bei der Anmeldung", MessageBoxButton.OK, MessageBoxImage.Exclamation);
return;
}
AutoLockUI.HasJustBeenUnlocked = true;
Application.Current.Dispatcher.Invoke(delegate
{
Application.Current.MainWindow.Content = _lockedContent;
MainPage.ShowCurrentModalViewWindowsAgain();
});
}, true);
}
private static void OnPreviewMouseDown(object sender, MouseButtonEventArgs e)
{
AutoLockUI.ResetLockUITimer();
}
private static void OnPreviewKeyDown(object sender, KeyEventArgs e)
{
AutoLockUI.ResetLockUITimer();
}
private static void Hyperlink_Hilfeplan_Reaktivieren_Click(object sender, RoutedEventArgs e)
{
var scNavView = (SupportConceptNavigationView)MainPage.ActiveView;
if (scNavView != null)
{
var supportConcept = (CompactSupportConceptDC)((Hyperlink)sender).Tag;
scNavView.MainNavigationView_OnReactivateObject(supportConcept);
}
}
public static void GetChatServerUrlAsync(Action<string> callback)
{
if (string.IsNullOrWhiteSpace(ConnectionInformation.ServerName))
{
var tenant = ConnectionInformation.Tenant;
#if DEBUG
tenant = "5473568546";
#endif
var login = new Login(tenant, serverUrl =>
{
if (!string.IsNullOrWhiteSpace(serverUrl))
{
callback(serverUrl);
}
});
}
else
{
callback?.Invoke(ConnectionInformation.ChatServerAddress);
}
}
public static void Cleanup()
{
_lockedContent = null;
_AppSettings = null;
_CompactLoggedOnEmployee = null;
_LoggedOnEmployee = null;
_LoggedOnUser = null;
_Mandator = null;
}
}
}

View File

@@ -0,0 +1,37 @@
using BS.Shared;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeWo
{
public class MainSessionSingleton
{
private static MainSessionSingleton instance = null;
private static readonly object padlock = new object();
public ObservableCollection<UserRightType> LoggedOnUsersRights { get; set; }
MainSessionSingleton()
{
}
public static MainSessionSingleton Instance
{
get
{
lock (padlock)
{
if (instance == null)
{
instance = new MainSessionSingleton();
}
return instance;
}
}
}
}
}

View File

@@ -1,9 +0,0 @@
<Window x:Class="BeWo.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="BeWoPlaner" Height="768" Width="1024" WindowStartupLocation="CenterScreen" WindowState="Maximized"
BorderThickness="1" Closing="MainWindow_OnClosing">
<Grid x:Name="rootGrid">
</Grid>
</Window>

View File

@@ -1,109 +0,0 @@
using System;
using System.ComponentModel;
using System.Windows;
using BeWo.Core.Config;
using BeWo.MultiLanguage;
using BS.Shared.Translation;
using DevExpress.Xpf.Core;
namespace BeWo
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
ApplicationThemeHelper.ApplicationThemeName = "Office2010Black";
ShowLoginControl();
}
private void ShowLoginControl()
{
//WebRequest.DefaultWebProxy
//System.Net.WebRequest.GetSystemWebProxy()
var lc = new LoginControl();
rootGrid.Children.Add(lc);
lc.LoginSuccessful += lc_LoginSuccessful;
}
void lc_LoginSuccessful(object sender, EventArgs e)
{
Translator t = new Translator(new ServiceTranslator());
#if DEBUG
//if (BeWoApp.Tenant == "demo")
//{
// var dlg = new ConfirmDemoDialog();
// dlg.ShowDialog();
//}
#else
if (BeWoApp.Tenant == "demo")
{
var dlg = new ConfirmDemoDialog();
dlg.ShowDialog();
}
#endif
rootGrid.Children.Clear();
MainControl mc = new MainControl();
mc.IsMaximized = BeWoApp.AppSettings.WindowState == AppSettings.WindowStateType.Maximised;
mc.LogoutClicked += new EventHandler(mc_LogoutClicked);
rootGrid.Children.Add(mc);
}
void mc_LogoutClicked(object sender, EventArgs e)
{
rootGrid.Children.Clear();
BeWoApp.MainControl = null;
ShowLoginControl();
}
private void MainWindow_OnClosing(object sender, CancelEventArgs e)
{
if (BeWoApp.MainControl != null)
{
//BeWoApp.SaveAppSettings();
if (!BeWoApp.MainControl.DoSaveCheck())
{
e.Cancel = true;
return;
}
}
if(BeWoApp.MainControl != null && BeWoApp.MainControl.HomeView.ServiceChatView != null) {
if (BeWoApp.MainControl.HomeView.ServiceChatView.ChatMainControl != null &&
BeWoApp.MainControl.HomeView.ServiceChatView.ChatMainControl.GlobalListeningThreadtimer != null)
{
BeWoApp.MainControl.HomeView.ServiceChatView.ChatMainControl.GlobalListeningThreadtimer.Stop();
BeWoApp.MainControl.HomeView.ServiceChatView.ChatMainControl.GlobalListeningThreadtimer = null;
//BeWoApp.MainControl.HomeView.ServiceChatView.ChatMainControl.disableKontaktNachrichtenThread = true;
}
if (BeWoApp.MainControl.HomeView.ServiceChatView.ServiceChat.EmojiView != null) {
BeWoApp.MainControl.HomeView.ServiceChatView.ServiceChat.EmojiView.Close();
BeWoApp.MainControl.HomeView.ServiceChatView.ServiceChat.EmojiView = null;
}
BeWoApp.MainControl.HomeView.ServiceChatView.Close();
BeWoApp.MainControl.HomeView.ServiceChatView = null;
}
BeWoApp.CurrentBeWo.DocumentWatcher.LoescheTempDateien();
Application.Current.Shutdown();
}
}
}

View File

@@ -1,4 +1,5 @@
using System.ServiceModel;
using BS.SharedLauncher.Information;
using System.ServiceModel;
using System.ServiceModel.Channels;
using System.ServiceModel.Dispatcher;
@@ -12,7 +13,7 @@ namespace BeWo.Multitenancy
public object BeforeSendRequest(ref Message request, IClientChannel channel)
{
request.Headers.Add(new MultitenancyHeader { Tenant = BeWoApp.Tenant });
request.Headers.Add(new MultitenancyHeader { Tenant = ConnectionInformation.Tenant});
return null;
}
}

View File

@@ -7,7 +7,7 @@
AllowsTransparency="True"
Background="Transparent" ResizeMode="NoResize" >
<Grid>
<GroupBox Style="{StaticResource MainContentGroupBoxWithoutMaximizeBtnStyle}" Header="Download" MouseLeftButtonDown="UIElement_OnMouseLeftButtonDown">
<GroupBox Style="{DynamicResource MainContentGroupBoxWithoutMaximizeBtnStyle}" Header="Download" MouseLeftButtonDown="UIElement_OnMouseLeftButtonDown">
<Grid Background="{DynamicResource ObjectEditBackgroundBrush}">
<Grid.RowDefinitions>
<RowDefinition Height="*" />

View File

@@ -21,7 +21,7 @@ namespace BeWo
{
InitializeComponent();
InitCommandBindings();
Owner = GetWindow(BeWoApp.MainControl.ActiveView);
Owner = GetWindow(MainSession.MainPage.ActiveView);
Question = fileName;
DataContext = this;
}

View File

@@ -44,7 +44,7 @@ namespace BeWo
var filePath = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\proxy.dat";
if (!File.Exists(filePath))
{
filePath = System.IO.Path.Combine(BeWoApp.GetAndCreateUserAppDataPath(), "proxy.dat");
filePath = System.IO.Path.Combine(MainSession.GetAndCreateUserAppDataPath(), "proxy.dat");
}
var file = new System.IO.StreamReader(filePath);
@@ -83,7 +83,7 @@ namespace BeWo
var filePath = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\proxy.dat";
if (!File.Exists(filePath))
{
filePath = System.IO.Path.Combine(BeWoApp.GetAndCreateUserAppDataPath(), "proxy.dat");
filePath = System.IO.Path.Combine(MainSession.GetAndCreateUserAppDataPath(), "proxy.dat");
}
using (System.IO.StreamWriter file =

View File

@@ -7,7 +7,7 @@
ResizeMode="NoResize">
<Grid>
<GroupBox Header="Passwort anfordern" Style="{DynamicResource MainContentGroupBoxWithoutMaximizeBtnStyle}" MouseLeftButtonDown="RootGroupBox_OnMouseLeftButtonDown">
<Grid Background="{StaticResource ObjectEditBackgroundBrush}">
<Grid Background="{DynamicResource ObjectEditBackgroundBrush}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />

View File

@@ -3,8 +3,8 @@ using System.Windows;
using System.Windows.Input;
using BeWo.ServiceProxy;
using BS.Shared.Extensions;
using BS.SharedLauncher.Information;
namespace BeWo
{
@@ -35,7 +35,7 @@ namespace BeWo
return;
}
ServiceFacade.DoUserServiceAsync(s => s.GetEmailForUserName(out email, benutzername, BeWoApp.SiteOfOrigin), CallBack, true);
ServiceFacade.DoUserServiceAsync(s => s.GetEmailForUserName(out email, benutzername, ConnectionInformation.CoreServerAddressOrigin), CallBack, true);
}
private void CallBack(bool hatEmail)

Binary file not shown.

After

Width:  |  Height:  |  Size: 814 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -3,7 +3,7 @@ using System.Collections.Generic;
namespace BeWo.Scheduler
{
public interface IBeWoAppointment
public interface IMainSessionointment
{
object Id { get; set; }

View File

@@ -23,7 +23,7 @@ namespace BeWo.Scheduler
Dictionary<ValueListEntryDC, List<ResourceDC>> Categories2Resources { get; }
BindingList<IBeWoAppointment> Appointments { get; }
BindingList<IMainSessionointment> Appointments { get; }
Dictionary<Guid, Dictionary<string, Dictionary<string, object>>> ChangedOccurenceCustomFields { get; }

View File

@@ -10,8 +10,8 @@
Height="Auto" Width="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Focusable="True">
<Grid Width="Auto" Height="Auto" x:Name="root">
<GroupBox x:Name="rootGroupBox" Style="{StaticResource PopUpWindowStyle}" Header="Mitarbeiterverfügbarkeit">
<Grid Margin="0,3,0,0" Background="{StaticResource ObjectEditBackgroundBrush}">
<GroupBox x:Name="rootGroupBox" Style="{DynamicResource PopUpWindowStyle}" Header="Mitarbeiterverfügbarkeit">
<Grid Margin="0,3,0,0" Background="{DynamicResource ObjectEditBackgroundBrush}">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />

File diff suppressed because it is too large Load Diff

View File

@@ -30,13 +30,15 @@ using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using BS.Shared.Extensions;
using BS.Shared.Translation;
using BS.SharedLauncher;
using DevExpress.Xpf.Bars;
using DevExpress.Xpf.Editors;
using DevExpress.Xpf.Scheduler;
using DevExpress.Xpf.Scheduler.Reporting;
using DevExpress.XtraScheduler;
using DevExpress.XtraScheduler.Compatibility;
using DevExpress.XtraScheduler.iCalendar;
using Microsoft.Win32;
using Appointment = DevExpress.XtraScheduler.Appointment;
using AppointmentViewInfoCustomizingEventArgs = DevExpress.Xpf.Scheduler.AppointmentViewInfoCustomizingEventArgs;
using ColorConverter = System.Windows.Media.ColorConverter;
@@ -104,13 +106,13 @@ namespace BeWo.Scheduler.View
public bool ZeigeNurMeineTermine
{
get => BeWoApp.AppSettings.ZeigeNurMeineTermine;
get => MainSession.AppSettings.ZeigeNurMeineTermine;
set
{
if(BeWoApp.AppSettings.ZeigeNurMeineTermine != value)
if(MainSession.AppSettings.ZeigeNurMeineTermine != value)
{
BeWoApp.AppSettings.ZeigeNurMeineTermine = value;
BeWoApp.SaveAppSettings();
MainSession.AppSettings.ZeigeNurMeineTermine = value;
MainSession.SaveAppSettings();
OnPropertyChanged(nameof(ZeigeNurMeineTermine));
}
}
@@ -275,7 +277,7 @@ namespace BeWo.Scheduler.View
AlleMitarbeiterCB.IsChecked = ListEquals(value, AllEmployees);
ZeigeNurMeineTermine = value.Count == 1 && value.Contains(BeWoApp.CompactLoggedOnEmployee);
ZeigeNurMeineTermine = value.Count == 1 && value.Contains(MainSession.CompactLoggedOnEmployee);
OnPropertyChanged(nameof(SelectedEmployees));
OnPropertyChanged(nameof(SelectedItems));
@@ -432,13 +434,13 @@ namespace BeWo.Scheduler.View
{
this.Dispatch(() =>
{
if(!BeWoApp.LoggedOnUser.HasRight(UserRightType.KalenderMitarbeitertermineAnsehen))
if(!MainSession.LoggedOnUser.HasRight(UserRightType.KalenderMitarbeitertermineAnsehen))
{
allEmployees = new List<CompactEmployeeDC> { BeWoApp.CompactLoggedOnEmployee };
allEmployees = new List<CompactEmployeeDC> { MainSession.CompactLoggedOnEmployee };
}
var darfKlientenAnsichtSehen = BeWoApp.LoggedOnUser.HasRight(UserRightType.Customer_ViewMyCustomers) && BeWoApp.LoggedOnUser.HasRight(UserRightType.CustomerView_View);
var darfTermineAllerKlientenSehen = BeWoApp.LoggedOnUser.HasRight(UserRightType.KalenderKliententermineAlleAnsehen);
var darfKlientenAnsichtSehen = MainSession.LoggedOnUser.HasRight(UserRightType.Customer_ViewMyCustomers) && MainSession.LoggedOnUser.HasRight(UserRightType.CustomerView_View);
var darfTermineAllerKlientenSehen = MainSession.LoggedOnUser.HasRight(UserRightType.KalenderKliententermineAlleAnsehen);
if(darfKlientenAnsichtSehen)
{
@@ -452,7 +454,7 @@ namespace BeWo.Scheduler.View
allCustomers.Clear();
}
if(!BeWoApp.LoggedOnUser.HasRight(UserRightType.KalenderRessourcentermineAnsehen))
if(!MainSession.LoggedOnUser.HasRight(UserRightType.KalenderRessourcentermineAnsehen))
{
resourceDictionary.Clear();
}
@@ -527,7 +529,7 @@ namespace BeWo.Scheduler.View
if(_IstErsterAufruf)
{
if(MainControl.HatNeueTermine && !_IsComingFromHomeDragPanel)
if(MainPage.HatNeueTermine && !_IsComingFromHomeDragPanel)
{
FensterOeffnen();
}
@@ -575,16 +577,16 @@ namespace BeWo.Scheduler.View
private void InitRights()
{
MitarbeiterTabItem.Visibility = BeWoApp.LoggedOnUser.HasRight(UserRightType.KalenderMitarbeitertermineAnsehen) ? Visibility.Visible : Visibility.Collapsed;
RessourcenTabItem.Visibility = BeWoApp.LoggedOnUser.HasRight(UserRightType.KalenderRessourcentermineAnsehen) ? Visibility.Visible : Visibility.Collapsed;
KlientenTabItem.Visibility = BeWoApp.LoggedOnUser.HasRight(UserRightType.CustomerView_View) || BeWoApp.LoggedOnUser.HasRight(UserRightType.ViewAll) ? Visibility.Visible : Visibility.Collapsed;
MitarbeiterTabItem.Visibility = MainSession.LoggedOnUser.HasRight(UserRightType.KalenderMitarbeitertermineAnsehen) ? Visibility.Visible : Visibility.Collapsed;
RessourcenTabItem.Visibility = MainSession.LoggedOnUser.HasRight(UserRightType.KalenderRessourcentermineAnsehen) ? Visibility.Visible : Visibility.Collapsed;
KlientenTabItem.Visibility = MainSession.LoggedOnUser.HasRight(UserRightType.CustomerView_View) || MainSession.LoggedOnUser.HasRight(UserRightType.ViewAll) ? Visibility.Visible : Visibility.Collapsed;
MitarbeiterEbenenCheckBox.Visibility = MitarbeiterTabItem.Visibility;
RessourcenEbenenCheckBox.Visibility = RessourcenTabItem.Visibility;
KlientenEbenenCheckBox.Visibility = KlientenTabItem.Visibility;
MitarbeiterfarbenEinAusCheckBox.Visibility = MitarbeiterTabItem.Visibility;
ButtonDeleteAppointments.Visibility = BeWoApp.LoggedOnUser.HasRight(UserRightType.Termine_IntervalDelete) ? Visibility.Visible : Visibility.Collapsed;
ButtonDeleteAppointments.Visibility = MainSession.LoggedOnUser.HasRight(UserRightType.Termine_IntervalDelete) ? Visibility.Visible : Visibility.Collapsed;
}
private void UpdateDataSource(ISchedulerViewModel vm)
@@ -606,14 +608,14 @@ namespace BeWo.Scheduler.View
foreach(var item in Scheduler.Storage.AppointmentStorage.Items)
{
var bapp = item.GetSourceObject(Scheduler.GetCoreStorage()) as IBeWoAppointment;
var bapp = item.GetSourceObject(Scheduler.GetCoreStorage()) as IMainSessionointment;
if(item.IsRecurring)
{
var ausnahmen = item.GetExceptions();
foreach(var exc in ausnahmen)
{
var b = exc.GetSourceObject(Scheduler.GetCoreStorage()) as IBeWoAppointment;
var b = exc.GetSourceObject(Scheduler.GetCoreStorage()) as IMainSessionointment;
if(b?.CustomFields == null)
{
continue;
@@ -821,12 +823,12 @@ namespace BeWo.Scheduler.View
SelectedEmployees.Remove(employee);
OnPropertyChanged(nameof(SelectedEmployees));
if (employee != null && employee.Equals(BeWoApp.CompactLoggedOnEmployee))
if (employee != null && employee.Equals(MainSession.CompactLoggedOnEmployee))
{
ZeigeNurMeineTermine = false;
ReloadVM(true);
}
else if (SelectedEmployees.Count == 1 && SelectedEmployees.First().Equals(BeWoApp.CompactLoggedOnEmployee))
else if (SelectedEmployees.Count == 1 && SelectedEmployees.First().Equals(MainSession.CompactLoggedOnEmployee))
{
ZeigeNurMeineTermine = true;
}
@@ -932,15 +934,15 @@ namespace BeWo.Scheduler.View
public void UpdateRequestString()
{
ServiceFacade.DoResourceServiceSync(r => _Liste = r.GetAllOpenAppointmentsForEmployee(BeWoApp.LoggedOnEmployee.EmployeeOid.Value));
ServiceFacade.DoResourceServiceSync(r => _Liste = r.GetAllOpenAppointmentsForEmployee(MainSession.LoggedOnEmployee.EmployeeOid.Value));
var count = 0;
var oidList = new List<long>();
foreach (var termin in _Liste)
{
if (termin.Originator.EmployeeOid == BeWoApp.LoggedOnEmployee.EmployeeOid.Value)
if (termin.Originator.EmployeeOid == MainSession.LoggedOnEmployee.EmployeeOid.Value)
{
foreach (var status in termin.EmployeeList.Where(w => w.Employee.EmployeeOid != BeWoApp.LoggedOnEmployee.EmployeeOid.Value))
foreach (var status in termin.EmployeeList.Where(w => w.Employee.EmployeeOid != MainSession.LoggedOnEmployee.EmployeeOid.Value))
{
if (status.IsPChanged && status.ParticipationAnswer != ParticipationAnswer.Offen && status.ParticipationAnswer != ParticipationAnswer.Verstrichen && !oidList.Contains(status.Employee2SchedulerAppointmentOid.Value))
{
@@ -951,9 +953,9 @@ namespace BeWo.Scheduler.View
}
else
{
if (termin.EmployeeList.Any(a => a.Employee.EmployeeOid == BeWoApp.LoggedOnEmployee.EmployeeOid.Value))
if (termin.EmployeeList.Any(a => a.Employee.EmployeeOid == MainSession.LoggedOnEmployee.EmployeeOid.Value))
{
foreach (var status in termin.EmployeeList.Where(w => w.Employee.EmployeeOid == BeWoApp.LoggedOnEmployee.EmployeeOid.Value))
foreach (var status in termin.EmployeeList.Where(w => w.Employee.EmployeeOid == MainSession.LoggedOnEmployee.EmployeeOid.Value))
{
if (!status.IsPChanged && status.ParticipationAnswer == ParticipationAnswer.Offen && status.ParticipationAnswer != ParticipationAnswer.Verstrichen && !oidList.Contains(status.Employee2SchedulerAppointmentOid.Value))
{
@@ -1137,7 +1139,7 @@ namespace BeWo.Scheduler.View
}
}
if(!BeWoApp.LoggedOnUser.HasRight(UserRightType.KalenderMitarbeitertermineAnsehen) || !BeWoApp.LoggedOnUser.HasRight(UserRightType.Mitarbeiterstundenkonto_ViewAll))
if(!MainSession.LoggedOnUser.HasRight(UserRightType.KalenderMitarbeitertermineAnsehen) || !MainSession.LoggedOnUser.HasRight(UserRightType.Mitarbeiterstundenkonto_ViewAll))
{
var verfuegbarkeitMenue = e.Menu.ItemLinks.FirstOrDefault(f => f.GetType() == typeof(BarButtonItemLink) && (((BarButtonItemLink)f).Item?.Name.Contains("MitarbeiterVerfuegbarkeitPruefenButtonItem") ?? false));
@@ -1171,7 +1173,7 @@ namespace BeWo.Scheduler.View
}
}
if(!BeWoApp.LoggedOnUser.HasRight(UserRightType.KalenderInZeiterfassungUebernehmen))
if(!MainSession.LoggedOnUser.HasRight(UserRightType.KalenderInZeiterfassungUebernehmen))
{
BarItemLinkBase menuItem = null;
@@ -1203,7 +1205,7 @@ namespace BeWo.Scheduler.View
var seperatorTop = e.Menu.ItemLinks.FirstOrDefault(f => f.GetType() == typeof(BarItemLinkSeparator) && ((BarItemLinkSeparator) f).BarItemName.Equals("ZusagenStackSeperatorTop"));
var seperatorBottom = e.Menu.ItemLinks.FirstOrDefault(f => f.GetType() == typeof(BarItemLinkSeparator) && ((BarItemLinkSeparator) f).BarItemName.Equals("ZusagenStackSeperatorBottom"));
if(!Scheduler.SelectedAppointments[0].CF_IsTask() && Scheduler.SelectedAppointments[0].CF_EmployeeList().Any(a => a.Employee.EmployeeOid.Equals(BeWoApp.LoggedOnEmployee.EmployeeOid)))
if(!Scheduler.SelectedAppointments[0].CF_IsTask() && Scheduler.SelectedAppointments[0].CF_EmployeeList().Any(a => a.Employee.EmployeeOid.Equals(MainSession.LoggedOnEmployee.EmployeeOid)))
{
return;
}
@@ -1277,9 +1279,9 @@ namespace BeWo.Scheduler.View
var ersteller = appointment.CF_Originator();
var mitarbeiterliste = appointment.CF_EmployeeList();
var istErsteller = ersteller?.EmployeeOid.Equals(BeWoApp.LoggedOnEmployee.EmployeeOid) ?? false;
var istErsteller = ersteller?.EmployeeOid.Equals(MainSession.LoggedOnEmployee.EmployeeOid) ?? false;
if(!istErsteller && appointment.CF_IsPrivate() && !mitarbeiterliste.Any(a => Equals(a.Employee, BeWoApp.CompactLoggedOnEmployee)))
if(!istErsteller && appointment.CF_IsPrivate() && !mitarbeiterliste.Any(a => Equals(a.Employee, MainSession.CompactLoggedOnEmployee)))
{
darfTerminDetailsSehen = false;
}
@@ -1289,7 +1291,7 @@ namespace BeWo.Scheduler.View
private void AllowAppointmentCreateEvent(object sender, AppointmentOperationEventArgs e)
{
var darfAnlegen = (BeWoApp.LoggedOnUser.HasRight(UserRightType.KalenderKliententermineAnlegen) || BeWoApp.LoggedOnUser.HasRight(UserRightType.KalenderMitarbeitertermineAnlegen));
var darfAnlegen = (MainSession.LoggedOnUser.HasRight(UserRightType.KalenderKliententermineAnlegen) || MainSession.LoggedOnUser.HasRight(UserRightType.KalenderMitarbeitertermineAnlegen));
e.Allow = darfAnlegen;
}
@@ -1348,9 +1350,9 @@ namespace BeWo.Scheduler.View
private void NurEigeneKlientenAnzeigen(object sender, RoutedEventArgs e)
{
//!BeWoApp.LoggedOnUser.HasRight(UserRightType.CustomerView_View) && BeWoApp.LoggedOnUser.HasRight(UserRightType.Customer_ViewMyCustomers) ? AllCustomers :
//!MainSession.LoggedOnUser.HasRight(UserRightType.CustomerView_View) && MainSession.LoggedOnUser.HasRight(UserRightType.Customer_ViewMyCustomers) ? AllCustomers :
var relatedCustomerOids = BeWoApp.LoggedOnEmployee.RelatedCustomers.Select(s => s.Customer.CustomerOid);
var relatedCustomerOids = MainSession.LoggedOnEmployee.RelatedCustomers.Select(s => s.Customer.CustomerOid);
if (NurMeineKlientenCB.IsChecked.HasValue && NurMeineKlientenCB.IsChecked.Value)
{
@@ -1388,14 +1390,14 @@ namespace BeWo.Scheduler.View
var originator = customFieldStorage.Originator;
if(customFieldStorage.EmployeeList == null || originator.EmployeeOid == BeWoApp.LoggedOnEmployee.EmployeeOid.Value)
if(customFieldStorage.EmployeeList == null || originator.EmployeeOid == MainSession.LoggedOnEmployee.EmployeeOid.Value)
{
return false;
}
var empList = customFieldStorage.EmployeeList;
return empList.Any(a => a.Employee.EmployeeOid.Equals(BeWoApp.LoggedOnEmployee.EmployeeOid) && a.ParticipationAnswer == ParticipationAnswer.Offen);
return empList.Any(a => a.Employee.EmployeeOid.Equals(MainSession.LoggedOnEmployee.EmployeeOid) && a.ParticipationAnswer == ParticipationAnswer.Offen);
}).ToList();
var updates = vm.Appointments.Where(app =>
@@ -1410,7 +1412,7 @@ namespace BeWo.Scheduler.View
var empList = customFieldStorage.EmployeeList;
var or = customFieldStorage.Originator;
return or.EmployeeOid.Equals(BeWoApp.LoggedOnEmployee.EmployeeOid) && empList.Any(a => a.IsPChanged && a.ParticipationAnswer != ParticipationAnswer.Offen && a.ParticipationAnswer != ParticipationAnswer.Verstrichen && !a.Employee.EmployeeOid.Equals(BeWoApp.LoggedOnEmployee.EmployeeOid));
return or.EmployeeOid.Equals(MainSession.LoggedOnEmployee.EmployeeOid) && empList.Any(a => a.IsPChanged && a.ParticipationAnswer != ParticipationAnswer.Offen && a.ParticipationAnswer != ParticipationAnswer.Verstrichen && !a.Employee.EmployeeOid.Equals(MainSession.LoggedOnEmployee.EmployeeOid));
}).ToList();
if(!zuBestaetigen.Any() && !updates.Any())
@@ -1497,7 +1499,25 @@ namespace BeWo.Scheduler.View
ReloadVM(true);
}
private void ZusagenButtonItem_OnItemClick(object sender, ItemClickEventArgs e)
//private void ExportButton_OnClick(object sender, RoutedEventArgs e)
//{
// SaveFileDialog dialog = new SaveFileDialog
// {
// Filter = "iCalendar files (*.ics)|*.ics",
// FilterIndex = 1
// };
// if (dialog.ShowDialog() == true)
// {
// using (Stream stream = dialog.OpenFile())
// {
// iCalendarExporter exporter = new iCalendarExporter(Scheduler.Storage.InnerStorage);
// exporter.Export(stream);
// }
// }
//}
private void ZusagenButtonItem_OnItemClick(object sender, ItemClickEventArgs e)
{
if (Scheduler.SelectedAppointments.Count <= 0)
{
@@ -1532,7 +1552,7 @@ namespace BeWo.Scheduler.View
var el = sa.CF_EmployeeList();
var neu = new ObservableCollection<Employee2SchedulerAppointmentDC>(el.DoForEach(dfe =>
{
if(!dfe.Employee.EmployeeOid.Equals(BeWoApp.LoggedOnEmployee.EmployeeOid))
if(!dfe.Employee.EmployeeOid.Equals(MainSession.LoggedOnEmployee.EmployeeOid))
{
return;
}
@@ -1726,7 +1746,7 @@ namespace BeWo.Scheduler.View
public void ReloadAppointmentViewModel(DateTime pIntervalStart, DateTime pIntervalEnd, List<long> pSelectedEmployees, List<long> pSelectedCustomer, List<long> pSelectedResources, bool pEmployeesOnly, bool pCustomersOnly, bool pResourcesOnly, bool pPrivateAppointmentsOnly, bool pOnlyMyAppointments, bool pShouldShowAbsenceTimes)
{
if (!BeWoApp.LoggedOnEmployee.EmployeeOid.HasValue)
if (!MainSession.LoggedOnEmployee.EmployeeOid.HasValue)
{
return;
}
@@ -1736,16 +1756,16 @@ namespace BeWo.Scheduler.View
GetCacheObjects((c, e, r) =>
{
ServiceFacade.DoResourceServiceAsync(s2 => s2.LoadFilteredAppointmentsMitAufgaben(BeWoApp.HasLoggedOnUserRight(new[] {UserRightType.KalenderMitarbeitertermineAnsehen}), BeWoApp.LoggedOnEmployee.EmployeeOid.Value, start, end, pSelectedEmployees, pSelectedCustomer, pSelectedResources, pEmployeesOnly, pCustomersOnly, pResourcesOnly, pPrivateAppointmentsOnly, pOnlyMyAppointments, IsTasksVisible),
ServiceFacade.DoResourceServiceAsync(s2 => s2.LoadFilteredAppointmentsMitAufgaben(MainSession.HasLoggedOnUserRight(new[] {UserRightType.KalenderMitarbeitertermineAnsehen}), MainSession.LoggedOnEmployee.EmployeeOid.Value, start, end, pSelectedEmployees, pSelectedCustomer, pSelectedResources, pEmployeesOnly, pCustomersOnly, pResourcesOnly, pPrivateAppointmentsOnly, pOnlyMyAppointments, IsTasksVisible),
appointments =>
{
ServiceFacade.DoResourceServiceAsync(s3 => s3.GetAllActiveAbsenceTimesInInterval(start, end, BeWoApp.LoggedOnEmployee.EmployeeOid.Value, BeWoApp.LoggedOnUser.HasRight(UserRightType.KalenderMitarbeitertermineAnsehen)),
ServiceFacade.DoResourceServiceAsync(s3 => s3.GetAllActiveAbsenceTimesInInterval(start, end, MainSession.LoggedOnEmployee.EmployeeOid.Value, MainSession.LoggedOnUser.HasRight(UserRightType.KalenderMitarbeitertermineAnsehen)),
absenceTimes =>
{
this.Dispatch(() =>
{
var prefilteredAppointments = appointments.Where(w => (w.EmployeeList.Count == 0 && w.Originator.EmployeeOid.Equals(BeWoApp.LoggedOnEmployee.EmployeeOid) ||
w.EmployeeList.Count > 0 && w.EmployeeList.Any(a => a.Employee.EmployeeOid.Equals(BeWoApp.LoggedOnEmployee.EmployeeOid)) ||
var prefilteredAppointments = appointments.Where(w => (w.EmployeeList.Count == 0 && w.Originator.EmployeeOid.Equals(MainSession.LoggedOnEmployee.EmployeeOid) ||
w.EmployeeList.Count > 0 && w.EmployeeList.Any(a => a.Employee.EmployeeOid.Equals(MainSession.LoggedOnEmployee.EmployeeOid)) ||
BeWoUtils.HasRight(UserRightType.KalenderMitarbeitertermineAnsehen)) && (!w.EmployeeList.TrueForAll(e2a => e2a.ParticipationAnswer == ParticipationAnswer.Absage) || w.EmployeeList == null || w.EmployeeList.Count == 0)).ToList();
var vm = new SchedulerAppointmentListVM(prefilteredAppointments, c, e, r);
@@ -1822,45 +1842,50 @@ namespace BeWo.Scheduler.View
});
}
//private void ExportAsiCal(object sender, RoutedEventArgs e)
//{
// var dialog = new SaveFileDialog {Filter = "iCalendar files (*.ics)|*.ics", FilterIndex = 1};
private void ExportButton_OnClick(object sender, RoutedEventArgs e)
{
var dialog = new SaveFileDialog { Filter = "iCalendar files (*.ics)|*.ics", FilterIndex = 1 };
// if (dialog.ShowDialog() != true)
// return;
if (dialog.ShowDialog() != true)
return;
// using (var stream = dialog.OpenFile())
// {
// ExportAppointmentsAs_iCal(stream);
// }
//}
using (var stream = dialog.OpenFile())
{
ExportAppointmentsAs_iCal(stream);
}
}
//void ExportAppointmentsAs_iCal(Stream stream)
//{
// if (stream == null)
// return;
// try
// {
// var productIdentifier = string.Format("-//{0}//DXScheduler iCalendarExchange Example//DE", BeWoApp.Mandator);
// var exporter = new iCalendarExporter(Scheduler.GetCoreStorage()) { ProductIdentifier = productIdentifier };
void ExportAppointmentsAs_iCal(Stream stream)
{
if (stream == null)
return;
try
{
var productIdentifier = string.Format("-//{0}//DXScheduler iCalendarExchange Example//DE", MainSession.Mandator);
var exporter = new iCalendarExporter(Scheduler.GetCoreStorage()) { ProductIdentifier = productIdentifier };
// //exporter.AppointmentExporting += OnAppointmentExporting;
// exporter.Export(stream);
// }
// catch (Exception e)
// {
// MessageBox.Show(string.Format("Der Kalender konnte leider nicht exportiert werden.\n{0}", e.Message), "Fehler beim Export", MessageBoxButton.OK, MessageBoxImage.Error);
// }
//}
exporter.AppointmentExporting += OnAppointmentExporting;
exporter.Export(stream);
}
catch (Exception e)
{
MessageBox.Show(string.Format("Der Kalender konnte leider nicht exportiert werden.\n{0}", e.Message), "Fehler beim Export", MessageBoxButton.OK, MessageBoxImage.Error);
}
}
private void OnAppointmentExporting(object sender, AppointmentExportingEventArgs appointmentExportingEventArgs)
{
appointmentExportingEventArgs.Cancel = !Scheduler.ActiveView.GetAppointments().Contains(appointmentExportingEventArgs.Appointment);
}
//private void OnAppointmentExporting(object sender, AppointmentExportingEventArgs appointmentExportingEventArgs)
//{
// var iCalArgs = (iCalendarAppointmentExportingEventArgs) appointmentExportingEventArgs;
// var vEvent = iCalArgs.VEvent;
// var iCalArgs = (iCalendarAppointmentExportingEventArgs)appointmentExportingEventArgs;
// var vEvent = iCalArgs.VEvent;
// var ma = (ObservableCollection<Employee2SchedulerAppointmentDC>)appointmentExportingEventArgs.Appointment.CF_EmployeeList();
// var ca = (List<CompactCustomerDC>)appointmentExportingEventArgs.Appointment.CF_CustomerList();
// var ra = (List<ResourceDC>)appointmentExportingEventArgs.Appointment.CF_ResourceList();
// var ma = (ObservableCollection<Employee2SchedulerAppointmentDC>)appointmentExportingEventArgs.Appointment.CF_EmployeeList();
// var ca = (List<CompactCustomerDC>)appointmentExportingEventArgs.Appointment.CF_CustomerList();
// var ra = (List<ResourceDC>)appointmentExportingEventArgs.Appointment.CF_ResourceList();
//}
//private void SyncWithOutlook(object sender, RoutedEventArgs e)
@@ -1940,7 +1965,10 @@ namespace BeWo.Scheduler.View
foreach (var termin in mehrTaegigeTermine)
{
var tage = termin.StartDate.Value.GetDayNumberBetweenTwoDates(termin.EndDate.Value);
if (tage > 31)
{
tage = 31;
}
if (termin.AllDay)
{
tage -= 1;
@@ -2056,7 +2084,7 @@ namespace BeWo.Scheduler.View
{
{ "appointmentOidListe", appointmentOidListe },
{ "datesList", datesList },
{ "employeeOid", BeWoApp.LoggedOnEmployee.EmployeeOid },
{ "employeeOid", MainSession.LoggedOnEmployee.EmployeeOid },
{ "serienTermine", serienTermine },
{"mehrtaegigeTermine", neueTermine}
};
@@ -2135,16 +2163,16 @@ namespace BeWo.Scheduler.View
{
var cb = (CheckBox) sender;
if (CheckBoxConverter != null && BeWoApp.CompactLoggedOnEmployee != null)
if (CheckBoxConverter != null && MainSession.CompactLoggedOnEmployee != null)
{
if (cb.IsChecked != null && cb.IsChecked.Value)
{
SelectedEmployees = new List<CompactEmployeeDC>{BeWoApp.CompactLoggedOnEmployee};
CheckBoxConverter.AktuellerMitarbeiter = BeWoApp.CompactLoggedOnEmployee;
SelectedEmployees = new List<CompactEmployeeDC>{MainSession.CompactLoggedOnEmployee};
CheckBoxConverter.AktuellerMitarbeiter = MainSession.CompactLoggedOnEmployee;
}
else if (cb.IsChecked != null && !cb.IsChecked.Value && SelectedEmployees.Count == 1)
{
SelectedEmployees.Remove(BeWoApp.CompactLoggedOnEmployee);
SelectedEmployees.Remove(MainSession.CompactLoggedOnEmployee);
CheckBoxConverter.AktuellerMitarbeiter = null;
}
@@ -2224,23 +2252,23 @@ namespace BeWo.Scheduler.View
var onlyPrivateAppointments = ShowPrivateAppointmentsCheckBox.IsChecked != null && ShowPrivateAppointmentsCheckBox.IsChecked.Value;
var showOnlyMyAppointments = ZeigeNurMeineTermine;
var loggedOnUserHasRightToSeeAllAppointments = BeWoApp.LoggedOnUser.HasRight(UserRightType.KalenderKliententermineAlleAnsehen) || BeWoApp.LoggedOnUser.HasRight(UserRightType.ViewAll);
var loggedOnEmployeeOid = BeWoApp.LoggedOnEmployee.EmployeeOid.Value;
var loggedOnUserHasRightToSeeAllAppointments = MainSession.LoggedOnUser.HasRight(UserRightType.KalenderKliententermineAlleAnsehen) || MainSession.LoggedOnUser.HasRight(UserRightType.ViewAll);
var loggedOnEmployeeOid = MainSession.LoggedOnEmployee.EmployeeOid.Value;
var date = DeleteForGoodIntervalEndDateEdit.DateTime;
var userRights = new Dictionary<UserRightType, bool>
{
{
UserRightType.KalenderKliententermineAendern, BeWoApp.LoggedOnUser.HasRight(UserRightType.KalenderKliententermineAendern)
UserRightType.KalenderKliententermineAendern, MainSession.LoggedOnUser.HasRight(UserRightType.KalenderKliententermineAendern)
},
{
UserRightType.KalenderMitarbeitertermineAendern, BeWoApp.LoggedOnUser.HasRight(UserRightType.KalenderMitarbeitertermineAendern)
UserRightType.KalenderMitarbeitertermineAendern, MainSession.LoggedOnUser.HasRight(UserRightType.KalenderMitarbeitertermineAendern)
},
{
UserRightType.KalenderRessourcentermineAendern, BeWoApp.LoggedOnUser.HasRight(UserRightType.KalenderRessourcentermineAendern)
UserRightType.KalenderRessourcentermineAendern, MainSession.LoggedOnUser.HasRight(UserRightType.KalenderRessourcentermineAendern)
},
{
UserRightType.KalenderRessourcentermineAndererAendern, BeWoApp.LoggedOnUser.HasRight(UserRightType.KalenderRessourcentermineAndererAendern)
UserRightType.KalenderRessourcentermineAndererAendern, MainSession.LoggedOnUser.HasRight(UserRightType.KalenderRessourcentermineAndererAendern)
}
};
@@ -2465,7 +2493,7 @@ namespace BeWo.Scheduler.View
return null;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); }
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotImplementedException("#4534523454"); }
}
public class AppointmentToolTipConverter : IValueConverter
@@ -2649,7 +2677,7 @@ namespace BeWo.Scheduler.View
var employeeList = customFieldStorage.EmployeeList;
var isTask = customFieldStorage.IsTask;
return employeeList.Any(e => e.Employee.EmployeeOid.Equals(BeWoApp.LoggedOnEmployee.EmployeeOid) && e.ParticipationAnswer == ParticipationAnswer.Vorbehalt) ?
return employeeList.Any(e => e.Employee.EmployeeOid.Equals(MainSession.LoggedOnEmployee.EmployeeOid) && e.ParticipationAnswer == ParticipationAnswer.Vorbehalt) ?
new SolidColorBrush(Color.FromRgb(185, 39, 217)) :
isTask ? new SolidColorBrush(Color.FromRgb(153, 59, 59)) : new SolidColorBrush(Color.FromRgb(192, 255, 208));
}

View File

@@ -33,7 +33,7 @@
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<ListView x:Name="OTListView" Grid.Column="0" MinWidth="120" SelectionMode="Single" Margin="3" ItemsSource="{Binding Path=OffeneTermine, UpdateSourceTrigger=PropertyChanged}" MaxWidth="300" SelectionChanged="Selector_OnSelected" Background="{StaticResource NavigationContentBrush}" SelectedIndex="0">
<ListView x:Name="OTListView" Grid.Column="0" MinWidth="120" SelectionMode="Single" Margin="3" ItemsSource="{Binding Path=OffeneTermine, UpdateSourceTrigger=PropertyChanged}" MaxWidth="300" SelectionChanged="Selector_OnSelected" Background="{DynamicResource NavigationContentBrush}" SelectedIndex="0">
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="HorizontalContentAlignment" Value="{Binding Path=HorizontalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />

View File

@@ -46,10 +46,10 @@ namespace BeWo.Scheduler.View
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
public ObservableCollection<IBeWoAppointment> OffeneTermine { get; set; }
public ObservableCollection<IMainSessionointment> OffeneTermine { get; set; }
private IBeWoAppointment _selektierterTermin;
public IBeWoAppointment SelektierterTermin
private IMainSessionointment _selektierterTermin;
public IMainSessionointment SelektierterTermin
{
get => _selektierterTermin;
set
@@ -59,14 +59,14 @@ namespace BeWo.Scheduler.View
}
}
public RequestAnswerView(IEnumerable<IBeWoAppointment> appointments, IEnumerable<IBeWoAppointment> statusUpdates)
public RequestAnswerView(IEnumerable<IMainSessionointment> appointments, IEnumerable<IMainSessionointment> statusUpdates)
{
var statusUpdatesAsAppointments = new List<IBeWoAppointment>();
var statusUpdatesAsAppointments = new List<IMainSessionointment>();
foreach(var beWoAppointment in statusUpdates)
foreach(var MainSessionointment in statusUpdates)
{
var item = (SchedulerAppointmentVM) beWoAppointment;
foreach(var relation in item.EmployeeList.Where(emp => emp.IsPChanged && emp.ParticipationAnswer != ParticipationAnswer.Offen && emp.ParticipationAnswer != ParticipationAnswer.Verstrichen && !emp.Employee.EmployeeOid.Equals(BeWoApp.LoggedOnEmployee.EmployeeOid)))
var item = (SchedulerAppointmentVM) MainSessionointment;
foreach(var relation in item.EmployeeList.Where(emp => emp.IsPChanged && emp.ParticipationAnswer != ParticipationAnswer.Offen && emp.ParticipationAnswer != ParticipationAnswer.Verstrichen && !emp.Employee.EmployeeOid.Equals(MainSession.LoggedOnEmployee.EmployeeOid)))
{
if(statusUpdatesAsAppointments.All(a => a.LabelId != relation.Employee2SchedulerAppointmentOid))
{
@@ -79,7 +79,7 @@ namespace BeWo.Scheduler.View
}
OffeneTermine = appointments.ToObservableCollection();
OffeneTermine.AddRange(new List<IBeWoAppointment>(statusUpdatesAsAppointments));
OffeneTermine.AddRange(new List<IMainSessionointment>(statusUpdatesAsAppointments));
DataContext = this;
InitializeComponent();
@@ -121,7 +121,7 @@ namespace BeWo.Scheduler.View
private void Selector_OnSelected(object sender, RoutedEventArgs e)
{
var lv = (ListView) sender;
SelektierterTermin = (IBeWoAppointment) lv.SelectedItem;
SelektierterTermin = (IMainSessionointment) lv.SelectedItem;
}
private void Zusagen_OnClick(object sender, RoutedEventArgs e)
@@ -146,7 +146,7 @@ namespace BeWo.Scheduler.View
{
termin.EmployeeList.DoForEach(e =>
{
if (e.Employee.EmployeeOid.Equals(BeWoApp.LoggedOnEmployee.EmployeeOid))
if (e.Employee.EmployeeOid.Equals(MainSession.LoggedOnEmployee.EmployeeOid))
{
e.ParticipationAnswer = antwort;
}
@@ -218,17 +218,17 @@ namespace BeWo.Scheduler.View
private void OK_OnClick(object sender, RoutedEventArgs e)
{
SelektierterTermin = OTListView.SelectedItem as IBeWoAppointment;
SelektierterTermin = OTListView.SelectedItem as IMainSessionointment;
if(_selektierterTermin != null && _selektierterTermin.Start < DateTime.Now && _selektierterTermin.End < DateTime.Now)
{
if(SelektierterTermin != null && BeWoApp.LoggedOnEmployee.EmployeeOid.HasValue)
if(SelektierterTermin != null && MainSession.LoggedOnEmployee.EmployeeOid.HasValue)
{
var customFieldStorage = (CustomFieldStorage) SelektierterTermin.CustomFields[nameof(CustomFieldStorage)];
var emp2App = customFieldStorage.EmployeeList.ToList().Find(f => f.Employee2SchedulerAppointmentOid == SelektierterTermin.LabelId) ??
customFieldStorage.EmployeeList.ToList().Find(f => f.Employee.EmployeeOid == BeWoApp.LoggedOnEmployee.EmployeeOid.Value);
customFieldStorage.EmployeeList.ToList().Find(f => f.Employee.EmployeeOid == MainSession.LoggedOnEmployee.EmployeeOid.Value);
if(emp2App.Employee.EmployeeOid == BeWoApp.LoggedOnEmployee.EmployeeOid.Value)
if(emp2App.Employee.EmployeeOid == MainSession.LoggedOnEmployee.EmployeeOid.Value)
{
emp2App.ParticipationAnswer = ParticipationAnswer.Verstrichen;
}
@@ -277,7 +277,7 @@ namespace BeWo.Scheduler.View
private void RequestAnswerView_OnClosing(object sender, CancelEventArgs e)
{
BeWoApp.MainControl.AufOffeneTerminePruefen();
MainSession.MainPage.AufOffeneTerminePruefen();
}
}
@@ -285,7 +285,7 @@ namespace BeWo.Scheduler.View
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var app = (IBeWoAppointment) value;
var app = (IMainSessionointment) value;
if(app == null)
{
@@ -334,7 +334,7 @@ namespace BeWo.Scheduler.View
return null;
}
var app = (IBeWoAppointment)value;
var app = (IMainSessionointment)value;
var customFieldStorage = (CustomFieldStorage) app.CustomFields[nameof(CustomFieldStorage)];
var originator = customFieldStorage.Originator;

View File

@@ -39,7 +39,7 @@
</Border>
<Border x:Name="ItemContent" CornerRadius="5" MinHeight="25" Background="{StaticResource SupportConceptContentBrush}">
<Border x:Name="ItemContent" CornerRadius="5" MinHeight="25" Background="{DynamicResource SupportConceptContentBrush}">
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="5,3,5,3" OpacityMask="{x:Null}" SnapsToDevicePixels="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
@@ -316,10 +316,10 @@
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBox IsReadOnly="True" Grid.Column="0" Grid.ColumnSpan="2" Text="{Binding CountSelectedEmployees, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" Margin="0" />
<ToggleButton Grid.Column="1" x:Name="MitarbeiterToggleButton" IsThreeState="False" Margin="0,0,2,0" Height="19" Width="19" ToolTip="Ausgewählte Mitarbeiter anzeigen" Style="{StaticResource ExpanderLookAlikeToggleBotton}"/>
<ToggleButton Grid.Column="1" x:Name="MitarbeiterToggleButton" IsThreeState="False" Margin="0,0,2,0" Height="19" Width="19" ToolTip="Ausgewählte Mitarbeiter anzeigen" Style="{DynamicResource ExpanderLookAlikeToggleBotton}"/>
</Grid>
<Popup Grid.Column="1" Grid.Row="5" Margin="10" Name="PopupEmployee" StaysOpen="False" Placement="MousePoint" Width="450" Height="300" >
<search:MultiEmployeeSearch x:Name="MultiEmployeeSearch" ResultListBackground="{StaticResource EmployeeListBrush}" SelectionChanged="MultiEmployeeSearch_OnSelectionChanged" SelectedEmployees="{Binding Controller.EmployeeList, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" />
<search:MultiEmployeeSearch x:Name="MultiEmployeeSearch" ResultListBackground="{DynamicResource EmployeeListBrush}" SelectionChanged="MultiEmployeeSearch_OnSelectionChanged" SelectedEmployees="{Binding Controller.EmployeeList, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" />
</Popup>
<Button x:Name="MitarbeiterPopUpOeffnenBtn" Grid.Column="4" Grid.Row="5" Width="20" Height="20" Margin="3,0,3,0" VerticalAlignment="Center" Click="EmployeePopupClick">
<Grid Width="18" HorizontalAlignment="Center" VerticalAlignment="Center">
@@ -327,7 +327,7 @@
<Line X1="8" X2="8" Y1="4" Y2="12" Fill="{x:Null}" Stroke="#FFFFFFFF" StrokeStartLineCap="Round" StrokeEndLineCap="Round" StrokeThickness="2" HorizontalAlignment="Center" VerticalAlignment="Center" Width="16" Height="16" />
</Grid>
</Button>
<ListBox Grid.Column="1" Grid.Row="6" Background="{StaticResource ObjectEditBackgroundBrush}" Margin="4,0,1,4" ItemsSource="{Binding Path=SelectedEmployees, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" IsSynchronizedWithCurrentItem="True"
<ListBox Grid.Column="1" Grid.Row="6" Background="{DynamicResource ObjectEditBackgroundBrush}" Margin="4,0,1,4" ItemsSource="{Binding Path=SelectedEmployees, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" IsSynchronizedWithCurrentItem="True"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch" HorizontalContentAlignment="Stretch" Grid.ColumnSpan="3" x:Name="SelectedMitarbeiter"
ItemContainerStyle="{DynamicResource MultiElementSelectionControlStyle}" MaxHeight="70" Height="70"
Visibility="{Binding IsChecked, ElementName=MitarbeiterToggleButton, Converter={StaticResource BoolVisibilityConverter}}">
@@ -351,7 +351,7 @@
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBox IsReadOnly="True" Grid.Column="0" Grid.ColumnSpan="2" Text="{Binding CountSelectedCustomers, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" />
<ToggleButton Grid.Column="1" x:Name="KlientenToggleButton" IsThreeState="False" Margin="0,0,2,0" Height="19" Width="19" ToolTip="Ausgewählte Klienten anzeigen" Style="{StaticResource ExpanderLookAlikeToggleBotton}"/>
<ToggleButton Grid.Column="1" x:Name="KlientenToggleButton" IsThreeState="False" Margin="0,0,2,0" Height="19" Width="19" ToolTip="Ausgewählte Klienten anzeigen" Style="{DynamicResource ExpanderLookAlikeToggleBotton}"/>
</Grid>
<Button x:Name="KlientenPopUpOeffnenBtn" Grid.Column="4" Grid.Row="7" Width="20" Height="20" Margin="3,0,3,0" VerticalAlignment="Center" Click="CustomerPopUpEditClick">
<Grid Width="18" HorizontalAlignment="Center" VerticalAlignment="Center">
@@ -360,9 +360,9 @@
</Grid>
</Button>
<Popup Grid.Column="1" Grid.Row="7" Margin="10" Name="CustomerSearchViewPopup" StaysOpen="False" Placement="MousePoint" Width="450" Height="300" >
<search:MultiCustomerSearchView x:Name="MultiCustomerSearch" ResultListBackground="{StaticResource CustomerListBrush}" SelectionChanged="MultiCustomerSearch_OnSelectionChanged" SelectedCustomers="{Binding Controller.CustomerList, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" />
<search:MultiCustomerSearchView x:Name="MultiCustomerSearch" ResultListBackground="{DynamicResource CustomerListBrush}" SelectionChanged="MultiCustomerSearch_OnSelectionChanged" SelectedCustomers="{Binding Controller.CustomerList, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" />
</Popup>
<ListBox Grid.Column="1" Grid.Row="8" Background="{StaticResource ObjectEditBackgroundBrush}" Margin="4,0,1,4" ItemsSource="{Binding Path=SelectedCustomers, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" IsSynchronizedWithCurrentItem="True"
<ListBox Grid.Column="1" Grid.Row="8" Background="{DynamicResource ObjectEditBackgroundBrush}" Margin="4,0,1,4" ItemsSource="{Binding Path=SelectedCustomers, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" IsSynchronizedWithCurrentItem="True"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch" HorizontalContentAlignment="Stretch" Grid.ColumnSpan="3"
ItemContainerStyle="{DynamicResource MultiElementSelectionControlStyle}" MaxHeight="70" Height="70" x:Name="SelectedCustomersListBox"
Visibility="{Binding IsChecked, ElementName=KlientenToggleButton, Converter={StaticResource BoolVisibilityConverter}}">
@@ -386,7 +386,7 @@
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBox IsReadOnly="True" Grid.Column="0" Grid.ColumnSpan="2" Text="{Binding CountSelectedResources, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" />
<ToggleButton Grid.Column="1" x:Name="RessourcenToggleButton" IsThreeState="False" Margin="0,0,2,0" Height="19" Width="19" ToolTip="Ausgewählte Ressourcen anzeigen" Style="{StaticResource ExpanderLookAlikeToggleBotton}"/>
<ToggleButton Grid.Column="1" x:Name="RessourcenToggleButton" IsThreeState="False" Margin="0,0,2,0" Height="19" Width="19" ToolTip="Ausgewählte Ressourcen anzeigen" Style="{DynamicResource ExpanderLookAlikeToggleBotton}"/>
</Grid>
<Button x:Name="RessourcenPopUpOeffnenBtn" Grid.Column="4" Grid.Row="9" Width="20" Height="20" Margin="3,0,3,0" VerticalAlignment="Center" Click="ResourcePopUpClick">
<Grid Width="18" HorizontalAlignment="Center" VerticalAlignment="Center">
@@ -395,11 +395,11 @@
</Grid>
</Button>
<Popup Grid.Column="1" Grid.Row="9" Margin="10" Name="PopupResource" StaysOpen="False" Placement="MousePoint" Width="450" Height="300">
<search:ResourcesTreeSearchView x:Name="ResourcesTreeSearchView" ResultListBackground="{StaticResource ResourceContentBrush}" SelectionChanged="ResourcesTreeSearchView_OnSelectionChanged" SelectedResources="{Binding Controller.ResourceList}" />
<search:ResourcesTreeSearchView x:Name="ResourcesTreeSearchView" ResultListBackground="{DynamicResource ResourceContentBrush}" SelectionChanged="ResourcesTreeSearchView_OnSelectionChanged" SelectedResources="{Binding Controller.ResourceList}" />
</Popup>
<ListBox Grid.Column="1" Grid.Row="10" Background="{StaticResource ObjectEditBackgroundBrush}" Margin="4,0,1,4" ItemsSource="{Binding Path=SelectedResources}" IsSynchronizedWithCurrentItem="True"
<ListBox Grid.Column="1" Grid.Row="10" Background="{DynamicResource ObjectEditBackgroundBrush}" Margin="4,0,1,4" ItemsSource="{Binding Path=SelectedResources}" IsSynchronizedWithCurrentItem="True"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch" HorizontalContentAlignment="Stretch" Grid.ColumnSpan="3"
ItemContainerStyle="{StaticResource MultiResourceSelectionControlStyle}" MaxHeight="70" Height="70"
ItemContainerStyle="{DynamicResource MultiResourceSelectionControlStyle}" MaxHeight="70" Height="70"
Visibility="{Binding IsChecked, ElementName=RessourcenToggleButton, Converter={StaticResource BoolVisibilityConverter}}">
<ListBox.Template>
<ControlTemplate TargetType="{x:Type ListBox}">
@@ -426,7 +426,7 @@
</Popup>
<ListBox Grid.Column="1" Grid.Row="11" Background="White" Margin="4,0,1,4" ItemsSource="{Binding Path=SelectedSupportConcepts, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" IsSynchronizedWithCurrentItem="True"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch" HorizontalContentAlignment="Stretch" Grid.ColumnSpan="3" Name="SelectedSupportConceptsListBox"
ItemContainerStyle="{StaticResource MultiSupportConceptSelectionControlStyle}" MaxHeight="35" Height="35" Visibility="Collapsed">
ItemContainerStyle="{DynamicResource MultiSupportConceptSelectionControlStyle}" MaxHeight="35" Height="35" Visibility="Collapsed">
<ListBox.Template>
<ControlTemplate TargetType="{x:Type ListBox}">
<Border x:Name="Bd" SnapsToDevicePixels="True" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}">

View File

@@ -142,7 +142,7 @@ namespace BeWo.Scheduler.View
CurrentAppointment = appointment;
IsNew = Controller.IsNewAppointment;
IsOwnAppointment = Equals(BeWoApp.CompactLoggedOnEmployee, NewSchedulerAppointmentFormController.Originator) && (NewSchedulerAppointmentFormController.EmployeeList?.Count == 0 || NewSchedulerAppointmentFormController.EmployeeList.Any(a => Equals(a.Employee, BeWoApp.CompactLoggedOnEmployee)));
IsOwnAppointment = Equals(MainSession.CompactLoggedOnEmployee, NewSchedulerAppointmentFormController.Originator) && (NewSchedulerAppointmentFormController.EmployeeList?.Count == 0 || NewSchedulerAppointmentFormController.EmployeeList.Any(a => Equals(a.Employee, MainSession.CompactLoggedOnEmployee)));
IsInTaskViewMode = pIsInTaskViewMode;
@@ -181,9 +181,9 @@ namespace BeWo.Scheduler.View
EdtRecurrenceType.CustomDisplayText += EdtRecurrenceType_CustomDisplayText;
if(IsInTaskViewMode && !SelectedEmployees.Any(a => a.Employee.Equals(BeWoApp.CompactLoggedOnEmployee)))
if(IsInTaskViewMode && !SelectedEmployees.Any(a => a.Employee.Equals(MainSession.CompactLoggedOnEmployee)))
{
SelectedEmployees.Add(new Employee2SchedulerAppointmentDC { Employee = BeWoApp.CompactLoggedOnEmployee });
SelectedEmployees.Add(new Employee2SchedulerAppointmentDC { Employee = MainSession.CompactLoggedOnEmployee });
MitarbeiterToggleButton.IsChecked = true;
}
@@ -242,7 +242,7 @@ namespace BeWo.Scheduler.View
// --------------------------------------------------------------------
var checkType = IsNew ? SchedulerRightsCheckType.Create : SchedulerRightsCheckType.Edit;
var allowedToChange = BS.Shared.Core.Utils.CheckSchedulerRights(SelectedCustomers.ToList(), SelectedResources.ToList(), SelectedEmployees.ToList(), NewSchedulerAppointmentFormController.Originator, IsNew, checkType, BeWoApp.LoggedOnUser);
var allowedToChange = BS.Shared.Core.Utils.CheckSchedulerRights(SelectedCustomers.ToList(), SelectedResources.ToList(), SelectedEmployees.ToList(), NewSchedulerAppointmentFormController.Originator, IsNew, checkType, MainSession.LoggedOnUser);
if(IsInTaskViewMode)
{

View File

@@ -35,8 +35,8 @@ namespace BeWo.Scheduler.ViewModel
return settings;
}
private BindingList<IBeWoAppointment> _AppointmentList;
public BindingList<IBeWoAppointment> Appointments
private BindingList<IMainSessionointment> _AppointmentList;
public BindingList<IMainSessionointment> Appointments
{
get
{
@@ -45,7 +45,7 @@ namespace BeWo.Scheduler.ViewModel
return _AppointmentList;
}
_AppointmentList = new BindingList<IBeWoAppointment>();
_AppointmentList = new BindingList<IMainSessionointment>();
_AppointmentList.AddingNew += AppointmentListAddingNew;
foreach (var item in VMList)
@@ -108,7 +108,7 @@ namespace BeWo.Scheduler.ViewModel
item.Id = item.DataContract.SchedulerAppointmentOid;
if (!item.IsPrivate || item.Originator.EmployeeOid.Equals(BeWoApp.LoggedOnEmployee.EmployeeOid) || item.EmployeeList.Select(s => s.Employee).Contains(BeWoApp.CompactLoggedOnEmployee))
if (!item.IsPrivate || item.Originator.EmployeeOid.Equals(MainSession.LoggedOnEmployee.EmployeeOid) || item.EmployeeList.Select(s => s.Employee).Contains(MainSession.CompactLoggedOnEmployee))
{
continue;
}
@@ -426,14 +426,14 @@ namespace BeWo.Scheduler.ViewModel
{
appointment.StatusId = 0;
appointment.CustomFields[nameof(CustomFieldStorage)] = new CustomFieldStorage { Originator = BeWoApp.CompactLoggedOnEmployee };
appointment.CustomFields[nameof(CustomFieldStorage)] = new CustomFieldStorage { Originator = MainSession.CompactLoggedOnEmployee };
}
public void InitNewTask(Appointment pAppointment, DateTime? pDueDate, IEnumerable<Employee2SchedulerAppointmentDC> pSelectedEmployees, List<CompactCustomerDC> pSelectedCustomers, List<ResourceDC> pSelectedResources, List<CompactSupportConceptDC> pSelectedSupportConcepts)
{
pAppointment.CustomFields[nameof(CustomFieldStorage)] = new CustomFieldStorage
{
Originator = BeWoApp.CompactLoggedOnEmployee,
Originator = MainSession.CompactLoggedOnEmployee,
EmployeeList = new ObservableCollection<Employee2SchedulerAppointmentDC>(pSelectedEmployees ?? new List<Employee2SchedulerAppointmentDC>()),
CustomerList = pSelectedCustomers ?? new List<CompactCustomerDC>(),
ResourceList = pSelectedResources ?? new List<ResourceDC>(),
@@ -483,7 +483,7 @@ namespace BeWo.Scheduler.ViewModel
if (isPrivate)
{
if (ersteller == null || !ersteller.EmployeeOid.Equals(BeWoApp.LoggedOnEmployee.EmployeeOid))
if (ersteller == null || !ersteller.EmployeeOid.Equals(MainSession.LoggedOnEmployee.EmployeeOid))
{
return true;
}
@@ -492,8 +492,8 @@ namespace BeWo.Scheduler.ViewModel
switch (filterCategory)
{
case "NurEigene":
var istEigenerTermin = ersteller != null && ersteller.EmployeeOid.Equals(BeWoApp.LoggedOnEmployee.EmployeeOid) && employeeList != null && employeeList.Count == 0 ||
employeeList != null && employeeList.Any(a => a.Employee.EmployeeOid.Equals(BeWoApp.LoggedOnEmployee.EmployeeOid));
var istEigenerTermin = ersteller != null && ersteller.EmployeeOid.Equals(MainSession.LoggedOnEmployee.EmployeeOid) && employeeList != null && employeeList.Count == 0 ||
employeeList != null && employeeList.Any(a => a.Employee.EmployeeOid.Equals(MainSession.LoggedOnEmployee.EmployeeOid));
wirdAngezeigt = istEigenerTermin;
@@ -522,7 +522,7 @@ namespace BeWo.Scheduler.ViewModel
// Ersteller und Rechte beachten
var istEigen = ersteller.EmployeeOid.Equals(BeWoApp.LoggedOnEmployee.EmployeeOid);
var istEigen = ersteller.EmployeeOid.Equals(MainSession.LoggedOnEmployee.EmployeeOid);
var mVorhanden = appEList.Any(a2app => _AllEmployees.Contains(a2app.Employee));
var kVorhanden = customerList.Any(_AllCustomers.Contains);
@@ -530,17 +530,17 @@ namespace BeWo.Scheduler.ViewModel
wirdAngezeigt = liste[0] && mVorhanden || liste[1] && resourceList.Any() || liste[2] && kVorhanden;
// Nur Ansehen
if (!istEigen && !BeWoApp.LoggedOnUser.HasRight(UserRightType.KalenderMitarbeitertermineAnsehen) && liste[0] && mVorhanden && !appEList.Select(e2sa => e2sa.Employee).Any(a => a.EmployeeOid.Equals(BeWoApp.LoggedOnEmployee.EmployeeOid)))
if (!istEigen && !MainSession.LoggedOnUser.HasRight(UserRightType.KalenderMitarbeitertermineAnsehen) && liste[0] && mVorhanden && !appEList.Select(e2sa => e2sa.Employee).Any(a => a.EmployeeOid.Equals(MainSession.LoggedOnEmployee.EmployeeOid)))
{
wirdAngezeigt = false;
}
if (!istEigen && !BeWoApp.LoggedOnUser.HasRight(UserRightType.KalenderKliententermineAlleAnsehen) && liste[2] && kVorhanden)
if (!istEigen && !MainSession.LoggedOnUser.HasRight(UserRightType.KalenderKliententermineAlleAnsehen) && liste[2] && kVorhanden)
{
wirdAngezeigt = false;
}
if (!istEigen && !BeWoApp.LoggedOnUser.HasRight(UserRightType.KalenderRessourcentermineAnsehen) && liste[1] && resourceList.Any())
if (!istEigen && !MainSession.LoggedOnUser.HasRight(UserRightType.KalenderRessourcentermineAnsehen) && liste[1] && resourceList.Any())
{
wirdAngezeigt = false;
}
@@ -645,7 +645,7 @@ namespace BeWo.Scheduler.ViewModel
{
var unavailableResources = new List<ResourceDC>();
ServiceFacade.DoResourceServiceSync(s => unavailableResources = s.CheckResourceAvailability(vm.Start, vm.End, vm.ResourceList.Select(resource => resource.ResourceOid.Value).ToList(), null));
ServiceFacade.DoResourceServiceSync(s => unavailableResources = s.CheckResourceAvailability(vm.Start, vm.End, vm.ResourceList.Select(resource => resource.ResourceOid.Value).ToList(), vm.DataContract?.SchedulerAppointmentOid));
if(unavailableResources.Any())
{

View File

@@ -12,7 +12,7 @@ using BS.Shared.Extensions;
namespace BeWo.Scheduler.ViewModel
{
public class SchedulerAppointmentVM : AbstractDCMapperVM<SchedulerAppointmentDC>, IBeWoAppointment
public class SchedulerAppointmentVM : AbstractDCMapperVM<SchedulerAppointmentDC>, IMainSessionointment
{
public static string PropertyName_Type = "Type";
public static string PropertyName_Start = "Start";

View File

@@ -20,7 +20,11 @@ namespace BeWo.SchulbegleitenderDienst.SBDUtils
{
var substitutionStartingDayCountCondition = SubstitutionStartingDayCountCondition(viewModel);
if (substitutionStartingDayCountCondition || viewModel.Vertretung?.VertretenderMitarbeiterOid != null || viewModel.Customer != null && viewModel.Customer.SubstitutionNeed == SubstitutionNeed.NoSubstitutionWanted)
if (viewModel.VertretungsStatus == VertretungsStatus.KlientUndMitarbeiterKrank || viewModel.VertretungsStatus == VertretungsStatus.MaKrankKeineVertretungBenoetigt)
{
unwantedSubstitutionList.AddIfNotIn(viewModel);
}
else if (substitutionStartingDayCountCondition || viewModel.Vertretung?.VertretenderMitarbeiterOid != null || viewModel.Customer != null && viewModel.Customer.SubstitutionNeed == SubstitutionNeed.NoSubstitutionWanted)
{
unwantedSubstitutionList.AddIfNotIn(viewModel);
}

View File

@@ -22,7 +22,7 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<GroupBox Grid.ColumnSpan="1" Padding="5" Style="{StaticResource ObjectEditGroupBox}" Header="Schulbegleitender Dienst">
<GroupBox Grid.ColumnSpan="1" Padding="5" Style="{DynamicResource ObjectEditGroupBox}" Header="Schulbegleitender Dienst">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
@@ -48,7 +48,7 @@
<TextBox Grid.Row="4" Grid.Column="1" Margin="3" Height="23" Text="{Binding Path=Schutzstufe, UpdateSourceTrigger=PropertyChanged}" />
</Grid>
</GroupBox>
<GroupBox Header="Vertretungs-Einstellungen" Style="{StaticResource ObjectEditGroupBox}" Grid.Column="0" Grid.Row="1" Visibility="Visible" x:Name="VertretungsEinstellungen" Margin="0,10,0,0">
<GroupBox Header="Vertretungs-Einstellungen" Style="{DynamicResource ObjectEditGroupBox}" Grid.Column="0" Grid.Row="1" Visibility="Visible" x:Name="VertretungsEinstellungen" Margin="0,10,0,0">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
@@ -73,7 +73,7 @@
EditValue="{Binding Path=AbWelchemKrankheitsTag, UpdateSourceTrigger=PropertyChanged, Converter={StaticResource Int2DecimalConverter}}" />
</Grid>
</GroupBox>
<GroupBox Header="Wunschkriterien" Grid.Column="0" Grid.Row="2" Style="{StaticResource ObjectEditGroupBox}" Margin="0,10,0,0">
<GroupBox Header="Wunschkriterien" Grid.Column="0" Grid.Row="2" Style="{DynamicResource ObjectEditGroupBox}" Margin="0,10,0,0">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
@@ -97,7 +97,7 @@
</dxe:ComboBoxEdit>
</Grid>
</GroupBox>
<GroupBox Header="Ausschlusskriterien" Grid.Column="1" Grid.Row="2" Style="{StaticResource ObjectEditGroupBox}" Margin="0,10,0,0">
<GroupBox Header="Ausschlusskriterien" Grid.Column="1" Grid.Row="2" Style="{DynamicResource ObjectEditGroupBox}" Margin="0,10,0,0">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />

View File

@@ -27,7 +27,7 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<GroupBox Grid.ColumnSpan="1" Padding="5" Style="{StaticResource ObjectEditGroupBox}" Header="Schulbegleitender Dienst">
<GroupBox Grid.ColumnSpan="1" Padding="5" Style="{DynamicResource ObjectEditGroupBox}" Header="Schulbegleitender Dienst">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
@@ -60,7 +60,7 @@
</GroupBox>
<GroupBox Header="Wunschkriterien" Grid.Column="0" Grid.ColumnSpan="1" Grid.Row="1" Style="{StaticResource ObjectEditGroupBox}" Margin="0,10,0,0">
<GroupBox Header="Wunschkriterien" Grid.Column="0" Grid.ColumnSpan="1" Grid.Row="1" Style="{DynamicResource ObjectEditGroupBox}" Margin="0,10,0,0">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
@@ -86,7 +86,7 @@
</Grid>
</GroupBox>
<GroupBox Header="Ausschlusskriterien" Grid.Column="1" Grid.ColumnSpan="1" Grid.Row="1" Style="{StaticResource ObjectEditGroupBox}" Margin="0,10,0,0">
<GroupBox Header="Ausschlusskriterien" Grid.Column="1" Grid.ColumnSpan="1" Grid.Row="1" Style="{DynamicResource ObjectEditGroupBox}" Margin="0,10,0,0">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />

View File

@@ -38,7 +38,7 @@
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<GroupBox Header="Mitarbeiter Wunsch Kriterien" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Style="{StaticResource ObjectEditGroupBox}" Margin="3,3,3,3" >
<GroupBox Header="Mitarbeiter Wunsch Kriterien" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Style="{DynamicResource ObjectEditGroupBox}" Margin="3,3,3,3" >
<!-- Ready machen für teilweise funktion / Combobox zur auswahl der tokens und TextBox zur anzeige der ausgewählten tokens -->
<Grid>
@@ -62,7 +62,7 @@
</GroupBox>
<GroupBox Header="Mitarbeiter Ausschluss Kriterien" Grid.Row="0" Grid.Column="2" Grid.ColumnSpan="2" Style="{StaticResource ObjectEditGroupBox}" Margin="3,3,3,3">
<GroupBox Header="Mitarbeiter Ausschluss Kriterien" Grid.Row="0" Grid.Column="2" Grid.ColumnSpan="2" Style="{DynamicResource ObjectEditGroupBox}" Margin="3,3,3,3">
<!-- Ready machen für teilweise funktion <ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/> <RowDefinition Height="Auto"/>-->
@@ -87,7 +87,7 @@
</GroupBox>
<GroupBox Header="Klient Wunsch Kriterien" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Style="{StaticResource ObjectEditGroupBox}" Margin="3,3,3,3" >
<GroupBox Header="Klient Wunsch Kriterien" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Style="{DynamicResource ObjectEditGroupBox}" Margin="3,3,3,3" >
<!-- ############### wird durch Token Combobox mit devexpress vers. 17 ersetzt ################################## -->
<Grid>
@@ -110,7 +110,7 @@
<!-- ############################################################################################################## -->
</GroupBox>
<GroupBox Header="Klient Ausschluss Kriterien" Grid.Row="1" Grid.Column="2" Grid.ColumnSpan="2" Style="{StaticResource ObjectEditGroupBox}" Margin="3,3,3,3" >
<GroupBox Header="Klient Ausschluss Kriterien" Grid.Row="1" Grid.Column="2" Grid.ColumnSpan="2" Style="{DynamicResource ObjectEditGroupBox}" Margin="3,3,3,3" >
<!-- ############### wird durch Token Combobox mit devexpress vers. 17 ersetzt ################################## -->
<Grid>
@@ -132,7 +132,7 @@
</GroupBox>
<GroupBox Header="Geschlecht" Grid.Row="0" Grid.Column="4" Style="{StaticResource ObjectEditGroupBox}" Margin="3,3,3,3">
<GroupBox Header="Geschlecht" Grid.Row="0" Grid.Column="4" Style="{DynamicResource ObjectEditGroupBox}" Margin="3,3,3,3">
<WrapPanel Orientation="Horizontal">
<CheckBox Content="männlich" Margin="3,3,3,3" Click="RBMaennlich_OnClick" x:Name="RBMaennlich" IsChecked="True"/>
<CheckBox Content="weiblich" Margin="3,3,3,3" Click="RBWeiblich_OnClick" x:Name="RBWeiblich" IsChecked="True" />
@@ -150,7 +150,7 @@
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<GroupBox Grid.Row="0" Margin="1" Style="{StaticResource ObjectEditGroupBox}" Header="Klienten PLZ">
<GroupBox Grid.Row="0" Margin="1" Style="{DynamicResource ObjectEditGroupBox}" Header="Klienten PLZ">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
@@ -169,7 +169,7 @@
</Grid>
</GroupBox>
<GroupBox Grid.Row="1" Margin="1" Style="{StaticResource ObjectEditGroupBox}" Header="Suche nach">
<GroupBox Grid.Row="1" Margin="1" Style="{DynamicResource ObjectEditGroupBox}" Header="Suche nach">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
@@ -196,7 +196,7 @@
<!--Bereich einfügen um auszuwählen ob ganzen tag oder nur teilweise -->
<GroupBox Header="Vertretungs Zeitraum" Grid.Row="1" Grid.Column="0" Style="{StaticResource ObjectEditGroupBox}" Margin="3,3,3,3" >
<GroupBox Header="Vertretungs Zeitraum" Grid.Row="1" Grid.Column="0" Style="{DynamicResource ObjectEditGroupBox}" Margin="3,3,3,3" >
<Grid Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />

View File

@@ -13,7 +13,7 @@
Height="Auto" Width="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Focusable="True" x:Name="View">
<Grid Width="Auto" Height="Auto">
<uc:ShadowChrome>
<GroupBox Style="{StaticResource MainContentGroupBoxStyle}">
<GroupBox Style="{DynamicResource MainContentGroupBoxStyle}">
<GroupBox.Header>
<StackPanel Orientation="Horizontal" VerticalAlignment="Bottom" Margin="0,11,0,0">
<Image Source="..\..\Ressources\Icons\CalendarDisabled.png" RenderTransformOrigin="0.5,0.5" Width="32">
@@ -30,7 +30,7 @@
<TextBox Text="Vertretungen" Margin="10,0,0,0" Background="{x:Null}" Foreground="{DynamicResource MainGroupBoxForegroundBrush}" FontSize="22" BorderBrush="{x:Null}" VerticalAlignment="Stretch" Padding="0,0,0,0" BorderThickness="0,0,0,0" />
</StackPanel>
</GroupBox.Header>
<Grid Margin="0,3,0,0" Background="{StaticResource ObjectEditBackgroundBrush}">
<Grid Margin="0,3,0,0" Background="{DynamicResource ObjectEditBackgroundBrush}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
@@ -292,7 +292,7 @@
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<GroupBox Header="{markup:Translate Abwesenheiten Mitarbeiter}" Style="{StaticResource ObjectEditGroupBox}" >
<GroupBox Header="{markup:Translate Abwesenheiten Mitarbeiter}" Style="{DynamicResource ObjectEditGroupBox}" >
<dxg:GridControl x:Name="GridDataControlTagesansichtMitarbeiter" Visibility="Visible" Grid.Row="0" Margin="5,5,5,5" >
<dxg:GridControl.Columns >
<dxg:GridColumn FieldName="Employee" Width="125" ReadOnly="True" Header="Mitarbeiter/in">
@@ -347,7 +347,7 @@
</dxg:GridControl>
</GroupBox>
<GroupBox Grid.Row="1" Header="{markup:Translate Abwesenheiten Klienten}" Style="{StaticResource ObjectEditGroupBox}" Margin="0,10,0,0">
<GroupBox Grid.Row="1" Header="{markup:Translate Abwesenheiten Klienten}" Style="{DynamicResource ObjectEditGroupBox}" Margin="0,10,0,0">
<dxg:GridControl x:Name="GridDataControlTagesansichtKlient" Visibility="Visible" Margin="5,5,5,5" >
<dxg:GridControl.Columns >
@@ -417,7 +417,7 @@
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<GroupBox Header="{markup:Translate Abwesenheiten Mitarbeiter}" Style="{StaticResource ObjectEditGroupBox}" >
<GroupBox Header="{markup:Translate Abwesenheiten Mitarbeiter}" Style="{DynamicResource ObjectEditGroupBox}" >
<dxg:GridControl x:Name="GridDataControlWochenansichtMitarbeiter" Grid.Row="1" Grid.ColumnSpan="3" AllowDrop="true" Margin="5,5,5,5" VerticalContentAlignment="Center" BorderBrush="Black" >
<dxg:GridControl.Columns >
@@ -570,7 +570,7 @@
</dxg:GridControl>
</GroupBox>
<GroupBox Grid.Row="1" Header="{markup:Translate Abwesenheiten Klienten}" Style="{StaticResource ObjectEditGroupBox}" Margin="0,10,0,0">
<GroupBox Grid.Row="1" Header="{markup:Translate Abwesenheiten Klienten}" Style="{DynamicResource ObjectEditGroupBox}" Margin="0,10,0,0">
<dxg:GridControl x:Name="GridDataControlWochenansichtKlient" Grid.Row="2" Grid.ColumnSpan="3" AllowDrop="true" Margin="5,5,5,5" VerticalContentAlignment="Center" BorderBrush="Black" >
<dxg:GridControl.Columns >

View File

@@ -47,7 +47,7 @@
</localView:BeWoView.Resources>
<Grid Width="Auto" Height="Auto">
<uc:ShadowChrome>
<GroupBox Style="{StaticResource MainContentGroupBoxStyle}">
<GroupBox Style="{DynamicResource MainContentGroupBoxStyle}">
<GroupBox.Header>
<StackPanel Orientation="Horizontal" VerticalAlignment="Bottom" Margin="0,11,0,0">
<Image Source="..\Ressources\Icons\CalendarDisabled.png" RenderTransformOrigin="0.5,0.5" Width="32">
@@ -63,7 +63,7 @@
<TextBox Text="Vertretungen" Margin="10,0,0,0" Background="{x:Null}" Foreground="{DynamicResource MainGroupBoxForegroundBrush}" FontSize="22" BorderBrush="{x:Null}" VerticalAlignment="Stretch" Padding="0,0,0,0" BorderThickness="0,0,0,0" />
</StackPanel>
</GroupBox.Header>
<Grid Margin="0,3,0,0" Background="{StaticResource ObjectEditBackgroundBrush}">
<Grid Margin="0,3,0,0" Background="{DynamicResource ObjectEditBackgroundBrush}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
@@ -211,7 +211,7 @@
<CheckBox Grid.Column="1" Grid.Row="5" Content="ganztägig" Unchecked="KlientVertretungsToggleButton_OnUnchecked" Checked="KlientVertretungsToggleButton_OnChecked"
Grid.ColumnSpan="2" HorizontalAlignment="Left" x:Name="KVCheckBox" Margin="3"/>
<dxe:DateEdit x:Name="KVDatepickerVon" MaskType="DateTimeAdvancingCaret" Mask="HH:mm" Grid.Column="1" Grid.Row="3" Grid.ColumnSpan="2" Margin="3" Height="23" EditValueChanged="KVDatepickerVon_OnEditValueChanged"/>
<dxe:DateEdit x:Name="KVDatepickerVon" MaskType="DateTimeAdvancingCaret" Grid.Column="1" Grid.Row="3" Grid.ColumnSpan="2" Margin="3" Height="23" EditValueChanged="KVDatepickerVon_OnEditValueChanged"/>
<dxe:DateEdit x:Name="KVDatepickerBis" MaskType="DateTimeAdvancingCaret" Grid.Column="1" Grid.Row="4" Grid.ColumnSpan="2" Margin="3" Height="23" EditValueChanged="KVDatepickerBis_OnEditValueChanged"/>
@@ -259,7 +259,7 @@
</Grid.RowDefinitions>
<!-- Abwesende Mitarbeiter -->
<GroupBox Header="{markup:Translate Abwesenheiten Mitarbeiter}" Style="{StaticResource ObjectEditGroupBox}" >
<GroupBox Header="{markup:Translate Abwesenheiten Mitarbeiter}" Style="{DynamicResource ObjectEditGroupBox}" >
<dxg:GridControl x:Name="GridDataControlTagesansichtMitarbeiter" Visibility="Visible" Margin="5" VerticalContentAlignment="Stretch" ItemsSource="{Binding Path=AbsentEmployeesDayViewList, UpdateSourceTrigger=PropertyChanged}">
<dxg:GridControl.Columns >
<dxg:GridColumn FieldName="EmployeeName" ReadOnly="True" Header="Mitarbeiter/in" SortOrder="Ascending">
@@ -403,7 +403,7 @@
</GroupBox>
<!-- Abwesende Klienten -->
<GroupBox Grid.Row="1" Header="{markup:Translate Abwesenheiten Klienten}" Style="{StaticResource ObjectEditGroupBox}" Margin="0,10,0,0">
<GroupBox Grid.Row="1" Header="{markup:Translate Abwesenheiten Klienten}" Style="{DynamicResource ObjectEditGroupBox}" Margin="0,10,0,0">
<dxg:GridControl x:Name="GridDataControlTagesansichtKlient" Visibility="Visible" Margin="5" VerticalContentAlignment="Stretch" ItemsSource="{Binding Path=AbsentCustomersDayViewList, UpdateSourceTrigger=PropertyChanged}">
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="EmployeeName" ReadOnly="True" Header="Mitarbeiter/in" SortOrder="Ascending">
@@ -533,7 +533,7 @@
</GroupBox>
<!-- Kein Vertretungsbedarf -->
<GroupBox Grid.Row="2" Header="{markup:Translate Kein Vertretungsbedarf}" Style="{StaticResource ObjectEditGroupBox}">
<GroupBox Grid.Row="2" Header="{markup:Translate Kein Vertretungsbedarf}" Style="{DynamicResource ObjectEditGroupBox}">
<dxg:GridControl x:Name="SubstitutionUnwantedDayViewGridControl" AllowDrop="True" Margin="5" BorderBrush="Black" VerticalContentAlignment="Stretch" ItemsSource="{Binding Path=SubstitutionUnwantedDayViewList, UpdateSourceTrigger=PropertyChanged}">
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="EmployeeName" ReadOnly="True" Header="Mitarbeiter/in abwesend" SortOrder="Ascending">
@@ -658,7 +658,7 @@
</Grid.RowDefinitions>
<!-- Wochenansicht Abwesende Mitarbeiter -->
<GroupBox Header="{markup:Translate Abwesenheiten Mitarbeiter}" Style="{StaticResource ObjectEditGroupBox}">
<GroupBox Header="{markup:Translate Abwesenheiten Mitarbeiter}" Style="{DynamicResource ObjectEditGroupBox}">
<dxg:GridControl x:Name="GridDataControlWochenansichtMitarbeiter" AllowDrop="true" Margin="5" VerticalContentAlignment="Stretch" BorderBrush="Black" ItemsSource="{Binding AbsentEmployeesWeekViewList, UpdateSourceTrigger=PropertyChanged}">
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="EmployeeName" Header="Mitarbeiter/in" ReadOnly="True" SortOrder="Ascending" AllowBestFit="True">
@@ -962,7 +962,7 @@
</GroupBox>
<!-- Wochenansicht Abwesende Klienten -->
<GroupBox Grid.Row="1" Header="{markup:Translate Abwesenheiten Klienten}" Style="{StaticResource ObjectEditGroupBox}" Margin="0,10,0,0">
<GroupBox Grid.Row="1" Header="{markup:Translate Abwesenheiten Klienten}" Style="{DynamicResource ObjectEditGroupBox}" Margin="0,10,0,0">
<dxg:GridControl x:Name="GridDataControlWochenansichtKlient" AllowDrop="true" Margin="5" VerticalContentAlignment="Stretch" BorderBrush="Black" ItemsSource="{Binding AbsentCustomersWeekViewList, UpdateSourceTrigger=PropertyChanged}">
<dxg:GridControl.Columns >
<dxg:GridColumn FieldName="EmployeeName" Header="Mitarbeiter/in" ReadOnly="True" SortOrder="Ascending" AllowBestFit="True">
@@ -1158,7 +1158,7 @@
</GroupBox>
<!-- Wochenansicht Kein Vertretungsbedarf -->
<GroupBox Grid.Row="2" Header="{markup:Translate Kein Vertretungsbedarf}" Style="{StaticResource ObjectEditGroupBox}" Margin="0,10,0,0">
<GroupBox Grid.Row="2" Header="{markup:Translate Kein Vertretungsbedarf}" Style="{DynamicResource ObjectEditGroupBox}" Margin="0,10,0,0">
<dxg:GridControl AllowDrop="True" Margin="5" VerticalContentAlignment="Stretch" BorderBrush="Black"
x:Name="SubstitutionUnwantedWeekViewGridControl" ItemsSource="{Binding SubstitutionUnwantedWeekViewList, UpdateSourceTrigger=PropertyChanged}">
<dxg:GridControl.Columns>

View File

@@ -13,6 +13,7 @@ using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using BS.Shared.Extensions;
using BS.SharedLauncher.Information;
using DevExpress.Xpf.Bars;
using DevExpress.Xpf.Editors;
using DevExpress.Xpf.Grid;
@@ -621,6 +622,15 @@ namespace BeWo.SchulbegleitenderDienst
var barButtonItem2 = new BarButtonItem {Content = "Steckbrief anzeigen"};
barButtonItem2.ItemClick += ShowCharacteristics;
e.Customizations.Add(barButtonItem2);
var selectedViewModel = (TagesansichtVM)GridDataControlTagesansichtMitarbeiter.SelectedItem;
if (selectedViewModel != null && selectedViewModel.Vertretung != null)
{
var barButtonItem3 = new BarButtonItem {Content = "Vertretung löschen", Tag = e.Source.DataControl.SelectedItem };
barButtonItem3.ItemClick += DeleteVertretung_OnClick;
e.Customizations.Add(barButtonItem3);
}
}
private void ShowCharacteristics(object sender, RoutedEventArgs e)
@@ -631,7 +641,7 @@ namespace BeWo.SchulbegleitenderDienst
{
var selectedTagesansichtVM = (TagesansichtVM) selectedItem;
var url = $"{BeWoApp.SiteOfOrigin}/ReportView.aspx?type={ReportTypes.SBDCharacteristics}&customerOid={selectedTagesansichtVM.Customer.CustomerOid}";
var url = $"{ConnectionInformation.CoreServerAddressOrigin}/ReportView.aspx?type={ReportTypes.SBDCharacteristics}&customerOid={selectedTagesansichtVM.Customer.CustomerOid}";
//var tempToken = string.Empty;
@@ -679,6 +689,18 @@ namespace BeWo.SchulbegleitenderDienst
}
}
//private void DeleteVertretung_OnClick(object sender, RoutedEventArgs e)
//{
// if (MessageBox.Show("Möchten Sie die Vertretung wirklich löschen?", "Abwesenheit löschen", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
// {
// var selectedViewModel = (TagesansichtVM)GridDataControlTagesansichtMitarbeiter.SelectedItem;
// _Tagesvertretung.DeleteVertretung(selectedViewModel);
// LadeTagesansicht(Datepicker.DateTime.Date);
// }
//}
private void DeleteKlientKrankmeldung_OnClick(object sender, RoutedEventArgs e)
{
if (MessageBox.Show("Möchten Sie die Abwesenheit wirklich löschen?", "Abwesenheit löschen", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
@@ -693,6 +715,9 @@ namespace BeWo.SchulbegleitenderDienst
private static bool? ShowDeletionMessageBox(AbsenceTimeDC absenceTime)
{
// erstmal nur ganze Abwesenheit
return true;
if(absenceTime.Start != null && absenceTime.End != null && absenceTime.Start.Value.Date == absenceTime.End.Value.Date)
{
return true;
@@ -1033,8 +1058,16 @@ namespace BeWo.SchulbegleitenderDienst
{
var barButtonItem = new BarButtonItem {Content = "Abwesenheit löschen", Tag = e.Source.DataControl.SelectedItem};
barButtonItem.ItemClick += DeleteCustomerAbsenceTime_OnClick;
e.Customizations.Add(barButtonItem);
var selectedTagesansichtVM = (TagesansichtVM)barButtonItem.Tag;
if (selectedTagesansichtVM != null && selectedTagesansichtVM.Vertreter != null)
{
var barButtonItem2 = new BarButtonItem { Content = "Vertretung löschen", Tag = e.Source.DataControl.SelectedItem };
barButtonItem2.ItemClick += DeleteVertretung_OnClick;
e.Customizations.Add(barButtonItem2);
}
}
private void DeleteCustomerAbsenceTime_OnClick(object sender, RoutedEventArgs e)
@@ -1049,7 +1082,20 @@ namespace BeWo.SchulbegleitenderDienst
LadeTagesansicht(Datepicker.DateTime);
}
}
private void DeleteVertretung_OnClick(object sender, RoutedEventArgs e)
{
var barButtonItem = (BarButtonItem)sender;
var selectedTagesansichtVM = (TagesansichtVM)barButtonItem.Tag;
if (MessageBox.Show("Möchten Sie die Vertretung wirklich löschen?", "Abwesenheit löschen", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
{
_Tagesvertretung.DeleteVertretung(selectedTagesansichtVM);
LadeTagesansicht(Datepicker.DateTime);
}
}
private void GridControlSubUnwanted_OnCellValueChanged(object sender, CellValueChangedEventArgs e)
{
_Tagesvertretung.UpdateRowData((TagesansichtVM) SubstitutionUnwantedDayViewGridControl.SelectedItem);

View File

@@ -44,34 +44,35 @@
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<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="Klient/in:" Margin="3" FontWeight="Bold"/>
<Label x:Name="lblCustomerName" Content="{Binding Path=CustomerName, UpdateSourceTrigger=PropertyChanged}" Grid.Row="0" Grid.Column="1" Margin="3,3,3,0" />
<Label x:Name="lblCustomerStreet" Content="{Binding Path=CustomerStreet, UpdateSourceTrigger=PropertyChanged}" Grid.Row="1" Grid.Column="1" Margin="3,0,3,0"/>
<Label x:Name="lblCustomerCity" Content="{Binding Path=CustomerCity, UpdateSourceTrigger=PropertyChanged}" Grid.Row="2" Grid.Column="1" Margin="3,0,3,0"/>
<Label Grid.Row="0" Grid.Column="0" Content="Klient/in:" Margin="3,2,3,0" FontWeight="Bold"/>
<Label x:Name="lblCustomerName" Grid.Row="1" Grid.Column="0" Grid.RowSpan="2" Margin="3,0,3,2" Content="Max Mustermann"/>
<Label Grid.Row="0" Grid.Column="2" Content="Schule:" Margin="10,3,3,3" FontWeight="Bold"/>
<Label x:Name="lblSchoolName" Grid.Row="0" Grid.Column="3" Margin="3,3,3,0"/>
<Label x:Name="lblSchoolStreet" Grid.Row="1" Grid.Column="3" Margin="3,0,3,0"/>
<Label x:Name="lblSchoolCity" Grid.Row="2" Grid.Column="3" Margin="3,0,3,0"/>
<Label Grid.Row="0" Grid.Column="1" Content="Schule:" Margin="15,2,2,0" FontWeight="Bold"/>
<Label x:Name="lblSchoolName" Grid.Row="1" Grid.Column="1" Grid.RowSpan="2" Margin="15,0,3,2" Content="Max Mustermann"/>
<Label Grid.Row="0" Grid.Column="2" Content="Betreuungszeiten:" Margin="15,2,2,0" FontWeight="Bold"/>
<Label x:Name="lblBetreuungszeiten" Grid.Row="1" Grid.Column="2" Grid.RowSpan="2" Margin="15,0,3,2" Content="Max Mustermann"/>
<Label Grid.Row="0" Grid.Column="4" Content="Klient Wunschkriterien" Margin="10,3,3,3" FontWeight="Bold"/>
<dxg:LookUpEdit Grid.Row="1" Grid.Column="4" Grid.RowSpan="3" Margin="10,3,3,3" x:Name="TokenBoxWunschAnzeige" ValidateOnTextInput="True" ValidateOnEnterKeyPressed="True" TextWrapping="Wrap" IsReadOnly="True"
MinHeight="50" Width="200" PopupHeight="500" PopupWidth="750" PopupMinHeight="100" PopupMinWidth="100" IsPopupAutoWidth="False" >
<Label Grid.Row="0" Grid.Column="3" Content="Klient Wunschkriterien" Margin="15,2,3,0" FontWeight="Bold"/>
<dxg:LookUpEdit Grid.Row="1" Grid.Column="3" Grid.RowSpan="2" Margin="15,0,3,2" x:Name="TokenBoxWunschAnzeige" ValidateOnTextInput="True" ValidateOnEnterKeyPressed="True" TextWrapping="Wrap" IsReadOnly="True"
MinHeight="50" Width="150" PopupHeight="500" PopupWidth="750" PopupMinHeight="100" PopupMinWidth="100" IsPopupAutoWidth="False" >
<dxg:LookUpEdit.StyleSettings>
<dxg:TokenLookUpEditStyleSettings EnableTokenWrapping="True"/>
</dxg:LookUpEdit.StyleSettings>
</dxg:LookUpEdit>
<Label Grid.Row="0" Grid.Column="5" Content="Klient Ausschlusskriterien" Margin="3" FontWeight="Bold"/>
<dxg:LookUpEdit Grid.Row="1" Grid.Column="5" Grid.RowSpan="3" Margin="3" x:Name="TokenBoxAusschlussAnzeige" ValidateOnTextInput="True" ValidateOnEnterKeyPressed="True" TextWrapping="Wrap" IsReadOnly="True"
MinHeight="50" Width="200" PopupHeight="500" PopupWidth="750" PopupMinHeight="100" PopupMinWidth="100" IsPopupAutoWidth="False" >
<Label Grid.Row="0" Grid.Column="4" Content="Klient Ausschlusskriterien" Margin="15,2,2,0" FontWeight="Bold"/>
<dxg:LookUpEdit Grid.Row="1" Grid.Column="4" Grid.RowSpan="2" Margin="15,0,2,3" x:Name="TokenBoxAusschlussAnzeige" ValidateOnTextInput="True" ValidateOnEnterKeyPressed="True" TextWrapping="Wrap" IsReadOnly="True"
MinHeight="50" Width="150" PopupHeight="500" PopupWidth="750" PopupMinHeight="100" PopupMinWidth="100" IsPopupAutoWidth="False" >
<dxg:LookUpEdit.StyleSettings>
<dxg:TokenLookUpEditStyleSettings EnableTokenWrapping="True"/>
</dxg:LookUpEdit.StyleSettings>
@@ -102,7 +103,7 @@
<ListBox Grid.Row="0" Grid.Column="6" Width="200" Grid.RowSpan="2" Margin="3" x:Name="ListBoxLetzteVertreter" LostFocus="LetzteVertreter_OnLostFocus" SelectionChanged="LetzteVertreter_OnSelectionChanged" />
</Grid>
</GroupBox>
<GroupBox Header="Filter" Grid.Row="2" Grid.Column="0" Style="{StaticResource ObjectEditGroupBox}" Margin="3,3,3,3" >
<GroupBox Header="Filter" Grid.Row="2" Grid.Column="0" Style="{DynamicResource ObjectEditGroupBox}" Margin="3,3,3,3" >
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
@@ -131,7 +132,7 @@
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="Nachname" ReadOnly="True" Header="Nachname" SortOrder="Ascending" />
<dxg:GridColumn FieldName="Vorname" ReadOnly="True" Header="Vorname"/>
<dxg:GridColumn FieldName="Arbeitszeit" ReadOnly="True" Header="Arbeitszeit"/>
<dxg:GridColumn FieldName="Arbeitszeit" ReadOnly="True" Header="Betreuungszeiten"/>
<dxg:GridColumn FieldName="Postleitzahl" ReadOnly="True" Header="Postleitzahl" />
<dxg:GridColumn FieldName="Strasse" ReadOnly="True" Header="Strasse" />
<dxg:GridColumn FieldName="Stadt" ReadOnly="True" Header="Stadt" />

View File

@@ -182,33 +182,45 @@ namespace BeWo.SchulbegleitenderDienst
private void RootGroupBox_OnMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
DragMove();
try
{
DragMove();
}
catch (Exception exception)
{
//ignore
}
}
private void SetCustomerInfos()
{
lblCustomerName.Content = string.Empty;
lblCustomerStreet.Content = string.Empty;
lblCustomerCity.Content = string.Empty;
lblSchoolName.Content = string.Empty;
lblSchoolStreet.Content = string.Empty;
lblSchoolCity.Content = string.Empty;
lblBetreuungszeiten.Content = string.Empty;
if (_Tagesansicht.Customer != null)
{
lblCustomerName.Content = _Tagesansicht.Customer.Name;
lblCustomerStreet.Content = _Tagesansicht.Customer.Street;
lblCustomerCity.Content = $"{_Tagesansicht.Customer.PostalCode} {_Tagesansicht.Customer.Town}";
{
lblCustomerName.Content = String.Format("{0}\n{1}\n{2} {3}", _Tagesansicht.Customer.Name,
_Tagesansicht.Customer.Street, _Tagesansicht.Customer.PostalCode, _Tagesansicht.Customer.Town);
}
if (_Tagesansicht.Schule != null)
if (_Tagesansicht.Schools != null && _Tagesansicht.Schools.Count > 0)
{
lblSchoolName.Content = _Tagesansicht.Schule.Name;
lblSchoolStreet.Content = _Tagesansicht.Schule.Street;
lblSchoolCity.Content = $"{_Tagesansicht.Schule.PostalCode} {_Tagesansicht.Schule.Town}";
var c2o = _Tagesansicht.Schools[0];
var schule = c2o.Organisation;
lblSchoolName.Content = String.Format("{0}\n{1}\n{2} {3}", schule.Name, schule.Street, schule.PostalCode, schule.Town);
// _Tagesansicht.Schule.Street, _Tagesansicht.Schule.PostalCode, _Tagesansicht.Schule.Town);
}
}
if (_Tagesansicht.AssistanceTimeEntry != null)
{
lblBetreuungszeiten.Content = _Tagesansicht.AssistanceTimeEntry.ToString();
}
//"Montag 09:00 - 12:00\nDienstag 10:00 - 11:00\nMittwoch 08:00 - 12:00\nDonnerstag 08:00 - 12:00\nFreitag 08:00 - 12:00";
}
private void SetzeLetzteVertreter()
{
@@ -269,7 +281,12 @@ namespace BeWo.SchulbegleitenderDienst
{
if (eintrag != null && (int)_Tagesansicht.Datum.DayOfWeek == (int)eintrag.Tag + 1)
{
arbeitszeitEintrag = eintrag.UhrzeitVon + " - " + eintrag.UhrzeitBis;
if (arbeitszeitEintrag.Length > 0)
{
arbeitszeitEintrag += ", ";
}
arbeitszeitEintrag += eintrag.UhrzeitVon + " - " + eintrag.UhrzeitBis;
}
}
}

View File

@@ -15,7 +15,7 @@
</Grid.RowDefinitions>
<WrapPanel Orientation="Horizontal">
<GroupBox Header="Stundensätze" Style="{StaticResource ObjectEditGroupBox}" MaxWidth="400">
<GroupBox Header="Stundensätze" Style="{DynamicResource ObjectEditGroupBox}" MaxWidth="400">
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
@@ -55,7 +55,7 @@
</Grid>
</GroupBox>
<GroupBox Header="Feiertage" Style="{StaticResource ObjectEditGroupBox}" MaxWidth="400">
<GroupBox Header="Feiertage" Style="{DynamicResource ObjectEditGroupBox}" MaxWidth="400">
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />

View File

@@ -7,6 +7,7 @@ using System.Windows.Data;
using BeWo.Converter;
using BS.Shared;
using BS.SharedLauncher.Information;
namespace BeWo.Security
{
@@ -31,13 +32,13 @@ namespace BeWo.Security
[TypeConverter(typeof(UserRightTypeArrayConverter))]
public static void SetEnabledDemands(FrameworkElement element, UserRightType[] value)
{
element.SetBinding(UIElement.IsEnabledProperty, new Binding("LoggedOnUsersRights") { Source = BeWoApp.CurrentBeWo, Converter = new Right2IsEnabledConverter(), ConverterParameter = value });
element.SetBinding(UIElement.IsEnabledProperty, new Binding("LoggedOnUsersRights") { Source = MainSessionSingleton.Instance, Converter = new Right2IsEnabledConverter(), ConverterParameter = value });
}
[TypeConverter(typeof(UserRightTypeArrayConverter))]
public static void SetVisibleDemands(FrameworkElement element, UserRightType[] value)
{
element.SetBinding(UIElement.VisibilityProperty, new Binding("LoggedOnUsersRights") { Source = BeWoApp.CurrentBeWo, Converter = new Right2VisibilityConverter(), ConverterParameter = value });
element.SetBinding(UIElement.VisibilityProperty, new Binding("LoggedOnUsersRights") { Source = MainSessionSingleton.Instance, Converter = new Right2VisibilityConverter(), ConverterParameter = value });
}
}
@@ -45,7 +46,7 @@ namespace BeWo.Security
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return BeWoApp.HasLoggedOnUserRight((UserRightType[])parameter) ? Visibility.Visible : Visibility.Collapsed;
return MainSession.HasLoggedOnUserRight((UserRightType[])parameter) ? Visibility.Visible : Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
@@ -58,7 +59,7 @@ namespace BeWo.Security
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return BeWoApp.HasLoggedOnUserRight((UserRightType[])parameter);
return MainSession.HasLoggedOnUserRight((UserRightType[])parameter);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)

View File

@@ -1,4 +1,5 @@
using System.ServiceModel;
using BS.SharedLauncher.Information;
using System.ServiceModel;
using System.ServiceModel.Channels;
using System.ServiceModel.Dispatcher;
@@ -12,7 +13,7 @@ namespace BeWo.Security
public object BeforeSendRequest(ref Message request, IClientChannel channel)
{
request.Headers.Add(new SecurityHeader { Username = BeWoApp.UserName, Password = BeWoApp.UserPassword });
request.Headers.Add(new SecurityHeader { Username = ConnectionInformation.Username, Password = ConnectionInformation.Password });
return null;
}
}

View File

@@ -1,10 +1,10 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
// Dieser Code wurde von einem Tool generiert.
// Laufzeitversion:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
// der Code erneut generiert wird.
// </auto-generated>
//------------------------------------------------------------------------------
@@ -161,6 +161,36 @@ namespace BeWo.ServiceProxy
CustomWithoutDetails = 4,
}
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Name="UserValidationResult", Namespace="http://schemas.datacontract.org/2004/07/BS.SharedLauncher")]
public enum UserValidationResult : int
{
[System.Runtime.Serialization.EnumMemberAttribute()]
UserUnknown = 0,
[System.Runtime.Serialization.EnumMemberAttribute()]
UserValid = 1,
[System.Runtime.Serialization.EnumMemberAttribute()]
UnkownError = 2,
[System.Runtime.Serialization.EnumMemberAttribute()]
TenantUnknown = 3,
[System.Runtime.Serialization.EnumMemberAttribute()]
IncorrectPin = 4,
[System.Runtime.Serialization.EnumMemberAttribute()]
PinExpired = 5,
[System.Runtime.Serialization.EnumMemberAttribute()]
PinAlreadyUsed = 6,
[System.Runtime.Serialization.EnumMemberAttribute()]
PasswordExpired = 7,
}
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
[System.ServiceModel.ServiceContractAttribute(ConfigurationName="BeWo.ServiceProxy.IEmployeeService")]
public interface IEmployeeService
@@ -286,6 +316,16 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IEmployeeService/GetAllActiveEmployeesBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.EmployeeDC> GetAllActiveEmployees();
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IEmployeeService/GetActiveCompactCustomersForEmployee", ReplyAction="http://tempuri.org/IEmployeeService/GetActiveCompactCustomersForEmployeeResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IEmployeeService/GetActiveCompactCustomersForEmployeeBeWoFault" +
"Fault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactCustomerDC> GetActiveCompactCustomersForEmployee(System.Nullable<long> employeeOid);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IEmployeeService/GetActiveCompactEmployeesForEmployee", ReplyAction="http://tempuri.org/IEmployeeService/GetActiveCompactEmployeesForEmployeeResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IEmployeeService/GetActiveCompactEmployeesForEmployeeBeWoFault" +
"Fault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactEmployeeDC> GetActiveCompactEmployeesForEmployee(long employeeOid);
[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);
@@ -732,6 +772,16 @@ namespace BeWo.ServiceProxy
return base.Channel.GetAllActiveEmployees();
}
public System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactCustomerDC> GetActiveCompactCustomersForEmployee(System.Nullable<long> employeeOid)
{
return base.Channel.GetActiveCompactCustomersForEmployee(employeeOid);
}
public System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactEmployeeDC> GetActiveCompactEmployeesForEmployee(long employeeOid)
{
return base.Channel.GetActiveCompactEmployeesForEmployee(employeeOid);
}
public void ArchiveEmployee(long pOid, long pVersion)
{
base.Channel.ArchiveEmployee(pOid, pVersion);
@@ -1341,6 +1391,7 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.ValueListEntryDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.CustomerEmployeeRelationDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CustomerEmployeeRelationDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.UrlaubskontoDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.EmployeeAPPCodeDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.EmployeeAPPCodeDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.EmployeeTokenRelationDC>))]
@@ -1380,6 +1431,7 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.TableID))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.Priority))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.Status))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.QBFilterEnum))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactPersonDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactWohnheimDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactOrganisationDC>))]
@@ -1412,6 +1464,11 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.SettingsDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.UserGroupDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.UserGroupDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.RatingDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.RatingDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.GoalRatingDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GoalRatingDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.RatingTypeDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.ServiceAccountingDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ServiceAccountingDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.CustomerPersonRelationDC>))]
@@ -1449,6 +1506,8 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.QuittierungsCheckViewListItemsDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.QuittierungsCheckViewListItemsDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.QuittierungsCheckDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.QuittierungsbelegsstatusDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.QuittierungsbelegsstatusDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.OrganisationDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.OrganisationPersonRelationDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.OrganisationPersonRelationDC))]
@@ -1469,7 +1528,7 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.WohnheimCustomerRelationDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.WohnheimEmployeeRelationDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.WohnheimEmployeeRelationDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.UserValidationResult))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BeWo.ServiceProxy.UserValidationResult))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.SupportPinDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.SupportPinDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactUserDC>))]
@@ -1517,6 +1576,15 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.ReportTemplateDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ReportTemplateDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ReportTypes))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.DienstInfoDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.DienstInfoDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.RatingTypeDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ConfirmationReceiptSignatureDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.ConfirmationReceiptSignatureDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.DienstBlockDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.DienstBlockDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.DienstEintragDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AbsenceOverviewFilterDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.BargeldkassenDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.BargeldkassenDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.BargeldtransaktionDC>))]
@@ -1602,6 +1670,8 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.ServiceRecordValidationResult))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.ServiceRecordValidationResult>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.UiElementType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<System.Collections.Generic.Dictionary<int, long>>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary<int, long>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary<System.DateTime, BS.Shared.DataContracts.Compact.CompactCustomerDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary<BS.Shared.DataContracts.Compact.CompactCustomerDC, System.Collections.Generic.List<BS.Shared.DataContracts.AccountingTransactionDC>>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary<string, BS.Shared.DataContracts.Compact.CompactTokenDC>))]
@@ -1648,6 +1718,7 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.ServiceInvoicePeriodDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ServiceInvoicePeriodDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.InvoiceNumberDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.InvoiceNumberDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.InvoiceType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.IO.MemoryStream))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.IO.Stream))]
@@ -1669,6 +1740,15 @@ namespace BeWo.ServiceProxy
"tOidsBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.Dictionary<long, System.Collections.Generic.List<long>> LoadGroupOfPeoplesToCostbearerToSupportConceptOids(System.Collections.Generic.List<long> groupOfPeopleOids);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/GetQuittierungsbelegsstatusList", ReplyAction="http://tempuri.org/ICustomerService/GetQuittierungsbelegsstatusListResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/ICustomerService/GetQuittierungsbelegsstatusListBeWoFaultFault" +
"", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.QuittierungsbelegsstatusDC> GetQuittierungsbelegsstatusList(System.DateTime start, System.DateTime monat, BS.Shared.QBFilterEnum filter, System.Nullable<long> teamOid, System.Nullable<long> customerOid, System.Nullable<long> orgaOid, System.Nullable<long> empOid, System.Nullable<long> scOid);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/UpdateQuittierungsbelegsstatus", ReplyAction="http://tempuri.org/ICustomerService/UpdateQuittierungsbelegsstatusResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/ICustomerService/UpdateQuittierungsbelegsstatusBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
BS.Shared.DataContracts.QuittierungsbelegsstatusDC UpdateQuittierungsbelegsstatus(BS.Shared.DataContracts.QuittierungsbelegsstatusDC quittierungsbelegsstatusDC);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/UpdateCustomersAbsenceTimes", ReplyAction="http://tempuri.org/ICustomerService/UpdateCustomersAbsenceTimesResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/ICustomerService/UpdateCustomersAbsenceTimesBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
void UpdateCustomersAbsenceTimes(long pCustomerOid, System.Collections.Generic.List<BS.Shared.DataContracts.AbsenceTimeDC> pAbsenceTimes);
@@ -2502,6 +2582,16 @@ namespace BeWo.ServiceProxy
return base.Channel.LoadGroupOfPeoplesToCostbearerToSupportConceptOids(groupOfPeopleOids);
}
public System.Collections.Generic.List<BS.Shared.DataContracts.QuittierungsbelegsstatusDC> GetQuittierungsbelegsstatusList(System.DateTime start, System.DateTime monat, BS.Shared.QBFilterEnum filter, System.Nullable<long> teamOid, System.Nullable<long> customerOid, System.Nullable<long> orgaOid, System.Nullable<long> empOid, System.Nullable<long> scOid)
{
return base.Channel.GetQuittierungsbelegsstatusList(start, monat, filter, teamOid, customerOid, orgaOid, empOid, scOid);
}
public BS.Shared.DataContracts.QuittierungsbelegsstatusDC UpdateQuittierungsbelegsstatus(BS.Shared.DataContracts.QuittierungsbelegsstatusDC quittierungsbelegsstatusDC)
{
return base.Channel.UpdateQuittierungsbelegsstatus(quittierungsbelegsstatusDC);
}
public void UpdateCustomersAbsenceTimes(long pCustomerOid, System.Collections.Generic.List<BS.Shared.DataContracts.AbsenceTimeDC> pAbsenceTimes)
{
base.Channel.UpdateCustomersAbsenceTimes(pCustomerOid, pAbsenceTimes);
@@ -3214,7 +3304,7 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IUserService/IsUserValid", ReplyAction="http://tempuri.org/IUserService/IsUserValidResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IUserService/IsUserValidBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
BS.Shared.UserValidationResult IsUserValid(string pUserName, string pPassword, string pPIN);
BeWo.ServiceProxy.UserValidationResult IsUserValid(string pUserName, string pPassword, string pPIN);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IUserService/LoadUser", ReplyAction="http://tempuri.org/IUserService/LoadUserResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IUserService/LoadUserBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
@@ -3224,6 +3314,10 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IUserService/LoadUserByLoginNameBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
BS.Shared.DataContracts.UserDC LoadUserByLoginName(string pUserName);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IUserService/LoadUserByNameAndPassword", ReplyAction="http://tempuri.org/IUserService/LoadUserByNameAndPasswordResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IUserService/LoadUserByNameAndPasswordBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
BS.Shared.DataContracts.UserDC LoadUserByNameAndPassword(string pUserName, string password);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IUserService/LoadUserGroup", ReplyAction="http://tempuri.org/IUserService/LoadUserGroupResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IUserService/LoadUserGroupBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
BS.Shared.DataContracts.UserGroupDC LoadUserGroup(long pOid);
@@ -3385,7 +3479,7 @@ namespace BeWo.ServiceProxy
return base.Channel.InsertNewUserGroup(pUserGroup);
}
public BS.Shared.UserValidationResult IsUserValid(string pUserName, string pPassword, string pPIN)
public BeWo.ServiceProxy.UserValidationResult IsUserValid(string pUserName, string pPassword, string pPIN)
{
return base.Channel.IsUserValid(pUserName, pPassword, pPIN);
}
@@ -3400,6 +3494,11 @@ namespace BeWo.ServiceProxy
return base.Channel.LoadUserByLoginName(pUserName);
}
public BS.Shared.DataContracts.UserDC LoadUserByNameAndPassword(string pUserName, string password)
{
return base.Channel.LoadUserByNameAndPassword(pUserName, password);
}
public BS.Shared.DataContracts.UserGroupDC LoadUserGroup(long pOid)
{
return base.Channel.LoadUserGroup(pOid);
@@ -3477,24 +3576,24 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IStreamingService/UpdateBeWoFoldersBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
void UpdateBeWoFolders(System.Collections.Generic.List<BS.Shared.DataContracts.BeWoFolderDC> dcs);
// CODEGEN: Generating message contract since the wrapper name (UploadPackage) of message UploadPackage does not match the default value (UploadDocument)
// CODEGEN: Der Nachrichtenvertrag wird generiert, da der Wrappername (UploadPackage) von Nachricht "UploadPackage" nicht mit dem Standardwert (UploadDocument) übereinstimmt.
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IStreamingService/UploadDocument", ReplyAction="http://tempuri.org/IStreamingService/UploadDocumentResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IStreamingService/UploadDocumentBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
BeWo.ServiceProxy.UploadResult UploadDocument(BeWo.ServiceProxy.UploadPackage request);
// CODEGEN: Generating message contract since the wrapper name (UpdatePackage) of message UpdatePackage does not match the default value (UpdateDocument)
// CODEGEN: Der Nachrichtenvertrag wird generiert, da der Wrappername (UpdatePackage) von Nachricht "UpdatePackage" nicht mit dem Standardwert (UpdateDocument) übereinstimmt.
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IStreamingService/UpdateDocument", ReplyAction="http://tempuri.org/IStreamingService/UpdateDocumentResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IStreamingService/UpdateDocumentBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
BeWo.ServiceProxy.UploadResult UpdateDocument(BeWo.ServiceProxy.UpdatePackage request);
// CODEGEN: Generating message contract since the wrapper name (UploadChatPackage) of message UploadChatPackage does not match the default value (CreateNewSpeziallStreamChatMessagesDC)
// CODEGEN: Der Nachrichtenvertrag wird generiert, da der Wrappername (UploadChatPackage) von Nachricht "UploadChatPackage" nicht mit dem Standardwert (CreateNewSpeziallStreamChatMessagesDC) übereinstimmt.
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IStreamingService/CreateNewSpeziallStreamChatMessagesDC", ReplyAction="http://tempuri.org/IStreamingService/CreateNewSpeziallStreamChatMessagesDCRespons" +
"e")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IStreamingService/CreateNewSpeziallStreamChatMessagesDCBeWoFau" +
"ltFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
BeWo.ServiceProxy.UploadChatResult CreateNewSpeziallStreamChatMessagesDC(BeWo.ServiceProxy.UploadChatPackage request);
// CODEGEN: Generating message contract since the wrapper name (UploadPackage) of message UploadPackage does not match the default value (UploadImportFile)
// CODEGEN: Der Nachrichtenvertrag wird generiert, da der Wrappername (UploadPackage) von Nachricht "UploadPackage" nicht mit dem Standardwert (UploadImportFile) übereinstimmt.
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IStreamingService/UploadImportFile", ReplyAction="http://tempuri.org/IStreamingService/UploadImportFileResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IStreamingService/UploadImportFileBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
BeWo.ServiceProxy.UploadImportFileResult UploadImportFile(BeWo.ServiceProxy.UploadPackage request);
@@ -4706,10 +4805,6 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetReportTemplatesBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.ReportTemplateDC> GetReportTemplates(string url);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/GetAbsenceTimeDCsFilter", ReplyAction="http://tempuri.org/IOperationsService/GetAbsenceTimeDCsFilterResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetAbsenceTimeDCsFilterBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.AbsenceTimeDC> GetAbsenceTimeDCsFilter(System.DateTime start, System.DateTime end);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/GetAllAbsenceReason", ReplyAction="http://tempuri.org/IOperationsService/GetAllAbsenceReasonResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetAllAbsenceReasonBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.AbsenceReasonDC> GetAllAbsenceReason();
@@ -4732,6 +4827,115 @@ namespace BeWo.ServiceProxy
"FaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.SupportConceptCostBearerRelDC> GetSupportConceptCostBearerRelDCsByOids(System.Collections.Generic.List<long> supportConcept2CostbearerOids);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/GetAllDienste", ReplyAction="http://tempuri.org/IOperationsService/GetAllDiensteResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetAllDiensteBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.DienstInfoDC> GetAllDienste();
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/InsertNewDienst", ReplyAction="http://tempuri.org/IOperationsService/InsertNewDienstResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/InsertNewDienstBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
void InsertNewDienst(System.Collections.Generic.List<BS.Shared.DataContracts.DienstInfoDC> dienst);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/DeactivateDienst", ReplyAction="http://tempuri.org/IOperationsService/DeactivateDienstResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/DeactivateDienstBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
void DeactivateDienst(System.Collections.Generic.Dictionary<long, long> pOid2Version);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/GetAllRatingTypes", ReplyAction="http://tempuri.org/IOperationsService/GetAllRatingTypesResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetAllRatingTypesBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.RatingTypeDC> GetAllRatingTypes();
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/InsertNewRatingType", ReplyAction="http://tempuri.org/IOperationsService/InsertNewRatingTypeResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/InsertNewRatingTypeBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
void InsertNewRatingType(System.Collections.Generic.List<BS.Shared.DataContracts.RatingTypeDC> ratingTypes);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/DeactivateRatingType", ReplyAction="http://tempuri.org/IOperationsService/DeactivateRatingTypeResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/DeactivateRatingTypeBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
void DeactivateRatingType(System.Collections.Generic.Dictionary<long, long> pOid2Version);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/UpdateRatingType", ReplyAction="http://tempuri.org/IOperationsService/UpdateRatingTypeResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/UpdateRatingTypeBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
void UpdateRatingType(System.Collections.Generic.List<BS.Shared.DataContracts.RatingTypeDC> ratingTypes);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/FetchServiceRecordRatings", ReplyAction="http://tempuri.org/IOperationsService/FetchServiceRecordRatingsResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/FetchServiceRecordRatingsBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.GoalRatingDC> FetchServiceRecordRatings(System.Nullable<long> supportConceptOid, System.Nullable<long> costBearer2SupportConceptOid, System.Nullable<long> supportConceptApprovalPeriodOid, System.Nullable<long> serviceCategoryOid, System.Nullable<System.DateTime> start, System.Nullable<System.DateTime> end);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/InsertConfirmationReceiptSignature", ReplyAction="http://tempuri.org/IOperationsService/InsertConfirmationReceiptSignatureResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/InsertConfirmationReceiptSignatureBeWoFault" +
"Fault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
void InsertConfirmationReceiptSignature(BS.Shared.DataContracts.ConfirmationReceiptSignatureDC confirmationReceiptSignature);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/InsertConfirmationReceiptSignatures", ReplyAction="http://tempuri.org/IOperationsService/InsertConfirmationReceiptSignaturesResponse" +
"")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/InsertConfirmationReceiptSignaturesBeWoFaul" +
"tFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
void InsertConfirmationReceiptSignatures(System.Collections.Generic.List<BS.Shared.DataContracts.ConfirmationReceiptSignatureDC> confirmationReceiptSignatures);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/DeleteConfirmationReceiptSignature", ReplyAction="http://tempuri.org/IOperationsService/DeleteConfirmationReceiptSignatureResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/DeleteConfirmationReceiptSignatureBeWoFault" +
"Fault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
void DeleteConfirmationReceiptSignature(long confirmationReceiptSignatureOid);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/UpdateConfirmationReceiptSignature", ReplyAction="http://tempuri.org/IOperationsService/UpdateConfirmationReceiptSignatureResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/UpdateConfirmationReceiptSignatureBeWoFault" +
"Fault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
BS.Shared.DataContracts.ConfirmationReceiptSignatureDC UpdateConfirmationReceiptSignature(BS.Shared.DataContracts.ConfirmationReceiptSignatureDC confirmationReceiptSignature);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/GetConfirmationReceiptSignaturesByEmployee", ReplyAction="http://tempuri.org/IOperationsService/GetConfirmationReceiptSignaturesByEmployeeR" +
"esponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetConfirmationReceiptSignaturesByEmployeeB" +
"eWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.ConfirmationReceiptSignatureDC> GetConfirmationReceiptSignaturesByEmployee(long employeeOid, BS.Shared.Core.DateTimeSpan timeSpan);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/GetConfirmationReceiptSignaturesByServiceRe" +
"cord", ReplyAction="http://tempuri.org/IOperationsService/GetConfirmationReceiptSignaturesByServiceRe" +
"cordResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetConfirmationReceiptSignaturesByServiceRe" +
"cordBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.ConfirmationReceiptSignatureDC> GetConfirmationReceiptSignaturesByServiceRecord(long serviceRecordOid);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/GetAllConfirmationReceiptSignatures", ReplyAction="http://tempuri.org/IOperationsService/GetAllConfirmationReceiptSignaturesResponse" +
"")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetAllConfirmationReceiptSignaturesBeWoFaul" +
"tFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.ConfirmationReceiptSignatureDC> GetAllConfirmationReceiptSignatures();
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/UpdateDienst", ReplyAction="http://tempuri.org/IOperationsService/UpdateDienstResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/UpdateDienstBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
void UpdateDienst(System.Collections.Generic.List<BS.Shared.DataContracts.DienstInfoDC> dienste);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/GetDienstEintraege", ReplyAction="http://tempuri.org/IOperationsService/GetDienstEintraegeResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetDienstEintraegeBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.DienstBlockDC> GetDienstEintraege(long wOid, int year, int month);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/InsertNewDienstEintrag", ReplyAction="http://tempuri.org/IOperationsService/InsertNewDienstEintragResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/InsertNewDienstEintragBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
void InsertNewDienstEintrag(BS.Shared.DataContracts.DienstEintragDC dienstEintrag);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/UpdateDienstEintrag", ReplyAction="http://tempuri.org/IOperationsService/UpdateDienstEintragResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/UpdateDienstEintragBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
void UpdateDienstEintrag(BS.Shared.DataContracts.DienstEintragDC dienstEintrag);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/DeleteDienstEintrag", ReplyAction="http://tempuri.org/IOperationsService/DeleteDienstEintragResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/DeleteDienstEintragBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
void DeleteDienstEintrag(long empId, long wohnId, int Zeile, System.DateTime date);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/GetAbsenceTimeVacationByWohnheim", ReplyAction="http://tempuri.org/IOperationsService/GetAbsenceTimeVacationByWohnheimResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetAbsenceTimeVacationByWohnheimBeWoFaultFa" +
"ult", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.AbsenceTimeDC> GetAbsenceTimeVacationByWohnheim(long wohnId, int year, int month);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/GetServiceRecordsByIds", ReplyAction="http://tempuri.org/IOperationsService/GetServiceRecordsByIdsResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetServiceRecordsByIdsBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.ServiceRecordDC> GetServiceRecordsByIds(System.Collections.Generic.List<long> serviceRecordOids);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/GetAbsenceOverview", ReplyAction="http://tempuri.org/IOperationsService/GetAbsenceOverviewResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetAbsenceOverviewBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.EmployeeDC> GetAbsenceOverview(BS.Shared.DataContracts.AbsenceOverviewFilterDC filter);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/GetUrlaubskontoByEmployee", ReplyAction="http://tempuri.org/IOperationsService/GetUrlaubskontoByEmployeeResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetUrlaubskontoByEmployeeBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
BS.Shared.DataContracts.UrlaubskontoDC GetUrlaubskontoByEmployee(long empOid, int year);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/UpdateIsChatActiveCustomerAPPCodeDC", ReplyAction="http://tempuri.org/IOperationsService/UpdateIsChatActiveCustomerAPPCodeDCResponse" +
"")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/UpdateIsChatActiveCustomerAPPCodeDCBeWoFaul" +
@@ -5677,11 +5881,6 @@ namespace BeWo.ServiceProxy
return base.Channel.GetReportTemplates(url);
}
public System.Collections.Generic.List<BS.Shared.DataContracts.AbsenceTimeDC> GetAbsenceTimeDCsFilter(System.DateTime start, System.DateTime end)
{
return base.Channel.GetAbsenceTimeDCsFilter(start, end);
}
public System.Collections.Generic.List<BS.Shared.DataContracts.AbsenceReasonDC> GetAllAbsenceReason()
{
return base.Channel.GetAllAbsenceReason();
@@ -5707,6 +5906,126 @@ namespace BeWo.ServiceProxy
return base.Channel.GetSupportConceptCostBearerRelDCsByOids(supportConcept2CostbearerOids);
}
public System.Collections.Generic.List<BS.Shared.DataContracts.DienstInfoDC> GetAllDienste()
{
return base.Channel.GetAllDienste();
}
public void InsertNewDienst(System.Collections.Generic.List<BS.Shared.DataContracts.DienstInfoDC> dienst)
{
base.Channel.InsertNewDienst(dienst);
}
public void DeactivateDienst(System.Collections.Generic.Dictionary<long, long> pOid2Version)
{
base.Channel.DeactivateDienst(pOid2Version);
}
public System.Collections.Generic.List<BS.Shared.DataContracts.RatingTypeDC> GetAllRatingTypes()
{
return base.Channel.GetAllRatingTypes();
}
public void InsertNewRatingType(System.Collections.Generic.List<BS.Shared.DataContracts.RatingTypeDC> ratingTypes)
{
base.Channel.InsertNewRatingType(ratingTypes);
}
public void DeactivateRatingType(System.Collections.Generic.Dictionary<long, long> pOid2Version)
{
base.Channel.DeactivateRatingType(pOid2Version);
}
public void UpdateRatingType(System.Collections.Generic.List<BS.Shared.DataContracts.RatingTypeDC> ratingTypes)
{
base.Channel.UpdateRatingType(ratingTypes);
}
public System.Collections.Generic.List<BS.Shared.DataContracts.GoalRatingDC> FetchServiceRecordRatings(System.Nullable<long> supportConceptOid, System.Nullable<long> costBearer2SupportConceptOid, System.Nullable<long> supportConceptApprovalPeriodOid, System.Nullable<long> serviceCategoryOid, System.Nullable<System.DateTime> start, System.Nullable<System.DateTime> end)
{
return base.Channel.FetchServiceRecordRatings(supportConceptOid, costBearer2SupportConceptOid, supportConceptApprovalPeriodOid, serviceCategoryOid, start, end);
}
public void InsertConfirmationReceiptSignature(BS.Shared.DataContracts.ConfirmationReceiptSignatureDC confirmationReceiptSignature)
{
base.Channel.InsertConfirmationReceiptSignature(confirmationReceiptSignature);
}
public void InsertConfirmationReceiptSignatures(System.Collections.Generic.List<BS.Shared.DataContracts.ConfirmationReceiptSignatureDC> confirmationReceiptSignatures)
{
base.Channel.InsertConfirmationReceiptSignatures(confirmationReceiptSignatures);
}
public void DeleteConfirmationReceiptSignature(long confirmationReceiptSignatureOid)
{
base.Channel.DeleteConfirmationReceiptSignature(confirmationReceiptSignatureOid);
}
public BS.Shared.DataContracts.ConfirmationReceiptSignatureDC UpdateConfirmationReceiptSignature(BS.Shared.DataContracts.ConfirmationReceiptSignatureDC confirmationReceiptSignature)
{
return base.Channel.UpdateConfirmationReceiptSignature(confirmationReceiptSignature);
}
public System.Collections.Generic.List<BS.Shared.DataContracts.ConfirmationReceiptSignatureDC> GetConfirmationReceiptSignaturesByEmployee(long employeeOid, BS.Shared.Core.DateTimeSpan timeSpan)
{
return base.Channel.GetConfirmationReceiptSignaturesByEmployee(employeeOid, timeSpan);
}
public System.Collections.Generic.List<BS.Shared.DataContracts.ConfirmationReceiptSignatureDC> GetConfirmationReceiptSignaturesByServiceRecord(long serviceRecordOid)
{
return base.Channel.GetConfirmationReceiptSignaturesByServiceRecord(serviceRecordOid);
}
public System.Collections.Generic.List<BS.Shared.DataContracts.ConfirmationReceiptSignatureDC> GetAllConfirmationReceiptSignatures()
{
return base.Channel.GetAllConfirmationReceiptSignatures();
}
public void UpdateDienst(System.Collections.Generic.List<BS.Shared.DataContracts.DienstInfoDC> dienste)
{
base.Channel.UpdateDienst(dienste);
}
public System.Collections.Generic.List<BS.Shared.DataContracts.DienstBlockDC> GetDienstEintraege(long wOid, int year, int month)
{
return base.Channel.GetDienstEintraege(wOid, year, month);
}
public void InsertNewDienstEintrag(BS.Shared.DataContracts.DienstEintragDC dienstEintrag)
{
base.Channel.InsertNewDienstEintrag(dienstEintrag);
}
public void UpdateDienstEintrag(BS.Shared.DataContracts.DienstEintragDC dienstEintrag)
{
base.Channel.UpdateDienstEintrag(dienstEintrag);
}
public void DeleteDienstEintrag(long empId, long wohnId, int Zeile, System.DateTime date)
{
base.Channel.DeleteDienstEintrag(empId, wohnId, Zeile, date);
}
public System.Collections.Generic.List<BS.Shared.DataContracts.AbsenceTimeDC> GetAbsenceTimeVacationByWohnheim(long wohnId, int year, int month)
{
return base.Channel.GetAbsenceTimeVacationByWohnheim(wohnId, year, month);
}
public System.Collections.Generic.List<BS.Shared.DataContracts.ServiceRecordDC> GetServiceRecordsByIds(System.Collections.Generic.List<long> serviceRecordOids)
{
return base.Channel.GetServiceRecordsByIds(serviceRecordOids);
}
public System.Collections.Generic.List<BS.Shared.DataContracts.EmployeeDC> GetAbsenceOverview(BS.Shared.DataContracts.AbsenceOverviewFilterDC filter)
{
return base.Channel.GetAbsenceOverview(filter);
}
public BS.Shared.DataContracts.UrlaubskontoDC GetUrlaubskontoByEmployee(long empOid, int year)
{
return base.Channel.GetUrlaubskontoByEmployee(empOid, year);
}
public void UpdateIsChatActiveCustomerAPPCodeDC(long customerOid, int activeType)
{
base.Channel.UpdateIsChatActiveCustomerAPPCodeDC(customerOid, activeType);
@@ -7117,6 +7436,14 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAccountingService/UpdateSettlementInvoice", ReplyAction="http://tempuri.org/IAccountingService/UpdateSettlementInvoiceResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IAccountingService/UpdateSettlementInvoiceBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
void UpdateSettlementInvoice(System.Collections.Generic.List<BS.Shared.DataContracts.Settlement2DC> invoices);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAccountingService/LoadInvoiceNumberList", ReplyAction="http://tempuri.org/IAccountingService/LoadInvoiceNumberListResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IAccountingService/LoadInvoiceNumberListBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.InvoiceNumberDC> LoadInvoiceNumberList();
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAccountingService/UpdateInvoiceNumberList", ReplyAction="http://tempuri.org/IAccountingService/UpdateInvoiceNumberListResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IAccountingService/UpdateInvoiceNumberListBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.InvoiceNumberDC> UpdateInvoiceNumberList(System.Collections.Generic.List<BS.Shared.DataContracts.InvoiceNumberDC> dclist);
}
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
@@ -7282,6 +7609,16 @@ namespace BeWo.ServiceProxy
{
base.Channel.UpdateSettlementInvoice(invoices);
}
public System.Collections.Generic.List<BS.Shared.DataContracts.InvoiceNumberDC> LoadInvoiceNumberList()
{
return base.Channel.LoadInvoiceNumberList();
}
public System.Collections.Generic.List<BS.Shared.DataContracts.InvoiceNumberDC> UpdateInvoiceNumberList(System.Collections.Generic.List<BS.Shared.DataContracts.InvoiceNumberDC> dclist)
{
return base.Channel.UpdateInvoiceNumberList(dclist);
}
}
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
@@ -7336,6 +7673,17 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IReportService/CheckForAnyServiceRecordsWithDistanceValuesBeWo" +
"FaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
bool CheckForAnyServiceRecordsWithDistanceValues(System.Collections.Generic.List<long> customerOids, BS.Shared.Core.DateTimeSpan span);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IReportService/CreateEmployeeKilometerauswertung", ReplyAction="http://tempuri.org/IReportService/CreateEmployeeKilometerauswertungResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IReportService/CreateEmployeeKilometerauswertungBeWoFaultFault" +
"", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.IO.MemoryStream CreateEmployeeKilometerauswertung(long employeeOid, System.DateTime range);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IReportService/CreateKilometerauswertungForAllEmployees", ReplyAction="http://tempuri.org/IReportService/CreateKilometerauswertungForAllEmployeesRespons" +
"e")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IReportService/CreateKilometerauswertungForAllEmployeesBeWoFau" +
"ltFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.IO.MemoryStream CreateKilometerauswertungForAllEmployees(System.Collections.Generic.List<long> employeeOids, System.DateTime rangeDate);
}
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
@@ -7426,6 +7774,16 @@ namespace BeWo.ServiceProxy
{
return base.Channel.CheckForAnyServiceRecordsWithDistanceValues(customerOids, span);
}
public System.IO.MemoryStream CreateEmployeeKilometerauswertung(long employeeOid, System.DateTime range)
{
return base.Channel.CreateEmployeeKilometerauswertung(employeeOid, range);
}
public System.IO.MemoryStream CreateKilometerauswertungForAllEmployees(System.Collections.Generic.List<long> employeeOids, System.DateTime rangeDate)
{
return base.Channel.CreateKilometerauswertungForAllEmployees(employeeOids, rangeDate);
}
}
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]

View File

@@ -0,0 +1,168 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.ServiceModel;
using System.ServiceModel.Description;
using System.Text;
using System.Threading.Tasks;
namespace BeWo.ServiceProxy
{
public static class ServiceConfig
{
public static BasicHttpBinding BeWoBasicHttpBinding = new BasicHttpBinding()
{
Name = "BeWoBasicEndpoint",
CloseTimeout = new TimeSpan(0, 5, 0),
OpenTimeout = new TimeSpan(0, 5, 0),
ReceiveTimeout = new TimeSpan(0, 10, 0),
SendTimeout = new TimeSpan(0, 5, 0),
AllowCookies = false,
BypassProxyOnLocal = false,
HostNameComparisonMode = HostNameComparisonMode.StrongWildcard,
MaxBufferPoolSize = 524288,
MaxBufferSize = int.MaxValue,
MaxReceivedMessageSize = int.MaxValue,
TextEncoding = Encoding.UTF8,
TransferMode = TransferMode.Buffered,
UseDefaultWebProxy = true,
MessageEncoding = WSMessageEncoding.Text,
ReaderQuotas = new System.Xml.XmlDictionaryReaderQuotas
{
MaxDepth = 32,
MaxStringContentLength = int.MaxValue,
MaxArrayLength = int.MaxValue,
MaxBytesPerRead = 4096,
MaxNameTableCharCount = 16384
},
Security = new BasicHttpSecurity
{
Mode = BasicHttpSecurityMode.None
}
};
public static BasicHttpBinding BeWoStreamingBinding = new BasicHttpBinding()
{
Name = "BeWoStreamingEndpoint",
ReceiveTimeout = new TimeSpan(10, 0, 0),
SendTimeout = new TimeSpan(10, 0, 0),
MaxBufferSize = 65536,
MaxReceivedMessageSize = 67108864,
TextEncoding = Encoding.UTF8,
TransferMode = TransferMode.StreamedRequest,
UseDefaultWebProxy = true,
MessageEncoding = WSMessageEncoding.Text,
ReaderQuotas = new System.Xml.XmlDictionaryReaderQuotas
{
MaxDepth = 32,
MaxStringContentLength = 8192,
MaxArrayLength = 16384,
MaxBytesPerRead = 4096,
MaxNameTableCharCount = 16384
},
Security = new BasicHttpSecurity
{
Mode = BasicHttpSecurityMode.None
}
};
public static BasicHttpBinding QueryServiceBinding = new BasicHttpBinding()
{
Name = "BeWoBasicEndpoint",
CloseTimeout = new TimeSpan(0, 5, 0),
OpenTimeout = new TimeSpan(0, 5, 0),
ReceiveTimeout = new TimeSpan(0, 10, 0),
SendTimeout = new TimeSpan(0, 5, 0),
AllowCookies = false,
BypassProxyOnLocal = false,
HostNameComparisonMode = HostNameComparisonMode.StrongWildcard,
MaxBufferPoolSize = 524288,
MaxBufferSize = int.MaxValue,
MaxReceivedMessageSize = int.MaxValue,
TextEncoding = Encoding.UTF8,
TransferMode = TransferMode.Buffered,
UseDefaultWebProxy = true,
MessageEncoding = WSMessageEncoding.Text,
ReaderQuotas = new System.Xml.XmlDictionaryReaderQuotas
{
MaxDepth = 32,
MaxStringContentLength = 8192,
MaxArrayLength = 16384,
MaxBytesPerRead = 4096,
MaxNameTableCharCount = 16384
},
Security = new BasicHttpSecurity
{
Mode = BasicHttpSecurityMode.None
}
};
public static Dictionary<Type, BasicHttpBinding> HttpBindingConfiguration = new Dictionary<Type, BasicHttpBinding>
{
{ typeof(IQueryService), QueryServiceBinding},
{ typeof(IStreamingService), BeWoStreamingBinding},
{ typeof(IEmployeeService), BeWoBasicHttpBinding },
{ typeof(ICustomerService), BeWoBasicHttpBinding },
{ typeof(IUserService), BeWoBasicHttpBinding },
{ typeof(IValueListService), BeWoBasicHttpBinding },
{ typeof(IDownloadService), BeWoBasicHttpBinding },
{ typeof(IResourceService), BeWoBasicHttpBinding },
{ typeof(IOperationsService), BeWoBasicHttpBinding },
{ typeof(IAnalysisService), BeWoBasicHttpBinding },
{ typeof(IMailService), BeWoBasicHttpBinding },
{ typeof(IAccountingService), BeWoBasicHttpBinding},
{ typeof(IReportService), BeWoBasicHttpBinding}
};
public static Dictionary<Type, BasicHttpBinding> ServiceClient = new Dictionary<Type, BasicHttpBinding>
{
{ typeof(IQueryService), QueryServiceBinding},
{ typeof(IStreamingService), BeWoStreamingBinding},
{ typeof(IEmployeeService), BeWoBasicHttpBinding },
{ typeof(ICustomerService), BeWoBasicHttpBinding },
{ typeof(IUserService), BeWoBasicHttpBinding },
{ typeof(IValueListService), BeWoBasicHttpBinding },
{ typeof(IDownloadService), BeWoBasicHttpBinding },
{ typeof(IResourceService), BeWoBasicHttpBinding },
{ typeof(IOperationsService), BeWoBasicHttpBinding },
{ typeof(IAnalysisService), BeWoBasicHttpBinding },
{ typeof(IMailService), BeWoBasicHttpBinding },
{ typeof(IAccountingService), BeWoBasicHttpBinding},
{ typeof(IReportService), BeWoBasicHttpBinding}
};
public static TClient GetClient<TClient, TInterface>()
where TClient : ClientBase<TInterface>, TInterface, new()
where TInterface : class
{
TClient client = null;
try
{
client = new TClient();
}
catch (Exception e)
{
}
var binding = HttpBindingConfiguration[typeof(TInterface)];
var endpoint = ServiceFacade.EndpointAddresses[typeof(TInterface)];
client = //new UserServiceClient(binding, endpoint) as TClient;
(TClient)Activator.CreateInstance(typeof(TClient), new object[] {binding, endpoint});
if (typeof(IQueryService).IsAssignableFrom(typeof(TClient)))
{
}
else if (typeof(IUserService).IsAssignableFrom(typeof(TClient)))
{
}
return client;
}
}
}

View File

@@ -12,6 +12,7 @@ using BeWo.Security;
using BS.Shared;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using BS.SharedLauncher.Information;
namespace BeWo.ServiceProxy
{
@@ -38,7 +39,6 @@ namespace BeWo.ServiceProxy
public static void UpdateServerAddresses(String siteOfOrigin)
{
String serverName = siteOfOrigin;
var test = serverName.Substring(serverName.Length - 1, 1);
if (serverName.Substring(serverName.Length - 1, 1) != "/")
@@ -59,7 +59,6 @@ namespace BeWo.ServiceProxy
{ typeof(IAccountingService), new EndpointAddress(serverName + "AccountingService.svc") },
{ typeof(IReportService), new EndpointAddress(serverName + "ReportService.svc") }
};
}
static ServiceFacade()
@@ -248,7 +247,21 @@ namespace BeWo.ServiceProxy
ShowErrorMessage(e);
}
}
public static T DoWohnheimServiceSync<T>(Func<IOperationsService, T> pFunc)
{
try
{
return pFunc.Invoke(GetInstance<OperationsServiceClient, IOperationsService>());
}
catch (Exception e)
{
ShowErrorMessage(e);
}
return default(T);
}
public static void DoMailServiceAsync<T>(Func<IMailService, T> pFunc, Action<T> pCallBack)
{
DoAsync<MailServiceClient, IMailService, T>(pFunc, pCallBack, true);
@@ -531,9 +544,9 @@ namespace BeWo.ServiceProxy
{
long? oid = null;
if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.ViewAll) && !BeWoApp.LoggedOnUser.HasRight(UserRightType.CustomerView_View))
if (!MainSession.LoggedOnUser.HasRight(UserRightType.ViewAll) && !MainSession.LoggedOnUser.HasRight(UserRightType.CustomerView_View))
{
oid = BeWoApp.LoggedOnUser.Employee.EmployeeOid;
oid = MainSession.LoggedOnUser.Employee.EmployeeOid;
}
DoCustomerServiceAsync(
@@ -585,7 +598,7 @@ namespace BeWo.ServiceProxy
}
else
{
throw new NotImplementedException();
throw new NotImplementedException("#4342345669875");
}
}
@@ -777,18 +790,7 @@ namespace BeWo.ServiceProxy
EndWaiting();
}
}
private static void EndWaiting()
{
Monitor.Enter(_Lock);
if ((--_RunningAsyncs) == 0 && BeWoApp.MainControl != null)
{
BeWoApp.MainControl.EndWaiting();
}
Monitor.Exit(_Lock);
}
private static TInterface GetInstance<TClient, TInterface>()
where TClient : ClientBase<TInterface>, TInterface, new()
where TInterface : class
@@ -825,14 +827,14 @@ namespace BeWo.ServiceProxy
if (lClient == null)
{
lClient = new TClient();
//lClient = new TClient();
lClient = ServiceConfig.GetClient<TClient, TInterface>();
if(!_ProxyCache.ContainsKey(lClient.GetType()))
if (!_ProxyCache.ContainsKey(lClient.GetType()))
{
_ProxyCache.Add(typeof(TClient), lClient);
}
lClient.Endpoint.Behaviors.Add(new SecurityHeaderEndpointBehavior());
lClient.Endpoint.Behaviors.Add(new MultitenancyEndpointBehavior());
@@ -855,7 +857,7 @@ namespace BeWo.ServiceProxy
switch (lBeWoFault.FaultType)
{
case BeWoFaultType.Concurrency:
BeWoApp.ShowError(rowUpdated, e, false);
Session.ShowError(rowUpdated, e, false);
break;
case BeWoFaultType.DeleteNotPossible:
MessageBox.Show(lBeWoFault.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Asterisk);
@@ -864,22 +866,22 @@ namespace BeWo.ServiceProxy
MessageBox.Show(lBeWoFault.Message, "Warnung", MessageBoxButton.OK, MessageBoxImage.Asterisk);
return;
case BeWoFaultType.CustomWithoutDetails:
BeWoApp.ShowError(lBeWoFault.Message, e, false);
Session.ShowError(lBeWoFault.Message, e, false);
break;
default:
if (!String.IsNullOrEmpty(e.Message) && e.Message.IndexOf("Row was updated or deleted by another transaction") >= 0)
{
BeWoApp.ShowError(rowUpdated, e, false);
Session.ShowError(rowUpdated, e, false);
}
else
{
if (!String.IsNullOrEmpty(lBeWoFault.Message))
{
BeWoApp.ShowError(lBeWoFault.Message, e, true);
Session.ShowError(lBeWoFault.Message, e, true);
}
else
{
BeWoApp.ShowError(null, e, true);
Session.ShowError(null, e, true);
}
}
break;
@@ -887,20 +889,30 @@ namespace BeWo.ServiceProxy
}
else
{
BeWoApp.ShowError(null, e, true);
Session.ShowError(null, e, true);
}
}
private static void StartWaiting()
{
Monitor.Enter(_Lock);
if ((++_RunningAsyncs) == 1 && BeWoApp.MainControl != null)
if ((++_RunningAsyncs) == 1 && MainSession.MainPage != null)
{
BeWoApp.MainControl.StartWaiting();
MainSession.MainPage.StartWaiting();
}
Monitor.Exit(_Lock);
}
}
private static void EndWaiting()
{
Monitor.Enter(_Lock);
if ((--_RunningAsyncs) == 0 && MainSession.MainPage != null)
{
MainSession.MainPage.EndWaiting();
}
Monitor.Exit(_Lock);
}
}
}

47
BeWo/StartRoutine.cs Normal file
View File

@@ -0,0 +1,47 @@
using BeWo.MultiLanguage;
using BeWo.ServiceProxy;
using BeWo.View.Controls;
using BeWo.View.Search;
using BS.Shared.Translation;
using BS.SharedLauncher.Information;
using BS.SharedLauncher.Interfaces;
using BS.SharedLauncher.Windows;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.ServiceModel;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
namespace BeWo
{
public class StartRoutine : IStartRoutine
{
public void OnStartup(IBeWoWindow main, Application app)
{
//new MainSession(app);
ConnectionInformation.CoreServerAddress = ConnectionInformation.CoreServerAddressOrigin.ToString();
ServiceFacade.UpdateServerAddresses(ConnectionInformation.CoreServerAddress);
MainSession.LoggedOnUser = ServiceFacade.DoUserServiceSync(x => x.LoadUserByNameAndPassword(ConnectionInformation.Username, ConnectionInformation.Password));
MainSession.Mandator = ServiceFacade.DoOperationsServiceSync(x => x.GetMandator());
var dict = new MainDictionary();
app.Resources.MergedDictionaries.Add(dict);
Translator t = new Translator(new ServiceTranslator());
//var test = Session.FindResource("SupportConceptListBrush");
//throw new NotImplementedException("#342342342309");
//new SupportConceptSearchView();
new SingleSupportConceptSelectionControl();
}
}
}

View File

@@ -212,7 +212,7 @@
<ControlTemplate TargetType="{x:Type Expander}">
<Border SnapsToDevicePixels="true" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="3">
<DockPanel>
<ToggleButton localcore:BeWoWpfUtils.IsExpanderButtonVisible="{TemplateBinding localcore:BeWoWpfUtils.IsExpanderButtonVisible}" IsEnabled="{TemplateBinding localcore:BeWoWpfUtils.IsExpanderButtonVisible}" FocusVisualStyle="{StaticResource ExpanderHeaderFocusVisual}" Margin="1" MinHeight="0" MinWidth="0" x:Name="HeaderSite" Style="{DynamicResource AnalysisExpanderToggleButton}" Content="{TemplateBinding Header}" ContentTemplate="{TemplateBinding HeaderTemplate}" ContentTemplateSelector="{TemplateBinding HeaderTemplateSelector}" FontFamily="{TemplateBinding FontFamily}" FontSize="{TemplateBinding FontSize}" FontStretch="{TemplateBinding FontStretch}" FontStyle="{TemplateBinding FontStyle}" FontWeight="{TemplateBinding FontWeight}" Foreground="{TemplateBinding Foreground}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" Padding="{TemplateBinding Padding}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" IsChecked="{Binding Path=IsExpanded, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" DockPanel.Dock="Top" />
<ToggleButton localcore:BeWoWpfUtils.IsExpanderButtonVisible="{TemplateBinding localcore:BeWoWpfUtils.IsExpanderButtonVisible}" IsEnabled="{TemplateBinding localcore:BeWoWpfUtils.IsExpanderButtonVisible}" FocusVisualStyle="{DynamicResource ExpanderHeaderFocusVisual}" Margin="1" MinHeight="0" MinWidth="0" x:Name="HeaderSite" Style="{DynamicResource AnalysisExpanderToggleButton}" Content="{TemplateBinding Header}" ContentTemplate="{TemplateBinding HeaderTemplate}" ContentTemplateSelector="{TemplateBinding HeaderTemplateSelector}" FontFamily="{TemplateBinding FontFamily}" FontSize="{TemplateBinding FontSize}" FontStretch="{TemplateBinding FontStretch}" FontStyle="{TemplateBinding FontStyle}" FontWeight="{TemplateBinding FontWeight}" Foreground="{TemplateBinding Foreground}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" Padding="{TemplateBinding Padding}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" IsChecked="{Binding Path=IsExpanded, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" DockPanel.Dock="Top" />
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" x:Name="ExpandSite" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Focusable="false" Visibility="Collapsed" DockPanel.Dock="Bottom" />
</DockPanel>
</Border>
@@ -301,7 +301,7 @@
<DockPanel>
<Border SnapsToDevicePixels="true" Background="Transparent" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="0,0,0,1" DockPanel.Dock="Top">
<ToggleButton localcore:BeWoWpfUtils.IsExpanderButtonVisible="{TemplateBinding localcore:BeWoWpfUtils.IsExpanderButtonVisible}"
IsEnabled="{TemplateBinding localcore:BeWoWpfUtils.IsExpanderButtonVisible}" FocusVisualStyle="{StaticResource ExpanderHeaderFocusVisual}"
IsEnabled="{TemplateBinding localcore:BeWoWpfUtils.IsExpanderButtonVisible}" FocusVisualStyle="{DynamicResource ExpanderHeaderFocusVisual}"
Margin="1" MinHeight="0" MinWidth="0" x:Name="HeaderSite" Style="{DynamicResource TriangleToggleButton}" Content="{TemplateBinding Header}"
ContentTemplate="{TemplateBinding HeaderTemplate}" ContentTemplateSelector="{TemplateBinding HeaderTemplateSelector}"
FontFamily="{TemplateBinding FontFamily}" FontSize="{TemplateBinding FontSize}" FontStretch="{TemplateBinding FontStretch}"

View File

@@ -111,7 +111,7 @@
<Style TargetType="{x:Type TextBox}">
<Setter Property="BorderThickness" Value="1,1,1,1" />
<Setter Property="BorderBrush" Value="{StaticResource TextBoxBorderBrush}" />
<Setter Property="BorderBrush" Value="{DynamicResource TextBoxBorderBrush}" />
<Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="TextOptions.TextFormattingMode" Value="Display" />
<Style.Triggers>
@@ -132,13 +132,13 @@
<Style TargetType="{x:Type PasswordBox}">
<Setter Property="Padding" Value="3,2,3,0" />
<Setter Property="BorderThickness" Value="1,1,1,1" />
<Setter Property="BorderBrush" Value="{StaticResource TextBoxBorderBrush}" />
<Setter Property="BorderBrush" Value="{DynamicResource TextBoxBorderBrush}" />
<Setter Property="SnapsToDevicePixels" Value="True" />
</Style>
<Style TargetType="{x:Type uc:MaskedTextBox}">
<Setter Property="BorderThickness" Value="1,1,1,1" />
<Setter Property="BorderBrush" Value="{StaticResource TextBoxBorderBrush}" />
<Setter Property="BorderBrush" Value="{DynamicResource TextBoxBorderBrush}" />
<Setter Property="SnapsToDevicePixels" Value="True" />
</Style>
@@ -957,7 +957,7 @@
</Grid>
</Border>
<!-- <ToggleButton x:Name="Chrome" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" Style="{StaticResource ComboBoxReadonlyToggleButton}" Grid.ColumnSpan="2" IsChecked="{Binding Path=IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"/>-->
<!-- <ToggleButton x:Name="Chrome" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" Style="{DynamicResource ComboBoxReadonlyToggleButton}" Grid.ColumnSpan="2" IsChecked="{Binding Path=IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"/>-->
</Grid>
<ControlTemplate.Triggers>
@@ -990,8 +990,8 @@
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" SharedSizeGroup="ComboBoxButton" />
</Grid.ColumnDefinitions>
<TextBox Margin="{TemplateBinding Padding}" x:Name="PART_EditableTextBox" Style="{StaticResource ComboBoxEditableTextBox}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" Grid.Column="1" IsReadOnly="{Binding Path=IsReadOnly, RelativeSource={RelativeSource TemplatedParent}}" />
<ToggleButton Style="{StaticResource ComboBoxTransparentButtonStyle}" Background="{x:Null}" Grid.ColumnSpan="3"
<TextBox Margin="{TemplateBinding Padding}" x:Name="PART_EditableTextBox" Style="{DynamicResource ComboBoxEditableTextBox}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" Grid.Column="1" IsReadOnly="{Binding Path=IsReadOnly, RelativeSource={RelativeSource TemplatedParent}}" />
<ToggleButton Style="{DynamicResource ComboBoxTransparentButtonStyle}" Background="{x:Null}" Grid.ColumnSpan="3"
Grid.Column="0"
IsChecked="{Binding Path=IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" />
</Grid>
@@ -1025,10 +1025,10 @@
</ControlTemplate>
<Style x:Key="{x:Type ComboBox}" TargetType="{x:Type ComboBox}">
<Setter Property="FocusVisualStyle" Value="{StaticResource ComboBoxFocusVisual}" />
<Setter Property="FocusVisualStyle" Value="{DynamicResource ComboBoxFocusVisual}" />
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}" />
<Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.WindowBrushKey}}" />
<Setter Property="BorderBrush" Value="{StaticResource TextBoxBorderBrush}" />
<Setter Property="BorderBrush" Value="{DynamicResource TextBoxBorderBrush}" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="Padding" Value="1" />
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto" />
@@ -1095,7 +1095,7 @@
<Trigger Property="IsEditable" Value="true">
<Setter Property="IsTabStop" Value="false" />
<Setter Property="Padding" Value="0,1" />
<Setter Property="Template" Value="{StaticResource ComboBoxEditableTemplate}" />
<Setter Property="Template" Value="{DynamicResource ComboBoxEditableTemplate}" />
</Trigger>
</Style.Triggers>
</Style>
@@ -1683,7 +1683,7 @@
<Style TargetType="{x:Type uc:PopUpEdit}">
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" />
<Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.WindowBrushKey}}" />
<Setter Property="BorderBrush" Value="{StaticResource TextBoxBorderBrush}" />
<Setter Property="BorderBrush" Value="{DynamicResource TextBoxBorderBrush}" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="Padding" Value="3,3,0,0" />
<Setter Property="AllowDrop" Value="true" />
@@ -1731,10 +1731,10 @@
<Style x:Key="{x:Type uc:NullItemComboBox}" TargetType="{x:Type uc:NullItemComboBox}">
<Setter Property="FocusVisualStyle" Value="{StaticResource ComboBoxFocusVisual}" />
<Setter Property="FocusVisualStyle" Value="{DynamicResource ComboBoxFocusVisual}" />
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}" />
<Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.WindowBrushKey}}" />
<Setter Property="BorderBrush" Value="{StaticResource TextBoxBorderBrush}" />
<Setter Property="BorderBrush" Value="{DynamicResource TextBoxBorderBrush}" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="Padding" Value="1" />
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto" />
@@ -1807,7 +1807,7 @@
<Trigger Property="IsEditable" Value="true">
<Setter Property="IsTabStop" Value="false" />
<Setter Property="Padding" Value="0,1" />
<Setter Property="Template" Value="{StaticResource ComboBoxEditableTemplate}" />
<Setter Property="Template" Value="{DynamicResource ComboBoxEditableTemplate}" />
</Trigger>
</Style.Triggers>
</Style>
@@ -2004,7 +2004,7 @@
<ControlTemplate x:Key="NavigationListBoxTemplate" TargetType="{x:Type ListBox}">
<Border x:Name="Bd" SnapsToDevicePixels="True" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}">
<ScrollViewer Focusable="False" Padding="{TemplateBinding Padding}" Style="{StaticResource MainNavigationScrollViewer}">
<ScrollViewer Focusable="False" Padding="{TemplateBinding Padding}" Style="{DynamicResource MainNavigationScrollViewer}">
<ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</ScrollViewer>
</Border>
@@ -2012,7 +2012,7 @@
<Style x:Key="NavigationListStyle" TargetType="{x:Type ListBox}">
<Setter Property="Template" Value="{StaticResource NavigationListBoxTemplate}" />
<Setter Property="Template" Value="{DynamicResource NavigationListBoxTemplate}" />
<Setter Property="Padding" Value="2,0,2,2" />
</Style>
@@ -2206,7 +2206,7 @@
</LinearGradientBrush>
</Style.Resources>
<Setter Property="Template" Value="{StaticResource NavigationGroupTemplate}" />
<Setter Property="Template" Value="{DynamicResource NavigationGroupTemplate}" />
</Style>
<!-- EndRegion -->
@@ -2225,7 +2225,7 @@
</LinearGradientBrush>
</Style.Resources>
<Setter Property="Template" Value="{StaticResource NavigationGroupTemplate}" />
<Setter Property="Template" Value="{DynamicResource NavigationGroupTemplate}" />
</Style>
<!-- EndRegion -->
@@ -2325,7 +2325,7 @@
</LinearGradientBrush>
</Style.Resources>
<Setter Property="Template" Value="{StaticResource NavigationGroupTemplate}" />
<Setter Property="Template" Value="{DynamicResource NavigationGroupTemplate}" />
</Style>
<!-- EndRegion -->
@@ -2345,7 +2345,7 @@
</LinearGradientBrush>
</Style.Resources>
<Setter Property="Template" Value="{StaticResource NavigationGroupTemplate}" />
<Setter Property="Template" Value="{DynamicResource NavigationGroupTemplate}" />
</Style>
<!-- EndRegion -->
@@ -2364,7 +2364,7 @@
</LinearGradientBrush>
</Style.Resources>
<Setter Property="Template" Value="{StaticResource NavigationGroupTemplate}" />
<Setter Property="Template" Value="{DynamicResource NavigationGroupTemplate}" />
</Style>
<Style x:Key="OrganisationDetailStyle" TargetType="{x:Type ListBoxItem}">
@@ -2585,7 +2585,7 @@
</LinearGradientBrush>
</Style.Resources>
<Setter Property="Template" Value="{StaticResource NavigationGroupTemplate}" />
<Setter Property="Template" Value="{DynamicResource NavigationGroupTemplate}" />
</Style>
<Style x:Key="PersonDetailStyle" TargetType="{x:Type ListBoxItem}">
@@ -2790,6 +2790,8 @@
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="5,3,5,3" OpacityMask="{x:Null}" SnapsToDevicePixels="True" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" SharedSizeGroup="EmployeeDetailColumn1"/>
<ColumnDefinition Width="Auto" SharedSizeGroup="EmployeeDetailColumn2"/>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
@@ -2802,7 +2804,9 @@
</Grid.RowDefinitions>
<Image Grid.RowSpan="2" Grid.Row="0" Grid.Column="0" Source="..\Ressources\Icons\AnonymousUserDisabled.png" Margin="0,0,5,0" Height="30" VerticalAlignment="Center" HorizontalAlignment="Stretch" Width="Auto" RenderTransformOrigin="0.5, 0.5" />
<TextBlock x:Name="txtDetail1" Grid.Row="0" Grid.Column="1" Grid.RowSpan="2" Text="{Binding Path=DetailDescription}" FontSize="14" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" VerticalAlignment="Center" />
<TextBlock Grid.Row="0" Grid.RowSpan="2" Grid.Column="2" Margin="0,0,3,0" FontSize="12" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" VerticalAlignment="Center">
<TextBlock x:Name="txtDetail2" Grid.Row="0" Grid.Column="2" Grid.RowSpan="2" Text="{Binding Path=Details2}" Margin="16,0,0,0" FontSize="14" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" VerticalAlignment="Center" />
<TextBlock x:Name="txtDetail3" Grid.Row="0" Grid.Column="3" Grid.RowSpan="2" Text="{Binding Path=Details3}" Margin="16,0,0,0" FontSize="14" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" VerticalAlignment="Center" />
<TextBlock Grid.Row="0" Grid.RowSpan="2" Grid.Column="4" Margin="0,0,3,0" FontSize="12" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" VerticalAlignment="Center">
<TextBlock.Visibility>
<Binding Path="IsDeleted" ConverterParameter="Employee">
<Binding.Converter>
@@ -2814,7 +2818,7 @@
Anonymisieren
</Hyperlink>
</TextBlock>
<TextBlock Grid.Row="0" Grid.RowSpan="2" Grid.Column="3" Margin="0,0,3,0" FontSize="12" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" VerticalAlignment="Center">
<TextBlock Grid.Row="0" Grid.RowSpan="2" Grid.Column="5" Margin="0,0,3,0" FontSize="12" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" VerticalAlignment="Center">
<TextBlock.Visibility>
<Binding Path="IsDeleted" ConverterParameter="Employee">
<Binding.Converter>
@@ -2826,7 +2830,7 @@
Endgültig löschen
</Hyperlink>
</TextBlock>
<TextBlock Grid.Row="0" Grid.RowSpan="2" Grid.Column="4" FontSize="12" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" VerticalAlignment="Center">
<TextBlock Grid.Row="0" Grid.RowSpan="2" Grid.Column="6" FontSize="12" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" VerticalAlignment="Center">
<TextBlock.Visibility>
<Binding Path="IsDeleted" ConverterParameter="Employee">
<Binding.Converter>
@@ -2838,7 +2842,7 @@
Reaktivieren
</Hyperlink>
</TextBlock>
<TextBlock Grid.Row="0" Grid.RowSpan="2" Grid.Column="5" FontSize="12" Foreground="#FFFFFFFF" FontFamily="Microsoft Sans Serif" VerticalAlignment="Center" Margin="5,0,0,0">
<TextBlock Grid.Row="0" Grid.RowSpan="2" Grid.Column="7" FontSize="12" Foreground="#FFFFFFFF" FontFamily="Microsoft Sans Serif" VerticalAlignment="Center" Margin="5,0,0,0">
<Hyperlink Click="Hyperlink_Employee_Print_Click" TargetName="_NewWindow" Foreground="#FFFFFFFF" Tag="{Binding}">
Drucken
</Hyperlink>
@@ -2850,9 +2854,13 @@
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding Path=IsArchived}" Value="True">
<Setter Property="Foreground" TargetName="txtDetail1" Value="#FF808080" />
<Setter Property="Foreground" TargetName="txtDetail2" Value="#FF808080" />
<Setter Property="Foreground" TargetName="txtDetail3" Value="#FF808080" />
</DataTrigger>
<DataTrigger Binding="{Binding Path=IsDeleted}" Value="True">
<Setter Property="Foreground" TargetName="txtDetail1" Value="#FFF97E7B" />
<Setter Property="Foreground" TargetName="txtDetail2" Value="#FFF97E7B" />
<Setter Property="Foreground" TargetName="txtDetail3" Value="#FFF97E7B" />
</DataTrigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="OpacityMask" TargetName="ItemBorder">
@@ -2911,7 +2919,7 @@
</LinearGradientBrush>
</Style.Resources>
<Setter Property="Template" Value="{StaticResource NavigationGroupTemplate}" />
<Setter Property="Template" Value="{DynamicResource NavigationGroupTemplate}" />
</Style>
@@ -3011,7 +3019,7 @@
</LinearGradientBrush>
</Style.Resources>
<Setter Property="Template" Value="{StaticResource NavigationGroupTemplate}" />
<Setter Property="Template" Value="{DynamicResource NavigationGroupTemplate}" />
</Style>
<!-- EndRegion -->
@@ -3026,7 +3034,7 @@
</LinearGradientBrush>
</Style.Resources>
<Setter Property="Template" Value="{StaticResource NavigationGroupTemplate}" />
<Setter Property="Template" Value="{DynamicResource NavigationGroupTemplate}" />
</Style>
<!-- EndRegion -->
@@ -3043,7 +3051,7 @@
</LinearGradientBrush>
</Style.Resources>
<Setter Property="Template" Value="{StaticResource NavigationGroupTemplate}" />
<Setter Property="Template" Value="{DynamicResource NavigationGroupTemplate}" />
</Style>
<!-- EndRegion -->
@@ -3059,7 +3067,7 @@
</LinearGradientBrush>
</Style.Resources>
<Setter Property="Template" Value="{StaticResource NavigationGroupTemplate}" />
<Setter Property="Template" Value="{DynamicResource NavigationGroupTemplate}" />
</Style>
<!-- EndRegion -->
@@ -3075,7 +3083,7 @@
</LinearGradientBrush>
</Style.Resources>
<Setter Property="Template" Value="{StaticResource NavigationGroupTemplate}" />
<Setter Property="Template" Value="{DynamicResource NavigationGroupTemplate}" />
</Style>
<!-- EndRegion -->
@@ -3091,7 +3099,7 @@
</LinearGradientBrush>
</Style.Resources>
<Setter Property="Template" Value="{StaticResource NavigationGroupTemplate}" />
<Setter Property="Template" Value="{DynamicResource NavigationGroupTemplate}" />
</Style>
<!-- EndRegion -->
@@ -3108,7 +3116,7 @@
</LinearGradientBrush>
</Style.Resources>
<Setter Property="Template" Value="{StaticResource NavigationGroupTemplate}" />
<Setter Property="Template" Value="{DynamicResource NavigationGroupTemplate}" />
</Style>
<!-- EndRegion -->
@@ -3128,7 +3136,7 @@
</LinearGradientBrush>
</Style.Resources>
<Setter Property="Template" Value="{StaticResource NavigationGroupTemplate}" />
<Setter Property="Template" Value="{DynamicResource NavigationGroupTemplate}" />
</Style>
<!-- EndRegion -->
@@ -3148,7 +3156,7 @@
</LinearGradientBrush>
</Style.Resources>
<Setter Property="Template" Value="{StaticResource NavigationGroupTemplate}" />
<Setter Property="Template" Value="{DynamicResource NavigationGroupTemplate}" />
</Style>
<!-- EndRegion -->
@@ -3164,7 +3172,7 @@
</LinearGradientBrush>
</Style.Resources>
<Setter Property="Template" Value="{StaticResource NavigationGroupTemplate}" />
<Setter Property="Template" Value="{DynamicResource NavigationGroupTemplate}" />
</Style>
<!-- EndRegion -->
@@ -3180,10 +3188,7 @@
<Canvas Grid.Column="1" Width="14" Margin="2,2,2,2">
<Ellipse Stroke="#FF7C7C7C" Height="10" Width="10" StrokeThickness="2" Fill="{x:Null}" />
<Line Fill="#FFFFFFFF" Stretch="Fill" Stroke="#FF7C7C7C" Canvas.Left="6" Canvas.Top="7.4" Y1="0" Y2="5" StrokeThickness="3" X2="4" />
</Canvas>
</Grid>
</Border>
@@ -3258,7 +3263,7 @@
<SolidColorBrush x:Key="TabItemHotTextBrush" Color="#FFAB4A07" />
<Style x:Key="ObjectEditTabItemStyle" TargetType="{x:Type TabItem}">
<Setter Property="Foreground" Value="{StaticResource TabItemTextBrush}" />
<Setter Property="Foreground" Value="{DynamicResource TabItemTextBrush}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabItem}">
@@ -3278,10 +3283,10 @@
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Control.Foreground" TargetName="TabItemText" Value="{StaticResource TabItemHotTextBrush}" />
<Setter Property="Control.Foreground" TargetName="TabItemText" Value="{DynamicResource TabItemHotTextBrush}" />
</Trigger>
<Trigger Property="IsSelected" Value="true">
<Setter Property="Control.Foreground" TargetName="TabItemText" Value="{StaticResource TabItemSelectedTextBrush}" />
<Setter Property="Control.Foreground" TargetName="TabItemText" Value="{DynamicResource TabItemSelectedTextBrush}" />
<Setter Property="Visibility" TargetName="SelectionMarker" Value="Visible" />
</Trigger>
</ControlTemplate.Triggers>
@@ -3291,12 +3296,12 @@
</Style>
<Style x:Key="ObjectEditTabControl" TargetType="{x:Type TabControl}">
<Setter Property="Foreground" Value="{StaticResource TabItemSelectedTextBrush}" />
<Setter Property="Foreground" Value="{DynamicResource TabItemSelectedTextBrush}" />
<Setter Property="HorizontalContentAlignment" Value="Center" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="ItemContainerStyle" Value="{StaticResource ObjectEditTabItemStyle}" />
<Setter Property="ItemContainerStyle" Value="{DynamicResource ObjectEditTabItemStyle}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabControl}">
@@ -3365,7 +3370,7 @@
<Style x:Key="ObjectEditGroupBoxHeaderBorderStyle" TargetType="{x:Type Border}">
<Setter Property="TextElement.FontSize" Value="16" />
<Setter Property="TextElement.Foreground" Value="{StaticResource TabItemHotTextBrush}" />
<Setter Property="TextElement.Foreground" Value="{DynamicResource TabItemHotTextBrush}" />
<Setter Property="TextElement.FontFamily" Value="Microsoft Sans Serif" />
<Setter Property="Padding" Value="3,0,3,0" />
<Setter Property="MinHeight" Value="20" />
@@ -3409,7 +3414,7 @@
<Setter Property="VerticalContentAlignment" Value="{Binding Path=VerticalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}" />
<Setter Property="Padding" Value="1,0,0,0" />
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" />
<Setter Property="FocusVisualStyle" Value="{StaticResource TreeViewItemFocusVisual}" />
<Setter Property="FocusVisualStyle" Value="{DynamicResource TreeViewItemFocusVisual}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TreeViewItem}">
@@ -3425,7 +3430,7 @@
<RowDefinition Height="Auto" />
<RowDefinition />
</Grid.RowDefinitions>
<ToggleButton x:Name="Expander" Style="{StaticResource ExpandCollapseToggleStyle}" ClickMode="Press" IsChecked="{Binding Path=IsExpanded, RelativeSource={RelativeSource TemplatedParent}}" />
<ToggleButton x:Name="Expander" Style="{DynamicResource ExpandCollapseToggleStyle}" ClickMode="Press" IsChecked="{Binding Path=IsExpanded, RelativeSource={RelativeSource TemplatedParent}}" />
<Border x:Name="Bd" Margin="0 2" SnapsToDevicePixels="true" Grid.Row="0" Grid.Column="1" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Padding="{TemplateBinding Padding}" CornerRadius="5,5,5,5" Background="#FF000000">
<Border.OpacityMask>
@@ -3560,7 +3565,7 @@
</Grid>
</Border>
<!-- <ToggleButton x:Name="Chrome" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" Style="{StaticResource ComboBoxReadonlyToggleButton}" Grid.ColumnSpan="2" IsChecked="{Binding Path=IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"/>-->
<!-- <ToggleButton x:Name="Chrome" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" Style="{DynamicResource ComboBoxReadonlyToggleButton}" Grid.ColumnSpan="2" IsChecked="{Binding Path=IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"/>-->
</Grid>
<ControlTemplate.Triggers>
@@ -3989,7 +3994,7 @@
</Grid>
</Border>
<!-- <ToggleButton x:Name="Chrome" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" Style="{StaticResource ComboBoxReadonlyToggleButton}" Grid.ColumnSpan="2" IsChecked="{Binding Path=IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"/>-->
<!-- <ToggleButton x:Name="Chrome" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" Style="{DynamicResource ComboBoxReadonlyToggleButton}" Grid.ColumnSpan="2" IsChecked="{Binding Path=IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"/>-->
</Grid>
<ControlTemplate.Triggers>
@@ -4075,7 +4080,7 @@
</Grid>
</Border>
<!-- <ToggleButton x:Name="Chrome" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" Style="{StaticResource ComboBoxReadonlyToggleButton}" Grid.ColumnSpan="2" IsChecked="{Binding Path=IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"/>-->
<!-- <ToggleButton x:Name="Chrome" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" Style="{DynamicResource ComboBoxReadonlyToggleButton}" Grid.ColumnSpan="2" IsChecked="{Binding Path=IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"/>-->
</Grid>
<ControlTemplate.Triggers>
@@ -4157,7 +4162,7 @@
</Grid>
</Border>
<!-- <ToggleButton x:Name="Chrome" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" Style="{StaticResource ComboBoxReadonlyToggleButton}" Grid.ColumnSpan="2" IsChecked="{Binding Path=IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"/>-->
<!-- <ToggleButton x:Name="Chrome" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" Style="{DynamicResource ComboBoxReadonlyToggleButton}" Grid.ColumnSpan="2" IsChecked="{Binding Path=IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"/>-->
</Grid>
<ControlTemplate.Triggers>
@@ -4190,7 +4195,7 @@
</Style>
</Setter.Value>
</Setter>
<Setter Property="Foreground" Value="{StaticResource LightOrangeBrush}" />
<Setter Property="Foreground" Value="{DynamicResource LightOrangeBrush}" />
<Setter Property="Margin" Value="0,0,0,0" />
<Setter Property="Padding" Value="0,0,0,0" />
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto" />
@@ -4698,7 +4703,7 @@
</Grid>
</Border>
<!-- <ToggleButton x:Name="Chrome" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" Style="{StaticResource ComboBoxReadonlyToggleButton}" Grid.ColumnSpan="2" IsChecked="{Binding Path=IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"/>-->
<!-- <ToggleButton x:Name="Chrome" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" Style="{DynamicResource ComboBoxReadonlyToggleButton}" Grid.ColumnSpan="2" IsChecked="{Binding Path=IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"/>-->
</Grid>
<ControlTemplate.Triggers>

View File

@@ -18,7 +18,7 @@ namespace BeWo.Styles
private void Hyperlink_Organisation_Reaktivieren_Click(object sender, RoutedEventArgs e)
{
var av = BeWoApp.MainControl.ActiveView;
var av = MainSession.MainPage.ActiveView;
var orgaNavView = (OrganisationNavigationView) av;
@@ -31,7 +31,7 @@ namespace BeWo.Styles
private void Hyperlink_Person_Reaktivieren_Click(object sender, RoutedEventArgs e)
{
var av = BeWoApp.MainControl.ActiveView;
var av = MainSession.MainPage.ActiveView;
var personNavView = (PersonNavigationView) av;
@@ -44,7 +44,7 @@ namespace BeWo.Styles
private void Hyperlink_Person_Delete_For_Good_Click(object sender, RoutedEventArgs e)
{
var av = BeWoApp.MainControl.ActiveView;
var av = MainSession.MainPage.ActiveView;
var personNavView = (PersonNavigationView) av;
@@ -57,7 +57,7 @@ namespace BeWo.Styles
private void Hyperlink_Employee_Reaktivieren_Click(object sender, RoutedEventArgs e)
{
var av = BeWoApp.MainControl.ActiveView;
var av = MainSession.MainPage.ActiveView;
var employeeNavView = (EmployeeNavigationView) av;
@@ -70,7 +70,7 @@ namespace BeWo.Styles
private void Hyperlink_Employee_Delete_For_Good_Click(object sender, RoutedEventArgs e)
{
var av = BeWoApp.MainControl.ActiveView;
var av = MainSession.MainPage.ActiveView;
var employeeNavView = (EmployeeNavigationView) av;
@@ -83,7 +83,7 @@ namespace BeWo.Styles
private void Hyperlink_Employee_Anonymize_Click(object sender, RoutedEventArgs e)
{
var av = BeWoApp.MainControl.ActiveView;
var av = MainSession.MainPage.ActiveView;
var employeeNavView = (EmployeeNavigationView) av;
@@ -96,7 +96,7 @@ namespace BeWo.Styles
private void Hyperlink_Employee_Print_Click(object sender, RoutedEventArgs e)
{
var av = BeWoApp.MainControl.ActiveView;
var av = MainSession.MainPage.ActiveView;
var employeeNavView = (EmployeeNavigationView)av;

View File

@@ -7,7 +7,7 @@
AllowsTransparency="True"
Background="Transparent" ResizeMode="NoResize" >
<Grid>
<GroupBox Style="{StaticResource MainContentGroupBoxWithoutMaximizeBtnStyle}" Header="Download" MouseLeftButtonDown="UIElement_OnMouseLeftButtonDown">
<GroupBox Style="{DynamicResource MainContentGroupBoxWithoutMaximizeBtnStyle}" Header="Download" MouseLeftButtonDown="UIElement_OnMouseLeftButtonDown">
<Grid Background="{DynamicResource ObjectEditBackgroundBrush}">
<Grid.RowDefinitions>
<RowDefinition Height="*" />

View File

@@ -37,7 +37,7 @@ namespace BeWo
{
InitializeComponent();
InitCommandBindings();
Owner = GetWindow(BeWoApp.MainControl.ActiveView);
Owner = GetWindow(MainSession.MainPage.ActiveView);
schalter = iterator;
if (schalter == 1)
{

View File

@@ -73,7 +73,7 @@ namespace BeWo.Validation
break;
case ValidationRules.EmptyNoticeInNewServiceRecordsAllowed:
if (BeWoApp.AppSettings.IsServiceRecordNoticeMandatory)
if (MainSession.AppSettings.IsServiceRecordNoticeMandatory)
{
if (pValue is string)
{

View File

@@ -9,47 +9,53 @@
xmlns:validation="clr-namespace:BeWo.Validation"
xmlns:core="clr-namespace:BS.Shared.Core;assembly=BS.Shared"
xmlns:controls="clr-namespace:BeWo.View.Controls"
xmlns:conv="clr-namespace:BeWo.Converter"
Height="Auto" Width="Auto" HorizontalAlignment="Stretch"
mc:Ignorable="d" VerticalAlignment="Stretch" Focusable="True">
<view:BeWoView.Resources>
<conv:CollectionCountToBoolConverter x:Key="CollectionCountToBoolConverter" />
<conv:CollectionCountToVisibilityConverter x:Key="CollectionCountToVisibilityConverter" />
<conv:BoolVisibilityMultiConverter x:Key="BoolVisibilityMultiConverter" />
<Style x:Key="bargeldkassenListBoxItemStyle" TargetType="{x:Type ListBoxItem}">
<Setter Property="Background" Value="#00FFFFFF" />
<Setter Property="HorizontalContentAlignment" Value="{Binding Path=HorizontalContentAlignment, RelativeSource={RelativeSource FindAncestor, AncestorLevel=1, AncestorType={x:Type ItemsControl}}}" />
<Setter Property="VerticalContentAlignment" Value="{Binding Path=VerticalContentAlignment, RelativeSource={RelativeSource FindAncestor, AncestorLevel=1, AncestorType={x:Type ItemsControl}}}" />
<Setter Property="Padding" Value="2,0,0,0" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListBoxItem}">
<Border x:Name="Bd" SnapsToDevicePixels="True" Background="{TemplateBinding Background}"
<Setter Property="Background" Value="#00FFFFFF" />
<Setter Property="HorizontalContentAlignment" Value="{Binding Path=HorizontalContentAlignment, RelativeSource={RelativeSource FindAncestor, AncestorLevel=1, AncestorType={x:Type ItemsControl}}}" />
<Setter Property="VerticalContentAlignment" Value="{Binding Path=VerticalContentAlignment, RelativeSource={RelativeSource FindAncestor, AncestorLevel=1, AncestorType={x:Type ItemsControl}}}" />
<Setter Property="Padding" Value="2,0,0,0" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListBoxItem}">
<Border x:Name="Bd" SnapsToDevicePixels="True" Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}" Padding="{TemplateBinding Padding}">
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
Content="{TemplateBinding Content}"
ContentStringFormat="{TemplateBinding ContentStringFormat}"
ContentTemplate="{TemplateBinding ContentTemplate}" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="HyperlinkStyle" TargetType="{x:Type Hyperlink}">
<Setter Property="Foreground" Value="#FF2B508B" />
<!--<Style.Triggers>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="HyperlinkStyle" TargetType="{x:Type Hyperlink}">
<Setter Property="Foreground" Value="#FF2B508B" />
<!--<Style.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Foreground" Value="#FFAFAFAF" />
</Trigger>
</Style.Triggers>-->
</Style>
</Style>
</view:BeWoView.Resources>
<GroupBox Header="Bargeldkassen" Style="{StaticResource ObjectEditGroupBox}">
<GroupBox Header="Bargeldkassen" Style="{DynamicResource ObjectEditGroupBox}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
@@ -256,7 +262,7 @@
SelectedItem="{Binding Path=PreselectedYear, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}, Mode=OneWay}"/>-->
<TextBlock Grid.Row="0" Grid.Column="7" Margin="3" FontSize="14" VerticalAlignment="Center" PreviewMouseLeftButtonDown="KlassenbuchLinkOnPreviewMouseLeftButtonDown" Tag="{Binding}" IsEnabled="{Binding Path=Bargeldtransaktionen.VMList.Count, Converter={StaticResource CollectionCountToBoolConverter}, UpdateSourceTrigger=PropertyChanged}">
<Hyperlink x:Name="LinkKassenbuchDrucken" TargetName="_NewWindow" Style="{StaticResource HyperlinkStyle}">
<Hyperlink x:Name="LinkKassenbuchDrucken" TargetName="_NewWindow" Style="{DynamicResource HyperlinkStyle}">
<Run Text="Kassenbuch drucken" />
</Hyperlink>
</TextBlock>
@@ -264,7 +270,7 @@
<GroupBox Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="10" x:Name="BlubbTest" Style="{StaticResource ObjectEditGroupBox}" Header="Ein- und Auszahlungen">
<GroupBox Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="10" x:Name="BlubbTest" Style="{DynamicResource ObjectEditGroupBox}" Header="Ein- und Auszahlungen">
<dxg:GridControl Name="grid_bargeldtransaktionen" Tag="{Binding}" MaxWidth="{Binding ElementName=BlubbTest, Path=ActualWidth}" ItemsSource="{Binding Path=Bargeldtransaktionen.VMList}" CustomColumnSort="GridBargeldtransaktionenOnCustomColumnSort">
<dxg:GridControl.Columns>
<dxg:GridColumn Header="" FixedWidth="True" Width="24" ReadOnly="True" Visible="{Binding Path=DarfBargeldtransaktionenBearbeiten, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}">

View File

@@ -153,19 +153,19 @@ namespace BeWo.View
if (currentObjectTid == TableID.Customer)
{
editRight = BeWoApp.LoggedOnUser.HasRight(UserRightType.BargeldverwaltungBearbeiten) || BeWoApp.LoggedOnUser.HasRight(UserRightType.EditAll);
editRightAsDefaultBoolean = (DefaultBoolean)(Convert.ToInt32((BeWoApp.LoggedOnUser.HasRight(UserRightType.BargeldverwaltungBearbeiten)) || BeWoApp.LoggedOnUser.HasRight(UserRightType.EditAll)) + 1);
editRight = MainSession.LoggedOnUser.HasRight(UserRightType.BargeldverwaltungBearbeiten) || MainSession.LoggedOnUser.HasRight(UserRightType.EditAll);
editRightAsDefaultBoolean = (DefaultBoolean)(Convert.ToInt32((MainSession.LoggedOnUser.HasRight(UserRightType.BargeldverwaltungBearbeiten)) || MainSession.LoggedOnUser.HasRight(UserRightType.EditAll)) + 1);
deleteRight = BeWoApp.LoggedOnUser.HasRight(UserRightType.BargeldverwaltungLoeschen) || BeWoApp.LoggedOnUser.HasRight(UserRightType.DeleteAll);
createRight = BeWoApp.LoggedOnUser.HasRight(UserRightType.BargeldverwaltungAnlegen) || BeWoApp.LoggedOnUser.HasRight(UserRightType.CreateAll);
deleteRight = MainSession.LoggedOnUser.HasRight(UserRightType.BargeldverwaltungLoeschen) || MainSession.LoggedOnUser.HasRight(UserRightType.DeleteAll);
createRight = MainSession.LoggedOnUser.HasRight(UserRightType.BargeldverwaltungAnlegen) || MainSession.LoggedOnUser.HasRight(UserRightType.CreateAll);
}
else
{
editRight = BeWoApp.LoggedOnUser.HasRight(UserRightType.BargeldverwaltungFinanzenBearbeiten) || BeWoApp.LoggedOnUser.HasRight(UserRightType.EditAll);
editRightAsDefaultBoolean = (DefaultBoolean)(Convert.ToInt32((BeWoApp.LoggedOnUser.HasRight(UserRightType.BargeldverwaltungFinanzenBearbeiten)) || BeWoApp.LoggedOnUser.HasRight(UserRightType.EditAll)) + 1);
editRight = MainSession.LoggedOnUser.HasRight(UserRightType.BargeldverwaltungFinanzenBearbeiten) || MainSession.LoggedOnUser.HasRight(UserRightType.EditAll);
editRightAsDefaultBoolean = (DefaultBoolean)(Convert.ToInt32((MainSession.LoggedOnUser.HasRight(UserRightType.BargeldverwaltungFinanzenBearbeiten)) || MainSession.LoggedOnUser.HasRight(UserRightType.EditAll)) + 1);
deleteRight = BeWoApp.LoggedOnUser.HasRight(UserRightType.BargeldverwaltungFinanzenLoeschen) || BeWoApp.LoggedOnUser.HasRight(UserRightType.DeleteAll);
createRight = BeWoApp.LoggedOnUser.HasRight(UserRightType.BargeldverwaltungFinanzenAnlegen) || BeWoApp.LoggedOnUser.HasRight(UserRightType.CreateAll);
deleteRight = MainSession.LoggedOnUser.HasRight(UserRightType.BargeldverwaltungFinanzenLoeschen) || MainSession.LoggedOnUser.HasRight(UserRightType.DeleteAll);
createRight = MainSession.LoggedOnUser.HasRight(UserRightType.BargeldverwaltungFinanzenAnlegen) || MainSession.LoggedOnUser.HasRight(UserRightType.CreateAll);
}
darfBargeldTransaktionenBearbeiten = editRight;

View File

@@ -2,15 +2,16 @@
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:conv="clr-namespace:BeWo.Converter"
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">
<localView:BeWoView.Resources>
<ContextMenu x:Key="cm" MenuItem.Click="ContextMenu_Click" Opened="ContextMenu_Opened">
<localView:BeWoView.Resources>
<conv:DownloadURLConverter x:Key="DownloadURLConverter" />
<ContextMenu x:Key="cm" MenuItem.Click="ContextMenu_Click" Opened="ContextMenu_Opened">
<MenuItem Header="Neu" >
<MenuItem.Icon>
<Image Source="..\Ressources\Icons\Add24.png"/>
@@ -49,7 +50,7 @@
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<GroupBox Grid.ColumnSpan="2" Padding="5" Style="{StaticResource ObjectEditGroupBox}" Header="Neue Datei hochladen">
<GroupBox Grid.ColumnSpan="2" Padding="5" Style="{DynamicResource ObjectEditGroupBox}" Header="Neue Datei hochladen">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
@@ -123,14 +124,13 @@
</Grid.ColumnDefinitions>
<Image x:Name="imageFolder" Source="..\Ressources\Icons\Folder.png"/>
<Image x:Name="imageFile" Source="..\Ressources\Icons\Document48.png"/>
<TextBlock x:Name="labelFrom" Grid.Column="1" Text="Datei xyz.txt" Margin="3" />
</Grid>
</Border>
<TextBlock x:Name="labelTo" Grid.Row="1" Grid.ColumnSpan="2" Text="-> Nach verschieben" Margin="3" Foreground="Blue" Opacity="1"/>
</Grid>
</Canvas>
</Canvas>
</Grid>
</localView:BeWoView>

View File

@@ -21,6 +21,7 @@ using BS.Shared;
using BS.Shared.Core;
using DevExpress.Xpf.Grid;
using Microsoft.Win32;
using BS.SharedLauncher.Information;
namespace BeWo.View
{
@@ -98,7 +99,7 @@ namespace BeWo.View
// vm.SubFolders[i].Files.Add(new FileAttachmentVM(new FileAttachmentDC()) { FileName = "File " + i + " " + j, Folder = vm.SubFolders[i] });
// }
//}
if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.DocumentsDownloadAll))
if (!MainSession.LoggedOnUser.HasRight(UserRightType.DocumentsDownloadAll))
{
ColumnDownload.Visible = false;
ColumnDownload.ShowInColumnChooser = false;
@@ -587,9 +588,9 @@ namespace BeWo.View
var tmp = Path.GetTempPath() + Path.GetFileName(lFA.URL);
BeWoApp.CurrentBeWo.DocumentWatcher.FileCreated -= DocumentWatcher_FileCreated;
BeWoApp.CurrentBeWo.DocumentWatcher.FileDeleted -= DocumentWatcher_FileDeleted;
BeWoApp.CurrentBeWo.DocumentWatcher.StoppeDateiUeberwachung(tmp);
MainSession.DocumentWatcher.FileCreated -= DocumentWatcher_FileCreated;
MainSession.DocumentWatcher.FileDeleted -= DocumentWatcher_FileDeleted;
MainSession.DocumentWatcher.StoppeDateiUeberwachung(tmp);
if (File.Exists(tmp))
File.Delete(tmp);
@@ -603,9 +604,9 @@ namespace BeWo.View
BeWoApp.CurrentBeWo.DocumentWatcher.StarteDateiUeberwachung(new DocumentWatcherInfo(tmp, cb.Description, cb.BeWoFolderOid, cb.FileAttachmentOid, cb.FileAttachmentVersion, _ObjectOid, _ObjectTid));
BeWoApp.CurrentBeWo.DocumentWatcher.FileCreated += DocumentWatcher_FileCreated;
BeWoApp.CurrentBeWo.DocumentWatcher.FileDeleted += DocumentWatcher_FileDeleted;
MainSession.DocumentWatcher.StarteDateiUeberwachung(new DocumentWatcherInfo(tmp, cb.Description, cb.BeWoFolderOid, cb.FileAttachmentOid, cb.FileAttachmentVersion, _ObjectOid, _ObjectTid));
MainSession.DocumentWatcher.FileCreated += DocumentWatcher_FileCreated;
MainSession.DocumentWatcher.FileDeleted += DocumentWatcher_FileDeleted;
return;
@@ -699,7 +700,8 @@ namespace BeWo.View
if (folder != null)
{
var newFileVM = new FileAttachmentVM(fileAttachment);
BeWoApp.CurrentBeWo.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (Action)delegate
Session.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (Action)delegate
{
folder.Files.Add(newFileVM);
newFileVM.Folder = folder;

View File

@@ -78,11 +78,11 @@ namespace BeWo.View
}
}
protected MainControl MainControl
protected MainPage MainPage
{
get
{
return BeWoApp.MainControl;
return MainSession.MainPage;
}
}
@@ -131,7 +131,7 @@ namespace BeWo.View
public bool SaveData()
{
if (!BeWoApp.HasLoggedOnUserRight(this.GetSaveDemands()))
if (!MainSession.HasLoggedOnUserRight(this.GetSaveDemands()))
{
MessageBox.Show("Sie besitzen nicht die nötigen Rechte um zu speichern. Bitte wenden Sie sich an den Administrator!", "Autorisierung fehlgeschlagen", MessageBoxButton.OK, MessageBoxImage.Warning);
return false;
@@ -192,12 +192,12 @@ namespace BeWo.View
protected virtual void popup_Closed(object sender, EventArgs e)
{
this.MainControl.AnimateOpacity(1, 100);
this.MainPage.AnimateOpacity(1, 100);
}
protected virtual void popup_Opened(object sender, EventArgs e)
{
this.MainControl.AnimateOpacity(0.5, 200);
this.MainPage.AnimateOpacity(0.5, 200);
}
}
}

View File

@@ -53,7 +53,11 @@ namespace BeWo.View
{
try
{
DragMove();
var p = e.GetPosition(this);
if (p.Y <= 40)
{
DragMove();
}
}
catch (Exception){}
}

View File

@@ -4,9 +4,14 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns:conv="clr-namespace:BeWo.Converter"
xmlns:clientPartials="clr-namespace:BS.Shared.DataContracts.ClientPartials;assembly=BS.Shared"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<UserControl.Resources>
<conv:BoolVisibilityConverter x:Key="BoolVisibilityConverter" />
<conv:FilterDCConverter x:Key="FilterDCConverter" />
</UserControl.Resources>
<Grid>
<StackPanel x:Name="ComboBox_TreeView_Imitation" Orientation="Horizontal" Margin="3,0,3,3" Visibility="{Binding Path=PrototypeVM.IsGoalTreeVisible, Converter={StaticResource BoolVisibilityConverter}}">
<TextBox x:Name="Imitationheader" Width="180" HorizontalAlignment="Left" Padding="3" Cursor="Arrow" VerticalContentAlignment="Center" Height="23" IsReadOnly="True" Visibility="{Binding Path=PrototypeVM.IsGoalTreeVisible, Converter={StaticResource BoolVisibilityConverter}}" />
@@ -149,16 +154,10 @@
</Border>
</Popup>
<Popup x:Name="RatingPopup" StaysOpen="False" Placement="MousePoint" Width="400" Height="200" >
<Border Background="{StaticResource ObjectEditBackgroundBrush}">
<StackPanel Orientation="Vertical" Margin="5">
<RadioButton x:Name="RadioButtonNone" Margin="3" FontSize="12" Click="RatingButton_OnClick" Tag="-1" Content="Keine Bewertung" IsChecked="True"></RadioButton>
<RadioButton x:Name="RadioButton0" Margin="3" FontSize="12" Click="RatingButton_OnClick" Tag="0" Content="xxx.0 - Problem nicht vorhanden (ohne, kein, unerheblich ...) 0 bis 4 %"></RadioButton>
<RadioButton x:Name="RadioButton1" Margin="3" FontSize="12" Click="RatingButton_OnClick" Tag="1" Content="xxx.1 - Problem leicht ausgeprägt (schwach, gering ...) 5 bis 24 %"></RadioButton>
<RadioButton x:Name="RadioButton2" Margin="3" FontSize="12" Click="RatingButton_OnClick" Tag="2" Content="xxx.2 - Problem mäßig ausgeprägt (mittel, ziemlich ...) 25 bis 49 %"></RadioButton>
<RadioButton x:Name="RadioButton3" Margin="3" FontSize="12" Click="RatingButton_OnClick" Tag="3" Content="xxx.3 - Problem erheblich ausgeprägt (hoch, äußerst ...) 50 bis 95 %"></RadioButton>
<RadioButton x:Name="RadioButton4" Margin="3" FontSize="12" Click="RatingButton_OnClick" Tag="4" Content="xxx.4 - Problem voll ausgeprägt (komplett, total ...) 96 bis 100 %"></RadioButton>
<RadioButton x:Name="RadioButton8" Margin="3" FontSize="12" Click="RatingButton_OnClick" Tag="8" Content="xxx.8 - Nicht spezifiziert"></RadioButton>
<RadioButton x:Name="RadioButton9" Margin="3" FontSize="12" Click="RatingButton_OnClick" Tag="9" Content="xxx.9 - Nicht anwendbar"></RadioButton>
<Border Background="{DynamicResource ObjectEditBackgroundBrush}">
<StackPanel x:Name="ratingPanel" Orientation="Vertical" Margin="5">
<RadioButton x:Name="RadioButtonNone" Margin="3" FontSize="12" Click="RatingButton_OnClick" Content="Keine Bewertung" IsChecked="True"></RadioButton>
</StackPanel>
</Border>

View File

@@ -5,7 +5,7 @@ using System.Windows;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Input;
using BeWo.Core.Service;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.ClientPartials;
@@ -15,6 +15,22 @@ namespace BeWo.View.Controls
{
private SupportConceptGoalDC lastCheckedSupportConceptGoal;
public static readonly DependencyProperty ShowRatingPanelProperty = DependencyProperty.Register("ShowRatingPanel", typeof(bool), typeof(ComboBoxTreeViewControl), new FrameworkPropertyMetadata(false));
public bool ShowRatingPanel
{
get { return (bool)GetValue(ShowRatingPanelProperty); }
set { SetValue(ShowRatingPanelProperty, value); }
}
public static readonly DependencyProperty SelectOnlyLeafsProperty = DependencyProperty.Register("SelectOnlyLeafs", typeof(bool), typeof(ComboBoxTreeViewControl), new FrameworkPropertyMetadata(true));
public bool SelectOnlyLeafs
{
get { return (bool)GetValue(SelectOnlyLeafsProperty); }
set { SetValue(SelectOnlyLeafsProperty, value); }
}
public double ParentWindowHeight
{
get { return (double) GetValue(ParentWindowHeightProperty); }
@@ -40,6 +56,26 @@ namespace BeWo.View.Controls
{
InitializeComponent();
DataContext = this;
InitRatings();
}
private void InitRatings()
{
ratingPanel.Children.Clear();
var ratingList = Cache.GetInstance().GetAllRatingTypeList();
foreach (var r in ratingList)
{
//<RadioButton x:Name="RadioButton0" Margin="3" FontSize="12" Click="RatingButton_OnClick" Tag="0" Content="xxx.0 - Problem nicht vorhanden (ohne, kein, unerheblich ...) 0 bis 4 %"></RadioButton>
var rb = new RadioButton();
rb.Margin = new Thickness(3);
rb.FontSize = 12;
rb.Click += RatingButton_OnClick;
rb.Tag = r;
rb.Content = r.DisplayName;
ratingPanel.Children.Add(rb);
}
}
private void ShowCheckedValues()
@@ -104,6 +140,14 @@ namespace BeWo.View.Controls
}
else
{
if (!SelectOnlyLeafs)
{
GoalCount++;
if (item.IsChecked)
{
selectedGoals.Add(item.GoalEntryDC);
}
}
AddCheckedGoals(item.Children, selectedGoals);
}
}
@@ -175,6 +219,11 @@ namespace BeWo.View.Controls
private void SetPopUpVisible(bool visible)
{
if (!ShowRatingPanel)
{
return;
}
if (lastCheckedSupportConceptGoal == null)
{
return;
@@ -182,38 +231,29 @@ namespace BeWo.View.Controls
if (lastCheckedSupportConceptGoal.Children != null && lastCheckedSupportConceptGoal.Children.Count > 0)
{
return;
//return;
}
RatingPopup.IsOpen = visible;
RadioButtonNone.IsChecked = true;
if (lastCheckedSupportConceptGoal.GoalEntryDC.Rating != null)
if (lastCheckedSupportConceptGoal.GoalEntryDC.RatingTypeOid.HasValue)
{
switch (lastCheckedSupportConceptGoal.GoalEntryDC.Rating.Value)
foreach (var c in ratingPanel.Children)
{
case 0:
RadioButton0.IsChecked = true;
break;
case 1:
RadioButton1.IsChecked = true;
break;
case 2:
RadioButton2.IsChecked = true;
break;
case 3:
RadioButton3.IsChecked = true;
break;
case 4:
RadioButton4.IsChecked = true;
break;
case 8:
RadioButton8.IsChecked = true;
break;
case 9:
RadioButton9.IsChecked = true;
break;
RadioButton rb = c as RadioButton;
if (rb != null && rb.Tag != null)
{
RatingTypeDC rbRating = rb.Tag as RatingTypeDC;
if (rbRating != null && rbRating.RatingTypeOid ==
lastCheckedSupportConceptGoal.GoalEntryDC.RatingTypeOid)
{
rb.IsChecked = true;
}
}
}
}
}
@@ -305,11 +345,11 @@ namespace BeWo.View.Controls
RadioButton rb = sender as RadioButton;
if (rb.Tag != null)
{
int rating = 0;
if (Int32.TryParse(rb.Tag.ToString(), out rating))
var rt = rb.Tag as RatingTypeDC;
if (rt != null)
{
lastCheckedSupportConceptGoal.SetRating(rating);
lastCheckedSupportConceptGoal.SetRatingType(rt);
}
}
}

View File

@@ -5,8 +5,13 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:dx="clr-namespace:DevExpress.Xpf.Core;assembly=DevExpress.Xpf.Core.v17.1"
xmlns:shared="clr-namespace:BeWo.Core"
xmlns:conv="clr-namespace:BeWo.Converter"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<UserControl.Resources>
<conv:BoolVisibilityConverter x:Key="BoolVisibilityConverter" />
<conv:FilterDCConverter x:Key="FilterDCConverter" />
</UserControl.Resources>
<Grid>
<StackPanel x:Name="ComboBox_TreeView_Imitation" Orientation="Horizontal" Margin="3,0,3,3"
Visibility="{Binding Path=PrototypeVM.IsGoalTreeVisible, Converter={StaticResource BoolVisibilityConverter}}">

View File

@@ -79,7 +79,7 @@ namespace BeWo.View.Controls
var allCustomers = new List<CompactCustomerDC>();
SelectedCustomers.Clear();
ServiceFacade.DoCustomerServiceSync(s => allCustomers = s.GetAllActiveCustomersCompact(false, BeWoApp.LoggedOnEmployee.EmployeeOid));
ServiceFacade.DoCustomerServiceSync(s => allCustomers = s.GetAllActiveCustomersCompact(false, MainSession.LoggedOnEmployee.EmployeeOid));
foreach (var item in customers)
{

View File

@@ -0,0 +1,127 @@
using BeWo.View.Detail.Report;
using BS.Shared.DataContracts;
using BS.Shared.Extensions;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Input;
using System.Windows.Media;
namespace BeWo.View.Controls
{
public class DPCtrlDay : DienstplanerControl
{
public static readonly DependencyProperty DPCtrlDayInformationProperty = DependencyProperty.Register(
"DPCtrlDayInformation",
typeof(DPCtrlDayInformation),
typeof(DPCtrlDay),
new UIPropertyMetadata(
(s, e) =>
{
var info = (DPCtrlDayInformation)e.NewValue;
var c = (DPCtrlDay)s;
if (c != null && info != null)
{
var dc = info.DienstInfoDC;
var right = info.DayOfWeek == DayOfWeek.Sunday || info.IsLastColumn;
var bottom = info.IsLastRow;
c.Border = new Thickness(0, 0, Convert.ToDouble(right), Convert.ToDouble(bottom));
if (!info.IsInContractRange)
{
c.Background = Brushes.Gray;
c.Foreground = Brushes.Red;
c.Text = string.Empty;
c.ToolTip = "Kein gültiger Arbeitsvertrag";
}
else if (info.Reason != null)
{
c.Background = Brushes.White;
c.Foreground = Brushes.Red;
c.Text = $"{info.Reason.Description[0]}";
c.ToolTip = $"{info.Reason.Description}";
}
else if (dc != null)
{
var bg = string.IsNullOrEmpty(dc.Farbe) ? Brushes.White : (SolidColorBrush)new BrushConverter().ConvertFrom(dc.Farbe);
var grey = 0.2989 * bg.Color.R + 0.5870 * bg.Color.G + 0.1140 * bg.Color.B;
c.Background = bg;
c.Foreground = grey < 70 ? Brushes.White : Brushes.Black;
c.ToolTip = new DPCtrlDienstTooltip(dc);
}
else
{
c.Background = ((int)info.DayOfWeek % 6 == 0) ? new SolidColorBrush(ColorExtensions.FromHexString("EFEFEF")) : Brushes.White;
c.Text = string.Empty;
c.ToolTip = null;
}
if (dc != null)
{
c.Text = $"{dc.Kurz}";
}
}
}));
public DPCtrlDay()
{
InitializeComponent();
MouseDown += DienstplanerControl_MouseDown;
}
public new Brush Background
{
get => BorderLight.Background;
set => BorderLight.Background = value;
}
public Thickness Border
{
get => BorderBlack.BorderThickness;
set => BorderBlack.BorderThickness = value;
}
public DPCtrlDayInformation DPCtrlDayInformation
{
get { return (DPCtrlDayInformation)GetValue(DPCtrlDayInformationProperty); }
set { SetValue(DPCtrlDayInformationProperty, value); }
}
private void DienstplanerControl_MouseDown(object sender, MouseButtonEventArgs e)
{
DienstplanerView entryView = null;
DependencyObject parent = VisualTreeHelper.GetParent(this);
while (parent != null && entryView == null)
{
entryView = parent as DienstplanerView;
var fe = parent as FrameworkElement;
parent = fe != null ? VisualTreeHelper.GetParent(fe) : null;
}
if (entryView != null)
{
entryView.DienstplanerControl_MouseDown(sender, e);
}
}
}
public class DPCtrlDayInformation
{
public DienstInfoDC DienstInfoDC { get; set; }
public AbsenceReasonDC Reason { get; set; }
public bool IsInContractRange { get; set; }
public bool IsLastRow { get; set; }
public bool IsLastColumn { get; set; }
public DayOfWeek DayOfWeek { get; set; }
}
}

View File

@@ -0,0 +1,27 @@
<UserControl x:Class="BeWo.View.Controls.DPCtrlDienstTooltip" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="10" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0" Text="Dienst:"/>
<TextBlock Grid.Row="2" Grid.Column="0" Text="Start:"/>
<TextBlock Grid.Row="4" Grid.Column="0" Text="Pausendauer:"/>
<TextBlock Grid.Row="3" Grid.Column="0" Text="Ende:"/>
<Separator Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="3"/>
<TextBlock Grid.Row="0" Grid.Column="2" x:Name="TxtDienst"/>
<TextBlock Grid.Row="2" Grid.Column="2" x:Name="TxtStart"/>
<TextBlock Grid.Row="4" Grid.Column="2" x:Name="TxtPausendauer"/>
<TextBlock Grid.Row="3" Grid.Column="2" x:Name="TxtEnde"/>
</Grid>
</UserControl>

View File

@@ -0,0 +1,29 @@
using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Media;
using BeWo.View.Detail;
using BeWo.View.Detail.Report;
using BeWo.ViewModel;
using BS.Shared.DataContracts;
namespace BeWo.View.Controls
{
/// <summary>
/// Interaction logic for DienstplanerControl.xaml
/// </summary>
public partial class DPCtrlDienstTooltip : UserControl
{
public DPCtrlDienstTooltip(DienstInfoDC dienst)
{
InitializeComponent();
TxtDienst.Text = $"{dienst.DienstName} ({dienst.Kurz})";
TxtEnde.Text = dienst.Ende.ToString("HH:mm");
TxtPausendauer.Text = dienst.Pause.ToString();
TxtStart.Text = dienst.Start.ToString("HH:mm");
}
}
}

View File

@@ -0,0 +1,127 @@
using BS.Shared.DataContracts;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
namespace BeWo.View.Controls
{
public class DPCtrlEmployee : DienstplanerControl
{
public static readonly DependencyProperty EmployeeInformationProperty = DependencyProperty.Register(
"EmployeeInformation",
typeof(DPCtrlEmployeeInformation),
typeof(DPCtrlEmployee),
new UIPropertyMetadata(
(s, e) =>
{
var information = (DPCtrlEmployeeInformation)e.NewValue;
var ctrl = (DPCtrlEmployee)s;
if (ctrl != null)
{
if (information != null)
{
switch (information.Row)
{
case 0:
case 1:
ctrl.BorderBlack.BorderThickness = new Thickness(0, 0, 1, 0);
ctrl.BorderLight.BorderThickness = new Thickness(0, 0, 0, 1);
break;
case 2:
ctrl.BorderBlack.BorderThickness = new Thickness(0, 0, 1, 1);
ctrl.BorderLight.BorderThickness = new Thickness(0, 0, 0, 1);
break;
}
ctrl.Text = ctrl.DisplayMember;
ctrl.ToolTip = new DPCtrlEmployeeTooltip(information.Employee, information.Contracts);
}
else
{
ctrl.ToolTip = null;
}
}
}));
public DPCtrlEmployee()
{
InitializeComponent();
FontSize = 12;
txt.HorizontalAlignment = HorizontalAlignment.Left;
}
public DPCtrlEmployeeInformation EmployeeInformation
{
get { return (DPCtrlEmployeeInformation)GetValue(EmployeeInformationProperty); }
set { SetValue(EmployeeInformationProperty, value); }
}
public string DisplayMember
{
get
{
var sb = new StringBuilder();
switch (EmployeeInformation.Row)
{
case 0: return EmployeeInformation.Employee.LastNameFirstName;
case 1:
foreach (var contract in EmployeeInformation.Contracts)
{
sb.Append(contract.EmploymentType?.Name);
sb.Append('/');
}
sb.Remove(sb.Length - 1, 1);
return sb.ToString();
case 2:
foreach (var contract in EmployeeInformation.Contracts)
{
sb.Append('(');
if (contract.EntryDate.HasValue)
sb.Append(contract.EntryDate.Value.ToString("dd.MM"));
else
sb.Append("k.A.");
sb.Append('-');
if (contract.ContractEndDate.HasValue)
sb.Append(contract.ContractEndDate.Value.ToString("dd.MM"));
else
sb.Append("unbefr.");
sb.Append(')');
sb.Append('/');
}
sb.Remove(sb.Length - 1, 1);
return sb.ToString();
}
return null;
}
}
}
public class DPCtrlEmployeeInformation
{
public EmployeeDC Employee { get; set; }
public List<ContractDC> Contracts { get; set; }
public int Row { get; set; }
}
}

View File

@@ -0,0 +1,21 @@
<UserControl x:Class="BeWo.View.Controls.DPCtrlEmployeeContractTooltip" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="10" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Separator Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="3"/>
<TextBlock Grid.Row="1" Grid.Column="0" Text="Beschäftigungsart:"/>
<TextBlock Grid.Row="2" Grid.Column="0" Text="Vereinbarte Regelarbeitszeit:"/>
<TextBlock Grid.Row="1" Grid.Column="2" x:Name="TxtEmploymentType"/>
<TextBlock Grid.Row="2" Grid.Column="2" x:Name="TxtArbeitszeit"/>
</Grid>
</UserControl>

View File

@@ -0,0 +1,39 @@
using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Media;
using BeWo.View.Detail;
using BeWo.View.Detail.Report;
using BeWo.ViewModel;
using BS.Shared.DataContracts;
namespace BeWo.View.Controls
{
/// <summary>
/// Interaction logic for DienstplanerControl.xaml
/// </summary>
public partial class DPCtrlEmployeeContractTooltip : UserControl
{
public DPCtrlEmployeeContractTooltip(ContractDC contract)
{
InitializeComponent();
TxtEmploymentType.Text = contract.EmploymentType.Name;
if(contract.MonthlyTotalHours != null)
{
TxtArbeitszeit.Text = $"{contract.MonthlyTotalHours.Value} Std/Monat";
}
else if(contract.WeeklyTotalHours != null)
{
TxtArbeitszeit.Text = $"{contract.WeeklyTotalHours.Value} Std/Woche";
}
else
{
TxtArbeitszeit.Text = $"k.A.";
}
}
}
}

View File

@@ -0,0 +1,14 @@
<UserControl x:Class="BeWo.View.Controls.DPCtrlEmployeeTooltip" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid x:Name="RootGrid">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="10" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0" Text="Mitarbeiter:"/>
<TextBlock Grid.Row="0" Grid.Column="2" x:Name="TxtMitarbeiter"/>
</Grid>
</UserControl>

View File

@@ -0,0 +1,77 @@
using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Media;
using BeWo.View.Detail;
using BeWo.View.Detail.Report;
using BeWo.ViewModel;
using BS.Shared.DataContracts;
namespace BeWo.View.Controls
{
/// <summary>
/// Interaction logic for DienstplanerControl.xaml
/// </summary>
public partial class DPCtrlEmployeeTooltip : UserControl
{
public DPCtrlEmployeeTooltip(EmployeeDC employeeDC, List<ContractDC> contractDCs)
{
InitializeComponent();
TxtMitarbeiter.Text = employeeDC.LastNameFirstName;
var separator = new Separator();
foreach (var contract in contractDCs)
{
var sep = new Separator();
var txtType1 = new TextBlock();
var txtType2 = new TextBlock();
var txtArbeit1 = new TextBlock();
var txtArbeit2 = new TextBlock();
txtType1.Text = "Beschäftigungsart:";
txtType2.Text = $"{contract.EmploymentType?.Name}";
txtArbeit1.Text = "Vereinbarte Regelarbeitszeit:";
if (contract.MonthlyTotalHours != null)
{
txtArbeit2.Text = $"{contract.MonthlyTotalHours.Value} Std/Monat";
}
else if (contract.WeeklyTotalHours != null)
{
txtArbeit2.Text = $"{contract.WeeklyTotalHours.Value} Std/Woche";
}
else
{
txtArbeit2.Text = $"k.A.";
}
RootGrid.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto });
RootGrid.Children.Add(sep);
Grid.SetRow(sep, RootGrid.RowDefinitions.Count - 1);
Grid.SetColumnSpan(sep, 3);
RootGrid.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto });
RootGrid.Children.Add(txtType1);
RootGrid.Children.Add(txtType2);
Grid.SetRow(txtType1, RootGrid.RowDefinitions.Count - 1);
Grid.SetRow(txtType2, RootGrid.RowDefinitions.Count - 1);
Grid.SetColumn(txtType2, 2);
RootGrid.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto });
RootGrid.Children.Add(txtArbeit1);
RootGrid.Children.Add(txtArbeit2);
Grid.SetRow(txtArbeit1, RootGrid.RowDefinitions.Count - 1);
Grid.SetRow(txtArbeit2, RootGrid.RowDefinitions.Count - 1);
Grid.SetColumn(txtArbeit2, 2);
}
}
}
}

View File

@@ -0,0 +1,68 @@
using BS.Shared.DataContracts;
using BS.Shared.Extensions;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Media;
namespace BeWo.View.Controls
{
public class DPCtrlIcon : DienstplanerControl
{
public static readonly DependencyProperty DienstValueProperty = DependencyProperty.Register(
"DienstValue",
typeof(DienstInfoDC),
typeof(DienstplanerControl),
new UIPropertyMetadata(
(s, e) =>
{
var dc = (DienstInfoDC)e.NewValue;
var c = (DPCtrlIcon)s;
if (c != null)
{
if (dc != null)
{
// rgb2gray converts RGB values to grayscale values by forming a weighted sum of the R, G, and B components:
// 0.2989 * R + 0.5870 * G + 0.1140 * B
var color = ColorExtensions.FromHexStringDefault(dc.Farbe, Colors.Transparent);
var brush = new SolidColorBrush(color);
c.BorderBlack.Background = brush;
c.BorderBlack.ToolTip = dc.DienstName;
c.Foreground = color.IsBrighter(70) ? Brushes.Black : Brushes.White;
c.Text = dc.Kurz;
}
else
{
c.BorderBlack.ToolTip = string.Empty;
c.BorderBlack.Background = Brushes.White;
c.Foreground = Brushes.Black;
c.Text = string.Empty;
}
}
}));
public DPCtrlIcon()
{
InitializeComponent();
BorderBlack.BorderThickness = new Thickness(1);
BorderBlack.CornerRadius = new CornerRadius(4);
BorderBlack.Visibility = Visibility.Visible;
BorderLight.Visibility = Visibility.Hidden;
FontSize = 12;
}
public DienstInfoDC DienstValue
{
get { return (DienstInfoDC)GetValue(DienstValueProperty); }
set { SetValue(DienstValueProperty, value); }
}
}
}

View File

@@ -0,0 +1,66 @@
using BS.Shared.DataContracts;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
namespace BeWo.View.Controls
{
public class DPCtrlWeek : DienstplanerControl
{
public static readonly DependencyProperty DienstInfoDCListProperty = DependencyProperty.Register(
"DienstInfoDCList",
typeof(List<DienstInfoDC>),
typeof(DPCtrlWeek),
new UIPropertyMetadata(
(s, e) =>
{
var dc = (List<DienstInfoDC>)e.NewValue;
var c = (DPCtrlWeek)s;
if (c != null)
{
if (dc != null)
{
dc.RemoveAll(x => x == null);
c.BorderBlack.BorderThickness = new Thickness(0, 0, 1, 1);
double res = 0.0;
if (dc.Count != 0)
foreach (var x in dc)
{
res += x.DurationHours;
}
c.Text = res.ToString("0.##");
}
else
{
c.BorderBlack.BorderThickness = new Thickness(0, 0, 1, 0);
c.Text = "";
}
}
}));
public DPCtrlWeek()
{
InitializeComponent();
BorderBlack.BorderThickness = new Thickness(0, 0, 1, 0);
txt.TextAlignment = TextAlignment.Left;
txt.HorizontalAlignment = HorizontalAlignment.Left;
}
public List<DienstInfoDC> DienstInfoDCList
{
get { return (List<DienstInfoDC>)GetValue(DienstInfoDCListProperty); }
set { SetValue(DienstInfoDCListProperty, value); }
}
}
}

Some files were not shown because too many files have changed in this diff Show More