25 Commits

Author SHA1 Message Date
b6c9566cba Gitignore update 2024-06-07 14:35:13 +02:00
3e4994c4eb Launcher Path beim erneuten Einloggen anzeigen
Waiting entfernt bei "Zurück zu login"
2024-06-07 14:33:47 +02:00
f65cb3da72 Ordnung 2024-06-07 14:20:43 +02:00
6497a7ded5 Working now
- more logs
- download controller + manager überarbeitet
- Retry wird besser angezeigt
- Formatierungen
2024-06-07 13:42:25 +02:00
3f9f42b593 Logik übertragen - weitere Ausarbeitung 2024-06-06 15:42:04 +02:00
e2cf258f36 Download Manager + Download Controller aufgeräumt 2024-06-06 13:02:19 +02:00
6f0c28a7c7 Not Finished
Translation into SharedLauncher.csproj
Uninstall
2024-06-03 11:58:46 +02:00
58aaf05673 temp commit before merge 2024-05-28 11:50:30 +02:00
f3855aaebb Client Logger + Rest zum Testen auf app5 2024-05-27 15:28:40 +02:00
3dcfc8cb0e Debug: Lässt Prozess Killen zu - Release: Blockiert 2024-05-27 09:51:28 +02:00
44dfcad633 Mehr Download File Log Infos
+ Login wird verifiziert
-> immernoch 5 Sekunden zum Validieren

------
LOG File

[#0884 14:38:39]: -----------------------------------
[#0884 14:38:39]: >>> GetUpdatePlan Anfrage <<<
[#0884 14:38:39]: -----------------------------------
[#0884 14:38:39]: Validiere Plan Request.
[#0884 14:38:39]: Plan Request erfolreich validiert. Verifiziere Login.
[#0884 14:38:44]: Login verifiziert. Baue Antwort.
[#0884 14:38:45]: Antwort erfolgreich gebaut.
[#0884 14:38:45]: -----------------------------------

[#3067 14:38:49]: -----------------------------------
[#3067 14:38:49]: >>> GetUpdateFile Anfrage <<<
[#3067 14:38:49]: -----------------------------------
[#3067 14:38:49]: Validiere File Request.
[#3067 14:38:49]: Plan Request erfolreich validiert.
[#3067 14:38:49]: --> File: BeWoPlaner.application
[#3067 14:38:49]: Verifiziere Login.
[#3067 14:38:54]: Login verifiziert. Baue Antwort.
[#3067 14:38:54]: Antwort erfolgreich gebaut.
[#3067 14:38:54]: -----------------------------------

[#0952 14:38:54]: -----------------------------------
[#0952 14:38:54]: >>> GetUpdateFile Anfrage <<<
[#0952 14:38:54]: -----------------------------------
[#0952 14:38:54]: Validiere File Request.
[#0952 14:38:54]: Plan Request erfolreich validiert.
[#0952 14:38:54]: --> File: BeWoPlaner.exe
[#0952 14:38:54]: Verifiziere Login.
[#0952 14:38:59]: Login verifiziert. Baue Antwort.
[#0952 14:38:59]: Antwort erfolgreich gebaut.
[#0952 14:38:59]: -----------------------------------

[#8596 14:39:00]: -----------------------------------
[#8596 14:39:00]: >>> GetUpdateFile Anfrage <<<
[#8596 14:39:00]: -----------------------------------
[#8596 14:39:00]: Validiere File Request.
[#8596 14:39:00]: Plan Request erfolreich validiert.
[#8596 14:39:00]: --> File: BeWoPlaner.exe.config
[#8596 14:39:00]: Verifiziere Login.
[#8596 14:39:05]: Login verifiziert. Baue Antwort.
[#8596 14:39:05]: Antwort erfolgreich gebaut.
[#8596 14:39:05]: -----------------------------------

[#8990 14:39:05]: -----------------------------------
[#8990 14:39:05]: >>> GetUpdateFile Anfrage <<<
[#8990 14:39:05]: -----------------------------------
[#8990 14:39:05]: Validiere File Request.
[#8990 14:39:05]: Plan Request erfolreich validiert.
[#8990 14:39:05]: --> File: BeWoPlaner.exe.manifest
[#8990 14:39:05]: Verifiziere Login.
[#8990 14:39:10]: Login verifiziert. Baue Antwort.
[#8990 14:39:10]: Antwort erfolgreich gebaut.
[#8990 14:39:10]: -----------------------------------

[#4160 14:39:10]: -----------------------------------
[#4160 14:39:10]: >>> GetUpdateFile Anfrage <<<
[#4160 14:39:10]: -----------------------------------
[#4160 14:39:10]: Validiere File Request.
[#4160 14:39:10]: Plan Request erfolreich validiert.
[#4160 14:39:10]: --> File: BeWoPlaner.pdb
[#4160 14:39:10]: Verifiziere Login.
[#4160 14:39:15]: Login verifiziert. Baue Antwort.
[#4160 14:39:15]: Antwort erfolgreich gebaut.
[#4160 14:39:15]: -----------------------------------

[#2569 14:39:15]: -----------------------------------
[#2569 14:39:15]: >>> GetUpdateFile Anfrage <<<
[#2569 14:39:15]: -----------------------------------
[#2569 14:39:15]: Validiere File Request.
[#2569 14:39:15]: Plan Request erfolreich validiert.
[#2569 14:39:15]: --> File: Blacklight.Wpf.Controls.dll
[#2569 14:39:15]: Verifiziere Login.
[#2569 14:39:20]: Login verifiziert. Baue Antwort.
[#2569 14:39:20]: Antwort erfolgreich gebaut.
[#2569 14:39:20]: -----------------------------------

[#2962 14:39:20]: -----------------------------------
[#2962 14:39:20]: >>> GetUpdateFile Anfrage <<<
[#2962 14:39:20]: -----------------------------------
[#2962 14:39:20]: Validiere File Request.
[#2962 14:39:20]: Plan Request erfolreich validiert.
[#2962 14:39:20]: --> File: BS.Shared.dll
[#2962 14:39:20]: Verifiziere Login.
[#2962 14:39:25]: Login verifiziert. Baue Antwort.
[#2962 14:39:25]: Antwort erfolgreich gebaut.
[#2962 14:39:25]: -----------------------------------

[#8131 14:39:25]: -----------------------------------
[#8131 14:39:25]: >>> GetUpdateFile Anfrage <<<
[#8131 14:39:25]: -----------------------------------
[#8131 14:39:25]: Validiere File Request.
[#8131 14:39:25]: Plan Request erfolreich validiert.
[#8131 14:39:25]: --> File: BS.Shared.pdb
[#8131 14:39:25]: Verifiziere Login.
[#8131 14:39:30]: Login verifiziert. Baue Antwort.
[#8131 14:39:30]: Antwort erfolgreich gebaut.
[#8131 14:39:30]: -----------------------------------

[#2429 14:39:30]: -----------------------------------
[#2429 14:39:30]: >>> GetUpdateFile Anfrage <<<
[#2429 14:39:30]: -----------------------------------
[#2429 14:39:30]: Validiere File Request.
[#2429 14:39:30]: Plan Request erfolreich validiert.
[#2429 14:39:30]: --> File: BS.SharedLauncher.dll
[#2429 14:39:30]: Verifiziere Login.
[#2429 14:39:35]: Login verifiziert. Baue Antwort.
[#2429 14:39:35]: Antwort erfolgreich gebaut.
[#2429 14:39:35]: -----------------------------------
2024-05-24 14:41:46 +02:00
7da66cfae0 Merge branch 'master' into BewoRene_feature_Launcher
# Conflicts:
#	BeWoAllReports.sln
2024-05-24 14:24:14 +02:00
03f8d4af5d Project Files
+ Loader Exceptions reduziert
2024-05-24 14:16:08 +02:00
64728f231a Der Launcher sitzt wieder im Sattel 2024-05-24 13:55:00 +02:00
81a8c8dc27 Nicht fertig - erster Teil der master integration in den BeWoLauncher Branch 2024-05-22 17:10:52 +02:00
af4e753071 not complete - folder empty
Merge branch 'master' into BewoRene_feature_Launcher

# Conflicts:
#	BeWo/BeWoApp.xaml.cs
#	BeWo/Loader.cs
#	BeWo/app.config
#	BeWoLauncher/App.config
#	BeWoLauncher/BeWoLauncher.csproj
#	BeWoLauncher/Logic/Behavior/LaunchBehavior.cs
#	BeWoLauncher/View/Frames/InfoFrame.xaml
#	BeWoLauncher/View/Frames/InstallInfoFrame.xaml.cs
#	BeWoOhneReports.sln
#	DownloadServer/Multitenancy/demo.config
#	DownloadServer/Web.config
#	ReportImp/AlphaEv/Properties/Resources.resx
#	ReportImp/Inkomm/Properties/Resources.Designer.cs
#	Service/Multitenancy/DMultitenancyEndpointBehavior.cs
#	Service/Multitenancy/DMultitenancyHeader.cs
#	Service/Multitenancy/DMultitenancyInterceptor.cs
#	Service/ServiceImplementations/DownloadBeWoServiceImp.cs
#	Service/ServiceImplementations/LauncherServiceImp.cs
#	Service/ServiceUtils/Paths/ServerFilePaths.cs
#	Service/ServiceUtils/Update/UpdateConfigReader.cs
#	Service/ServiceUtils/Update/UpdateFileResponseBuilder.cs
#	Service/ServiceUtils/Update/UpdatePlanResponseBuilder.cs
#	SharedLauncher/DataContract/UpdatePlanResponse.cs
#	SharedLauncher/Information/SessionInformation.cs
2024-05-22 13:16:32 +02:00
a4e9b791c5 Force git conflict 2024-05-22 12:59:06 +02:00
4af0180baa remove 2024-05-22 11:44:20 +02:00
b2bae1d512 adding back in 2024-05-22 11:16:04 +02:00
d2a20c4d5c same with SharedLauncher 2024-05-22 11:15:39 +02:00
8e1471a519 add back in 2024-05-22 11:06:36 +02:00
47d8a5996f Remove, add next commit back in 2024-05-22 11:05:36 +02:00
88e0edcc76 Bessere Arbeitsweise -> Keine Exceptions über Service thrown, lieber kapseln
kleine bugs
2024-05-21 16:05:49 +02:00
5b30f4ad14 Ignore Commit - switched file structure 2024-05-21 10:28:08 +02:00
7811c2fb56 removed empty ref 2023-12-05 11:37:34 +01:00
8469 changed files with 1672951 additions and 1494927 deletions

View File

@@ -1,54 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Root Type="DevExpress.CodeAnalysis.CodeCleanUp.CodeCleanUpOptions">
<Options Language="C#">
<Providers>
<Item Id="{53ccb10f-f7af-40a6-9472-d05054672052}" />
<Item Id="{bb96a982-bed0-4d8f-93a7-1e1ce7493e96}" />
<Item Id="{12f6d456-d2ec-407e-aa44-2b74d7c56e9c}" />
<Item Id="{ffa114f4-9122-46e4-96c8-655d54c904e6}" />
<Item Id="{0e6b7b2c-84e6-4eee-83d1-6149282c8501}">
<ApplyOnSave>True</ApplyOnSave>
</Item>
<Item Id="{03781427-dea7-45b0-9eef-81abe2961a61}" />
<Item Id="{ab07124b-0893-4a2d-b6f5-39bfa9f10148}" />
<Item Id="{5d712912-91ed-4728-ba16-ac1821b702ca}">
<ApplyOnSave>True</ApplyOnSave>
</Item>
<Item Id="{c47b114f-eeae-46fc-9562-454e8f9196c0}" />
<Item Id="{4216ef39-52bd-4e7f-92a7-673406f92bc8}" />
<Item Id="{f410df1e-6e44-4854-a3f0-14bb756113f9}">
<ApplyOnSave>True</ApplyOnSave>
</Item>
<Item Id="{d2f76d4e-97a9-4031-a7a2-23f192201426}" />
<Item Id="{3824f6f0-fee1-4847-94ff-1efa133ba199}" />
<Item Id="{d24bd9c7-7686-4101-9ec1-f61c19af8d2e}" />
<Item Id="{f804e36e-414f-409c-9b90-63b7727745a7}">
<ApplyOnSave>True</ApplyOnSave>
</Item>
<Item Id="{163af547-186c-4fa1-9a3e-b9b0a1ceec32}" />
<Item Id="{00bb41b3-3de9-458a-93c1-1f126253eab0}" />
<Item Id="{8e24f031-d25c-4ddb-86a5-c28f8fc354eb}" />
<Item Id="{e950f01e-2b15-4da5-8176-cafe3cc883d9}" />
<Item Id="{37bde68f-a39d-4791-adba-8ad7b2952ab0}" />
<Item Id="{ef51c8cb-e48a-498f-98b2-eadda592c4c7}" />
<Item Id="{20943A7B-2B32-4727-8E9D-61CB5B5F2A0D}" />
<Item Id="{528bdd86-5882-4b4c-b717-e0ec33958bd7}" />
<Item Id="{40c971cf-ebeb-419d-a559-6183d8d0d6a4}" />
<Item Id="{4B42E272-EE39-4E83-924C-B2458D827DE3}" />
<Item Id="{73a73e0e-5575-4c34-a97b-a942c6da1f90}" />
<Item Id="{f7752b2b-7ba5-43ec-b0f7-7f45c21c1c23}" />
<Item Id="{9dab2827-57cc-40e9-a330-a0626261453e}" />
<Item Id="{6bf7cfc1-1332-4bec-982e-c2d0968237cd}" />
<Item Id="{7e640eab-b585-47a5-afdc-0f110357cebb}" />
<Item Id="{44ac74a7-dba7-45aa-b2ca-8094b85cb9c9}" />
<Item Id="{2cd1441b-9e0f-4e39-bd8c-8aaa6e2a1728}" />
<Item Id="{41388575-074b-49f2-b3bc-9d28b212bd1a}" />
<Item Id="{4fa0bfa3-0a7e-471b-9933-3a379bdd5bd7}" />
<Item Id="{1f88209e-45e2-40b9-a235-1df251df05dd}" />
<Item Id="{086b0e70-893d-4b97-a6cf-d366ddbae573}" />
<Item Id="{4771fd98-4357-4780-b479-a7a875fec011}" />
<Item Id="{174C98E6-48C4-42D0-BC30-35EDE6377C9B}" />
</Providers>
<IsNewVersion>True</IsNewVersion>
</Options>
</Root>

View File

@@ -1,15 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Root Type="DevExpress.CodeRush.Formatting.UI.Options.OtherOptionsContainer">
<Options Language="C#">
<Options>
<Item Id="{7b13bb67-6fc9-44dd-87a1-ea1dc649d561}" Type="DevExpress.CodeRush.Formatting.UI.Options.Conversion.PlaceOnNewLineOtherOption">
<ElseOnNewLine>True</ElseOnNewLine>
<WhileOnNewLine>True</WhileOnNewLine>
<CatchOnNewLine>True</CatchOnNewLine>
<FinallyOnNewLine>True</FinallyOnNewLine>
</Item>
<Item Id="{84e7d791-613d-4018-bf31-9a9f43264480}" Type="DevExpress.CodeRush.Formatting.UI.Options.Conversion.XmlDocCommentsOtherOption" />
<Item Id="{8921dd1e-bb6c-4fa8-b4d5-58e6edcea04f}" Type="DevExpress.CodeRush.Formatting.UI.Options.Conversion.OtherIndentOption" />
</Options>
</Options>
</Root>

View File

@@ -1,32 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Root Type="DevExpress.CodeRush.Formatting.UI.Options.WrappingOptionsContainer">
<Options Language="C#">
<Options>
<Item Id="{48f3f6c0-b3c2-4567-b071-33af7480c9a3}" Type="DevExpress.CodeRush.Formatting.UI.Options.Conversion.QueryExpressionFormattingOption" />
<Item Id="{a2c75ad7-ba6a-49ca-8070-6d9e3c52e3c6}" Type="DevExpress.CodeRush.Formatting.UI.Options.Conversion.BinaryExpressionFormattingOption" />
<Item Id="{0e2d0391-24ba-4ed8-aeb4-1b3e9f26be55}" Type="DevExpress.CodeRush.Formatting.UI.Options.Conversion.RelationalExpressionFormattingOption" />
<Item Id="{fea50ebc-99c9-4599-9b55-bf2961b9cc95}" Type="DevExpress.CodeRush.Formatting.UI.Options.Conversion.BitwiseExpressionFormattingOption" />
<Item Id="{4246b900-cbb3-44f4-b59e-b3055fb4f7bc}" Type="DevExpress.CodeRush.Formatting.UI.Options.Conversion.LogicalExpressionFormattingOption" />
<Item Id="{cd721fc1-23fb-4d88-a9f0-42d6b318a32b}" Type="DevExpress.CodeRush.Formatting.UI.Options.Conversion.TernaryExpressionFormattingOption" />
<Item Id="{10e904ea-f51d-4c32-9320-1b93fa557564}" Type="DevExpress.CodeRush.Formatting.UI.Options.Conversion.AssignmentExpressionFormattingOption">
<WrapAssignment>
<Kind>WrapBefore</Kind>
</WrapAssignment>
</Item>
<Item Id="{25746bdc-0a43-4741-a740-20784691314b}" Type="DevExpress.CodeRush.Formatting.UI.Options.Conversion.InvocationArgumentListFormattingOption" />
<Item Id="{D5EE2ECB-9FA6-47F7-A11F-007FC45E872D}" Type="DevExpress.CodeRush.Formatting.UI.Options.Conversion.AttributeArgumentsFormattingOption" />
<Item Id="{5A186AB9-03A5-4BFE-83B1-B99B3B8408BC}" Type="DevExpress.CodeRush.Formatting.UI.Options.Conversion.DeclarationParameterListFormattingOption" />
<Item Id="{8739877d-3674-40ae-90c4-38b2b160e92b}" Type="DevExpress.CodeRush.Formatting.UI.Options.Conversion.ArrayInitializerFormattingOption" />
<Item Id="{a940ae15-f98a-4b7d-8357-2214eb421250}" Type="DevExpress.CodeRush.Formatting.UI.Options.Conversion.CollectionInitializerFormattingOption" />
<Item Id="{0414181a-3915-4d0c-81d3-3bc7718da90f}" Type="DevExpress.CodeRush.Formatting.UI.Options.Conversion.ObjectInitializerFormattingOption" />
<Item Id="{ea60e2ab-d67a-45e8-ab42-36d747c494c}" Type="DevExpress.CodeRush.Formatting.UI.Options.Conversion.ChainedMethodCallsFormattingOption" />
<Item Id="{5f4ed422-88b9-4e95-8401-cef404d645d6}" Type="DevExpress.CodeRush.Formatting.UI.Options.Conversion.LambdaExpressionFormattingOption" />
<Item Id="{0531de5e-ff20-4043-a67c-eeef76a8f3c3}" Type="DevExpress.CodeRush.Formatting.UI.Options.Conversion.ArrowExpressionFormattingOption" />
<Item Id="{08fa5953-cc71-4ded-bd41-ef5d5b690585}" Type="DevExpress.CodeRush.Formatting.UI.Options.Conversion.TypeParameterListFormattingOption" />
<Item Id="{dc060d33-cfc0-411e-9508-8d27b84934e8}" Type="DevExpress.CodeRush.Formatting.UI.Options.Conversion.CoalesceExpressionFormattingOption" />
<Item Id="{b25d25a0-dd92-45ed-88ef-51953e28222c}" Type="DevExpress.CodeRush.Formatting.UI.Options.Conversion.BaseListWrappingFormattingOption" />
<Item Id="{4db5e14f-8f4c-416f-9b59-7e9239f2150e}" Type="DevExpress.CodeRush.Formatting.UI.Options.Conversion.CtorInitWrappingFormattingOption" />
<Item Id="{be0c2117-5732-40fd-9b4a-0fe749356e87}" Type="DevExpress.CodeRush.Formatting.UI.Options.Conversion.SwitchExpressionWrappingFormattingOption" />
</Options>
</Options>
</Root>

View File

@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Root Type="DevExpress.CodeRush.CodeCompletion.NamingSuggestions.Options.NamingSuggestionsOptions">
<Options Language="C#">
<Enabled>True</Enabled>
</Options>
</Root>

View File

@@ -1,165 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Root Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersOptions">
<Options Language="Neutral">
<Schemes>
<Item Id="{537ce5d1-771a-4e99-9f4a-c409ebd5e213}">
<IsActive>False</IsActive>
<Rules>
<Item Id="{a1310165-0385-4fbf-92d3-71402b646318}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule">
<GroupRule Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.AndRule">
<Rules>
<Item Id="{2ebbe39b-ad28-42e6-b6fe-58cbbe1366ea}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.GroupByParentTypeAttributesRule">
<AttributeName>InterfaceType</AttributeName>
</Item>
<Item Id="{e7428898-429e-46c7-84f8-a4eeffbf1bc7}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.GroupByKindRule" />
</Rules>
</GroupRule>
<RuleName>Members in type with InterfaceType</RuleName>
</Item>
<Item Id="{ebd30c1d-59b5-4a03-9f33-8813a996b952}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule" />
<Item Id="{02fdb982-e0dd-4b47-84c3-f44926013188}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule" />
<Item Id="{f5649b7d-32eb-4a64-88b4-5de14ed335e4}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule" />
<Item Id="{b72b1c09-252f-4d4f-881c-1a4832911d5f}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule" />
<Item Id="{eae9a2ed-5135-45c6-9cd1-e75ee9e9ac68}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule" />
<Item Id="{7e2e2ef2-8ef3-4f28-825d-ce10da1931e6}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule">
<SortingRule Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.MultipleSortingsRule">
<Sortings>
<Item Id="{0430f49d-5690-49a2-b2ef-154bfbf64cd7}" />
</Sortings>
</SortingRule>
</Item>
<Item Id="{907fc4a7-efee-4337-af73-d71b996b3923}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule">
<SortingRule Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.MultipleSortingsRule">
<Sortings>
<Item Id="{724ebc08-3b98-4c52-91c5-158b7a759d95}" />
</Sortings>
</SortingRule>
</Item>
<Item Id="{bcbd84af-ad2b-4353-a834-ece7b6e41d92}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule">
<SortingRule Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.MultipleSortingsRule">
<Sortings>
<Item Id="{c49c00d2-9626-428d-8818-e71e68bf07f9}" />
</Sortings>
</SortingRule>
</Item>
<Item Id="{335094b6-641c-4832-bfdc-84087f8c7b24}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule">
<SortingRule Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.MultipleSortingsRule">
<Sortings>
<Item Id="{1136a603-d516-4f42-a80b-c2bc7baf163b}" />
</Sortings>
</SortingRule>
</Item>
<Item Id="{89215376-ecad-435a-a6bf-137f09a41f0d}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule">
<SortingRule Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.MultipleSortingsRule">
<Sortings>
<Item Id="{380049a0-9dbf-4d84-9612-20fc0c34dca2}" />
</Sortings>
</SortingRule>
</Item>
<Item Id="{36cc0c47-d29c-4e7a-a29b-d73ec1b3910b}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule" />
<Item Id="{c87a250e-ef05-4000-9e2c-e5c078ce51ae}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule" />
<Item Id="{0fcd1a59-0fc8-4bde-9db7-2d73508b918d}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule">
<SortingRule Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.MultipleSortingsRule">
<Sortings>
<Item Id="{050f50d0-7ec6-4610-a820-08f54f1d4c3c}" />
</Sortings>
</SortingRule>
</Item>
<Item Id="{6b6953c9-dcb7-4d34-a123-7f390fd24e1e}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule" />
<Item Id="{b8f8c881-e919-48b1-8655-602c75ddbfec}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule">
<SortingRule Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.MultipleSortingsRule">
<Sortings>
<Item Id="{f591aeca-b50c-47e2-ab24-84fb3a7327c2}" />
</Sortings>
</SortingRule>
</Item>
<Item Id="{c9b4252f-60a9-48d3-869e-2c3c23c20aae}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule" />
<Item Id="{d6d0a5a4-c770-47f3-8cda-c699e76101d1}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule">
<SortingRule Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.MultipleSortingsRule">
<Sortings>
<Item Id="{9b31a53f-4bae-4b97-8356-39a48bd91e9c}" />
</Sortings>
</SortingRule>
</Item>
<Item Id="{45e128f7-55bf-4186-b09c-760d2a6477cb}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule" />
<Item Id="{1c54e8e0-33dd-4a95-8899-42ba94669156}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule">
<SortingRule Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.MultipleSortingsRule">
<Sortings>
<Item Id="{b76710ac-780e-4cad-bd0c-02f7f676db0f}" />
</Sortings>
</SortingRule>
</Item>
<Item Id="{48b47296-0fd0-4056-bdc1-b09ae6266d06}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule" />
<Item Id="{9d6898f1-002e-4c71-a281-1ec6e78a3003}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule">
<SortingRule Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.MultipleSortingsRule">
<Sortings>
<Item Id="{f1959e1c-1062-4a5f-a26d-b66a530b56dc}" />
</Sortings>
</SortingRule>
</Item>
<Item Id="{4651e354-b408-4df4-bb8c-0490daddccaa}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule" />
<Item Id="{6653a3b6-576e-4f5e-9c6a-a440ee257399}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule">
<SortingRule Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.MultipleSortingsRule">
<Sortings>
<Item Id="{dc81be48-841a-48c0-bb6a-e70cb3c26341}" />
</Sortings>
</SortingRule>
</Item>
<Item Id="{b8475833-a96e-4e5a-825c-bf3266fcf330}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule" />
<DeletedItem Id="{1eb07ab2-16f0-4bf2-a2a6-33b899b861b8}" />
</Rules>
</Item>
<Item Id="{fb41924a-35f9-47ee-8f8c-74cc34c4bf63}">
<IsActive>True</IsActive>
<Rules>
<Item Id="{b98b9ab7-3a4c-4b50-8c32-771f758e4507}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule" />
<Item Id="{175afa49-1b02-4335-8697-426564eb966b}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule" />
<Item Id="{793c3efa-da34-4af7-9338-b079461a74c8}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule" />
<Item Id="{2a66d808-4878-480c-b9b8-8ae03700c1e8}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule" />
<Item Id="{3f3676c5-45dd-45df-888a-0f07b1b3707d}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule" />
<Item Id="{1b549ff5-3ce2-43ff-93bc-f4da46903b6a}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule" />
<Item Id="{761299d1-70d4-44bf-b06b-ccd7c409e448}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule" />
<Item Id="{b0120844-0819-42f0-a49b-62c4c7497a99}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule" />
<Item Id="{00b09b98-ac03-48d2-b2a0-9c6e1b7ba907}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule" />
<Item Id="{612527cd-1b3e-41be-8a3c-fce9731c5798}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule" />
<Item Id="{9766d442-e0fb-427f-99b0-405fc57f6d4f}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule">
<SortingRule Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.MultipleSortingsRule">
<Sortings>
<Item Id="{f82b02cb-b317-44af-ab65-2a3c90761afe}" />
</Sortings>
</SortingRule>
</Item>
<Item Id="{f2379393-c0e5-4bee-a551-6383d0c1f843}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule" />
<Item Id="{7c815ce6-5ac8-4c71-a1a9-b7fc8adea37c}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule" />
<Item Id="{300ff320-0e96-446c-8de9-3f808dafce55}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule">
<SortingRule Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.MultipleSortingsRule">
<Sortings>
<Item Id="{78216f10-5d1c-41eb-a048-bd50ff4224fd}" />
</Sortings>
</SortingRule>
</Item>
<Item Id="{f0d58f97-1bb4-4762-95e4-fb7f7b1e184f}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule">
<SortingRule Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.MultipleSortingsRule">
<Sortings>
<Item Id="{c17095aa-afa2-4136-8771-c2a7ac591d15}" />
</Sortings>
</SortingRule>
</Item>
<Item Id="{b1d169c2-df12-4479-8c61-2af5bbee8a06}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule">
<SortingRule Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.MultipleSortingsRule">
<Sortings>
<Item Id="{c2c647e5-108d-4154-ad61-de7692259d35}" />
</Sortings>
</SortingRule>
</Item>
<Item Id="{b02e42bb-4a64-4196-8d23-aca15029a893}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule" />
<Item Id="{096ce198-34f5-4265-8a4a-4a4b00c711ac}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule" />
<Item Id="{eddf6fb8-a51b-4632-b8fd-20965a20efe2}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule" />
<Item Id="{0aa19952-807c-40eb-ab92-6c7a5f3f79b2}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule" />
<Item Id="{e7160382-ae65-4f07-aaac-72e124360b1d}" Type="DevExpress.CodeAnalysis.CodeCleanUp.OrganizeMembers.OrganizeMembersGroupAndSortRule" />
</Rules>
</Item>
</Schemes>
<UseMemberSections>False</UseMemberSections>
</Options>
</Root>

1034
.gitignore vendored

File diff suppressed because it is too large Load Diff

View File

@@ -1,84 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{68C1F8EA-7828-4E46-8F04-91105C55860E}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>AiCoreUnitTest</RootNamespace>
<AssemblyName>AiCoreUnitTest</AssemblyName>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">15.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
<ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages</ReferencePath>
<IsCodedUITest>False</IsCodedUITest>
<TestProjectType>UnitTest</TestProjectType>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'DebugRemote|AnyCPU'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\DebugRemote\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>AnyCPU</PlatformTarget>
<LangVersion>7.3</LangVersion>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
</ItemGroup>
<ItemGroup>
<Compile Include="Ollama2FacadeTest.cs" />
<Compile Include="OllamaFacadeTest.cs" />
<Compile Include="OpenWebUIFacadeTest.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Data\Data.csproj">
<Project>{B0D73E3D-4AE7-4024-93A6-DB1F46D7CCEE}</Project>
<Name>Data</Name>
</ProjectReference>
<ProjectReference Include="..\Server\Components\AICore\AICore.csproj">
<Project>{69D70CA9-0DF9-419E-BFAF-F4539F129BD9}</Project>
<Name>AICore</Name>
</ProjectReference>
<ProjectReference Include="..\Service\Service.csproj">
<Project>{094331C3-ECEE-4C89-BBFD-4C9DED89F0EF}</Project>
<Name>Service</Name>
</ProjectReference>
<ProjectReference Include="..\Shared\Shared.csproj">
<Project>{2F50B83D-A3F0-4EC4-979A-3F9B7E3D8ED4}</Project>
<Name>Shared</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<ItemGroup>
<PackageReference Include="MSTest.TestAdapter" />
<PackageReference Include="MSTest.TestFramework" />
</ItemGroup>
</Project>

View File

@@ -1,53 +0,0 @@
using AICore.Facade.LLM;
using BeWo.Service.Core;
using BS.Shared.Core;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace AiCoreUnitTest
{
[TestClass]
public class Ollama2FacadeTest
{
public OllamaApiClient Client { get; set; }
[TestInitialize]
public void TestInitialize()
{
var url = "https://ai3.ownsoft.de";
var key = "mu9ZPuUXJ4aVGLU1WL2RfPCeSMRmJREwyjVJBP7bHfSz8quZRqN7e7UwnwCDi8GZ";
Client = new OllamaApiClient(url, key, BS.Shared.AiModelSource.ollama2);
}
[TestMethod]
public void GetModels()
{
var response = Client.GetAiModelle();
Assert.IsTrue(response?.Success);
}
[TestMethod]
public void SendMessage()
{
var logger = ServiceLogger.GetRequestLogger(out string id);
// Build Payload
var payload = new
{
model = "gemma3:12b",
messages = new[] {
new {
role = "user",
message = "why is the sky blue?"
}
},
requestid = id
};
var response = Client.SendAiMessageRequest(payload, out string message, out string model, out int? duration, logger);
Assert.IsTrue(response?.Success);
}
}
}

View File

@@ -1,63 +0,0 @@
using AICore.Facade.LLM;
using BeWo.Data.Security;
using BeWo.Service.Core;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Microsoft.VisualStudio.TestTools.UnitTesting.Logging;
using System;
using System.Net;
using System.Runtime.InteropServices;
namespace AiCoreUnitTest
{
[TestClass]
public class OllamaFacadeTest
{
public string OllamaUrl { get; set; }
public string OllamaKey { get; set; }
[TestInitialize]
public void TestInitialize()
{
OllamaUrl = "https://ai2.ownsoft.de";
OllamaKey = "mu9ZPuUXJ4aVGLU1WL2RfPCeSMRmJREwyjVJBP7bHfSz8quZRqN7e7UwnwCDi8GZ";
}
public OllamaApiClient GetClient()
=> new OllamaApiClient(OllamaUrl, OllamaKey);
[TestMethod]
public void GetModels()
{
var client = GetClient();
var response = client.GetAiModelle();
Assert.IsTrue(response?.Success);
}
[TestMethod]
public void SendMessage()
{
var client = GetClient();
var logger = ServiceLogger.GetRequestLogger(out string id);
// Build Payload
var payload = new
{
model = "llama3:latest",
messages = new[] {
new {
role = "user",
message = "Say 'Hi'!"
}
},
customerid = UserRightHelper.GetTenant(),
requestid = id
};
var response = client.SendAiMessageRequest(payload, out string message, out string model, out int? duration, logger);
Assert.IsTrue(response?.Success);
}
}
}

View File

@@ -1,56 +0,0 @@
using AICore.Facade.LLM;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using System.Net;
namespace AiCoreUnitTest
{
//[TestClass]
//public class OpenWebUIFacadeTest
//{
// public string OpenWebUIUrl { get; set; }
// public string OpenWebUIKey { get; set; }
// [TestInitialize]
// public void TestInitialize()
// {
// OpenWebUIUrl = "https://owui1.ownsoft.de";
// OpenWebUIKey = "sk-7f5d8c418630448dbe31ab1c7e8b100a";
// }
// public OpenWebApiClient GetClient()
// => new OpenWebApiClient(OpenWebUIUrl, OpenWebUIKey);
// [TestMethod]
// public void GetModels()
// {
// var client = GetClient();
// var models = client.GetAiModelle();
// Assert.IsNotNull(models);
// }
// [TestMethod]
// public void SendMessage()
// {
// var client = GetClient();
// // Build Payload
// var payload = new
// {
// model = "llama3.2:latest",
// messages = new[] {
// new {
// role = "user",
// content = "Say Hi!"
// }
// }
// };
// var response = client.SendAiMessageRequest(payload, out string message, out string model, out int? duration);
// Assert.IsTrue(response?.Success);
// }
//}
}

View File

@@ -1,20 +0,0 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
[assembly: AssemblyTitle("AiCoreUnitTest")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("AiCoreUnitTest")]
[assembly: AssemblyCopyright("Copyright © 2025")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: ComVisible(false)]
[assembly: Guid("68c1f8ea-7828-4e46-8f04-91105c55860e")]
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@@ -1,63 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.5.0" newVersion="4.0.5.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.7" newVersion="9.0.0.7" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Reflection.Metadata" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.7" newVersion="9.0.0.7" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.5.0" newVersion="4.0.5.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Text.Encoding.CodePages" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.7" newVersion="9.0.0.7" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Composition.AttributedModel" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.7" newVersion="9.0.0.7" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Bcl.AsyncInterfaces" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.7" newVersion="9.0.0.7" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.IO.Pipelines" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.7" newVersion="9.0.0.7" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Composition.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.7" newVersion="9.0.0.7" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Composition.TypedParts" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.7" newVersion="9.0.0.7" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Composition.Hosting" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.7" newVersion="9.0.0.7" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.3.0" newVersion="6.0.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.6.0" newVersion="4.1.6.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.5.1.0" newVersion="2.5.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -1,134 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{9BAB16DE-E284-4B57-BD09-763FC5CE521A}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>BeWo.Styles</RootNamespace>
<AssemblyName>BeWo.Styles</AssemblyName>
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="DevExpress.Xpf.Core.v23.2, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Xpf.Core.v23.2.Extensions, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="PresentationFramework.Aero" />
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
<Reference Include="WindowsBase" />
</ItemGroup>
<ItemGroup>
<Compile Include="Converters\EnumTranslationConverter.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<Page Include="Colors\Colors.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="ControlStyles\ButtonStyles.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="ControlStyles\CheckBoxStyles.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="ControlStyles\ComboBoxStyles.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="ControlStyles\CustomControlsStyles.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="ControlStyles\DateEditStyles.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="ControlStyles\GroupBoxStyles.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="ControlStyles\LabelStyles.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="ControlStyles\ListBoxStyles.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="ControlStyles\NullItemComboBoxStyles.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="ControlStyles\RadioButtonStyles.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="ControlStyles\TextBoxStyles.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="ControlStyles\TextEditStyles.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="ControlStyles\ToggleButtonStyles.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="DataTemplates\ControlTemplates.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="DataTemplates\DataTemplates.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="ModernOrangeBlack.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Controls\Controls.csproj">
<Project>{d5e53b0f-bf5a-41e8-93e2-0f32845fc729}</Project>
<Name>Controls</Name>
</ProjectReference>
<ProjectReference Include="..\Shared\Shared.csproj">
<Project>{2f50b83d-a3f0-4ec4-979a-3f9b7e3d8ed4}</Project>
<Name>Shared</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@@ -1,16 +0,0 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<SolidColorBrush x:Key="TextBoxBorderBrush" Color="#FF86878F" />
<SolidColorBrush x:Key="ControlBackgroundBrush" Color="#FFFDC784" />
<SolidColorBrush x:Key="ControlSelectedBackgroundBrush" Color="#FFFFD86C" />
<SolidColorBrush x:Key="ControlMouseOverBackgroundBrush" Color="#FFDCA158" />
<SolidColorBrush x:Key="TabItemHotTextBrush" Color="#FFAB4A07" />
<LinearGradientBrush x:Key="ApplicationBackground" StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0.38" Color="#FFDADADB" />
<GradientStop Offset="0.725" Color="#FFA9B8C2" />
<GradientStop Offset="0.91" Color="#FF4E565A" />
</LinearGradientBrush>
</ResourceDictionary>

View File

@@ -1,153 +0,0 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- Base -->
<Style x:Key="BaseButton" TargetType="{x:Type Button}">
<Setter Property="Margin" Value="3" />
<Setter Property="Height" Value="25" />
<Setter Property="HorizontalAlignment" Value="Center" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="Foreground" Value="#FFFFFFFF" />
<Setter Property="FontFamily" Value="Microsoft Sans Serif" />
<Setter Property="FontSize" Value="12" />
</Style>
<Style
x:Key="PrimaryButton"
BasedOn="{StaticResource BaseButton}"
TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<ControlTemplate.Resources>
<Storyboard x:Key="Timeline1">
<DoubleAnimationUsingKeyFrames
BeginTime="00:00:00"
Storyboard.TargetName="glow"
Storyboard.TargetProperty="(UIElement.Opacity)">
<SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="1" />
</DoubleAnimationUsingKeyFrames>
</Storyboard>
<Storyboard x:Key="Timeline2">
<DoubleAnimationUsingKeyFrames
BeginTime="00:00:00"
Storyboard.TargetName="glow"
Storyboard.TargetProperty="(UIElement.Opacity)">
<SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="0" />
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</ControlTemplate.Resources>
<Border
x:Name="border"
Padding="0,0,0,0"
BorderBrush="#FF000000"
BorderThickness="1,1,1,1"
CornerRadius="4,4,4,4">
<Border.Background>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#FF000000" />
<GradientStop Offset="1" Color="#FF262626" />
</LinearGradientBrush>
</Border.Background>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="0.5*" />
<RowDefinition Height="0.5*" />
</Grid.RowDefinitions>
<Border
x:Name="glow"
Grid.RowSpan="2"
Width="Auto"
HorizontalAlignment="Stretch"
CornerRadius="4,4,4,4"
Opacity="0">
<Border.Background>
<RadialGradientBrush>
<RadialGradientBrush.RelativeTransform>
<TransformGroup>
<ScaleTransform ScaleX="1.702" ScaleY="2.243" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="0" />
<TranslateTransform X="-0.368" Y="-0.152" />
</TransformGroup>
</RadialGradientBrush.RelativeTransform>
<GradientStop Offset="0" Color="#B28DBDFF" />
<GradientStop Offset="1" Color="#008DBDFF" />
</RadialGradientBrush>
</Border.Background>
</Border>
<Border
x:Name="shine"
Grid.Row="0"
Width="Auto"
Margin="0,0,0,0"
HorizontalAlignment="Stretch"
CornerRadius="4,4,0,0">
<Border.Background>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#99FFFFFF" />
<GradientStop Offset="1" Color="#33FFFFFF" />
</LinearGradientBrush>
</Border.Background>
</Border>
<Border
Grid.Row="0"
Grid.RowSpan="2"
Margin="0,0,0,0">
<ContentPresenter
Width="Auto"
Margin="3,0,3,0"
HorizontalAlignment="Center"
VerticalAlignment="Center" />
</Border>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="shine" Property="Opacity" Value="0.4" />
<Setter TargetName="border" Property="Background" Value="#998DBDFF" />
<Setter TargetName="glow" Property="Visibility" Value="Hidden" />
<Setter TargetName="border" Property="BorderBrush" Value="#FF0C0C0C" />
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Trigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource Timeline1}" />
</Trigger.EnterActions>
<Trigger.ExitActions>
<BeginStoryboard x:Name="Timeline2_BeginStoryboard" Storyboard="{StaticResource Timeline2}" />
</Trigger.ExitActions>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter TargetName="border" Property="Background" Value="#FF808080" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style
x:Key="HideDisabledButton"
BasedOn="{StaticResource PrimaryButton}"
TargetType="{x:Type Button}">
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=IsEnabled}" Value="False">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
</Style>
<Style
x:Key="HideDisabledButtonSmall"
BasedOn="{StaticResource HideDisabledButton}"
TargetType="{x:Type Button}">
<Setter Property="Height" Value="21" />
</Style>
<Style
x:Key="PrimaryButtonSmall"
BasedOn="{StaticResource PrimaryButton}"
TargetType="{x:Type Button}">
<Setter Property="Height" Value="21" />
</Style>
</ResourceDictionary>

View File

@@ -1,7 +0,0 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style x:Key="CheckBoxBase" TargetType="{x:Type CheckBox}">
<Setter Property="Margin" Value="5" />
<Setter Property="Padding" Value="0" />
<Setter Property="VerticalAlignment" Value="Center" />
</Style>
</ResourceDictionary>

View File

@@ -1,161 +0,0 @@
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Microsoft_Windows_Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero"
xmlns:conv="clr-namespace:BeWo.Styles.Converters">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="..\DataTemplates\ControlTemplates.xaml" />
<ResourceDictionary Source="..\ControlStyles\ToggleButtonStyles.xaml" />
</ResourceDictionary.MergedDictionaries>
<!-- ComboBox -->
<Style x:Key="BaseComboBox" TargetType="ComboBox">
<Setter Property="Margin" Value="3" />
<Setter Property="Height" Value="23" />
<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" />
</Style>
<Style
x:Key="PrimaryComboBox"
BasedOn="{StaticResource BaseComboBox}"
TargetType="ComboBox">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ComboBox}">
<Grid SnapsToDevicePixels="true">
<Border
x:Name="Bd"
MaxWidth="{TemplateBinding MaxWidth}"
Padding="1"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
<Grid Grid.IsSharedSizeScope="true">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" SharedSizeGroup="ComboBoxButton" />
</Grid.ColumnDefinitions>
<Border
x:Name="SelectedItemBorder"
Grid.ColumnSpan="2"
Margin="2,1,20,1">
<ContentPresenter
Margin="3,0"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
Content="{TemplateBinding SelectionBoxItem}"
ContentTemplate="{TemplateBinding SelectionBoxItemTemplate}"
ContentTemplateSelector="{TemplateBinding ItemTemplateSelector}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</Border>
<ToggleButton
Grid.ColumnSpan="3"
IsChecked="{Binding Path=IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"
Style="{StaticResource ComboBoxTransparentButtonStyle}" />
</Grid>
</Border>
<Popup
x:Name="PART_Popup"
AllowsTransparency="true"
Focusable="false"
IsOpen="{Binding Path=IsDropDownOpen, RelativeSource={RelativeSource TemplatedParent}}"
Placement="Bottom"
PopupAnimation="{DynamicResource {x:Static SystemParameters.ComboBoxPopupAnimationKey}}">
<Microsoft_Windows_Themes:SystemDropShadowChrome
x:Name="Shdw"
MinWidth="{TemplateBinding ActualWidth}"
MaxHeight="{TemplateBinding MaxDropDownHeight}"
Color="Transparent">
<Border
x:Name="DropDownBorder"
Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
BorderBrush="{DynamicResource {x:Static SystemColors.WindowFrameBrushKey}}"
BorderThickness="1">
<ScrollViewer>
<ItemsPresenter KeyboardNavigation.DirectionalNavigation="Contained" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</ScrollViewer>
</Border>
</Microsoft_Windows_Themes:SystemDropShadowChrome>
</Popup>
</Grid>
<ControlTemplate.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsSelectionBoxHighlighted" Value="true" />
<Condition Property="IsDropDownOpen" Value="false" />
</MultiTrigger.Conditions>
<Setter Property="Foreground" Value="#FF000000" />
</MultiTrigger>
<Trigger Property="IsSelectionBoxHighlighted" Value="true">
<Setter TargetName="SelectedItemBorder" Property="Background" Value="{DynamicResource ControlSelectedBackgroundBrush}" />
</Trigger>
<Trigger SourceName="PART_Popup" Property="HasDropShadow" Value="true">
<Setter TargetName="Shdw" Property="Margin" Value="0,0,5,5" />
<Setter TargetName="Shdw" Property="Color" Value="#71000000" />
</Trigger>
<Trigger Property="HasItems" Value="false">
<Setter TargetName="DropDownBorder" Property="MinHeight" Value="95" />
</Trigger>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}" />
<Setter TargetName="Bd" Property="Background" Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" />
</Trigger>
<Trigger Property="IsGrouping" Value="true">
<Setter Property="ScrollViewer.CanContentScroll" Value="false" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsEditable" Value="true">
<Setter Property="IsTabStop" Value="false" />
<Setter Property="Padding" Value="0,1" />
<Setter Property="Template" Value="{StaticResource ComboBoxEditableTemplate}" />
</Trigger>
</Style.Triggers>
</Style>
<Style
x:Key="NoWrapComboBox"
BasedOn="{StaticResource PrimaryComboBox}"
TargetType="ComboBox">
<Setter Property="ItemTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock Text="{Binding Path=.}" TextWrapping="NoWrap" />
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
<conv:EnumTranslationConverter x:Key="EnumTranslationConverter" />
<DataTemplate x:Key="ListItemView">
<TextBlock
x:Name="textblock"
MaxWidth="362"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
Text="{Binding Path=., Converter={StaticResource EnumTranslationConverter}}"
TextTrimming="CharacterEllipsis"
TextWrapping="NoWrap"
ToolTip="{Binding Path=Text, RelativeSource={RelativeSource Self}}" />
</DataTemplate>
<Style
x:Key="EnumTranslationComboBox"
BasedOn="{StaticResource PrimaryComboBox}"
TargetType="ComboBox">
<Setter Property="ItemTemplate" Value="{StaticResource ListItemView}" />
<Setter Property="HorizontalAlignment" Value="Stretch" />
<Setter Property="MaxWidth" Value="400" />
</Style>
</ResourceDictionary>

View File

@@ -1 +0,0 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" />

View File

@@ -1,74 +0,0 @@
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:dxei="http://schemas.devexpress.com/winfx/2008/xaml/editors/internal"
xmlns:dxet="http://schemas.devexpress.com/winfx/2008/xaml/editors/themekeys">
<Style
x:Key="BaseDateEdit"
BasedOn="{StaticResource {x:Type dxe:DateEdit}}"
TargetType="{x:Type dxe:DateEdit}">
<Setter Property="Margin" Value="3" />
<Setter Property="Padding" Value="1" />
<Setter Property="Height" Value="23" />
<Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.WindowBrushKey}}" />
<Setter Property="BorderBrush" Value="{StaticResource TextBoxBorderBrush}" />
<Setter Property="BorderThickness" Value="1" />
</Style>
<Style
x:Key="PrimaryDateEdit"
BasedOn="{StaticResource BaseDateEdit}"
TargetType="{x:Type dxe:DateEdit}">
<Style.Resources>
<DataTemplate x:Key="{dxet:ButtonsThemeKey ResourceKey=ToggleButtonInfoTemplate, IsThemeIndependent=True}">
<dx:ToggleStateButton
x:Name="PART_Item"
Margin="2"
dxei:SetIsCheckedToButtonInfoBehavior.IsEnabled="True"
IsChecked="{Binding Path=IsChecked, Mode=TwoWay}"
Style="{StaticResource ComboBoxTransparentButtonStyle}" />
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding Path=IsDefaultButton}" Value="True">
<Setter TargetName="PART_Item" Property="IsChecked" Value="{Binding Path=(dxe:BaseEdit.OwnerEdit).IsPopupOpen, RelativeSource={RelativeSource Self}, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
</DataTrigger>
<DataTrigger Binding="{Binding Path=IsDefaultButton}" Value="False">
<Setter TargetName="PART_Item" Property="HandleToggle" Value="False" />
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</Style.Resources>
</Style>
<Style
x:Key="DateEditDateOnly"
BasedOn="{StaticResource PrimaryDateEdit}"
TargetType="{x:Type dxe:DateEdit}">
<Setter Property="MaskType" Value="DateOnlyAdvancingCaret" />
<Setter Property="MaskUseAsDisplayFormat" Value="true" />
</Style>
<Style
x:Key="DateEditDateOnlyShort"
BasedOn="{StaticResource DateEditDateOnly}"
TargetType="{x:Type dxe:DateEdit}">
<Setter Property="Mask" Value="d" />
</Style>
<Style
x:Key="DateEditDateOnlyLong"
BasedOn="{StaticResource DateEditDateOnly}"
TargetType="{x:Type dxe:DateEdit}">
<Setter Property="Mask" Value="D" />
</Style>
<Style
x:Key="DateEditDateTime"
BasedOn="{StaticResource PrimaryDateEdit}"
TargetType="{x:Type dxe:DateEdit}">
<Setter Property="MaskType" Value="DateTimeAdvancingCaret" />
<Setter Property="MaskUseAsDisplayFormat" Value="true" />
</Style>
<Style
x:Key="DateEditDateTimeShort"
BasedOn="{StaticResource DateEditDateTime}"
TargetType="{x:Type dxe:DateEdit}">
<Setter Property="Mask" Value="F" />
</Style>
</ResourceDictionary>

View File

@@ -1,52 +0,0 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style x:Key="BaseGroupBox" TargetType="{x:Type GroupBox}">
<Setter Property="BorderThickness" Value="1" />
<Setter Property="Padding" Value="3" />
</Style>
<Style
x:Key="ObjectEditGroupBox"
BasedOn="{StaticResource BaseGroupBox}"
TargetType="{x:Type GroupBox}">
<!-- <Setter Property="BorderBrush" Value="#D5DFE5" />-->
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupBox}">
<Grid SnapsToDevicePixels="true">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Border
x:Name="Header"
Grid.Row="0"
Grid.Column="0"
MinHeight="20"
Padding="3,0,3,0"
TextElement.FontFamily="Microsoft Sans Serif"
TextElement.FontSize="16"
TextElement.Foreground="{StaticResource TabItemHotTextBrush}">
<ContentPresenter
ContentSource="Header"
RecognizesAccessKey="True"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</Border>
<Border
Grid.Row="1"
BorderBrush="#FF86878F"
BorderThickness="0,0,0,1" />
<ContentPresenter
Grid.Row="2"
Grid.Column="0"
Margin="{TemplateBinding Padding}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>

View File

@@ -1,19 +0,0 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style x:Key="BaseLabel" TargetType="Label">
<Setter Property="IsEnabled" Value="True" />
<Setter Property="Margin" Value="3" />
<Setter Property="Padding" Value="3" />
<Setter Property="VerticalAlignment" Value="Top" />
<Setter Property="TextElement.Foreground" Value="#FF000000" />
</Style>
<Style x:Key="Header1" TargetType="Label">
<Setter Property="TextElement.FontSize" Value="16" />
<Setter Property="TextElement.Foreground" Value="{StaticResource TabItemHotTextBrush}" />
<Setter Property="TextElement.FontFamily" Value="Microsoft Sans Serif" />
<Setter Property="Padding" Value="3,0,3,0" />
<Setter Property="MinHeight" Value="20" />
<Setter Property="HorizontalAlignment" Value="Center" />
<Setter Property="Margin" Value="3,-6,3,6" />
</Style>
</ResourceDictionary>

View File

@@ -1,27 +0,0 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- ListBoxItems -->
<Style x:Key="PhotoListBoxItem" TargetType="ListBoxItem">
<Setter Property="HorizontalAlignment" Value="Stretch" />
<Style.Resources>
<SolidColorBrush
x:Key="{x:Static SystemColors.HighlightBrushKey}"
Opacity="0.4"
Color="AliceBlue" />
<SolidColorBrush
x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}"
Opacity="0.4"
Color="AliceBlue" />
</Style.Resources>
</Style>
<!-- ListBox -->
<Style x:Key="PhotoListBox" TargetType="{x:Type ListBox}">
<Setter Property="Foreground" Value="Black" />
<Setter Property="Margin" Value="5" />
<Setter Property="MinHeight" Value="100" />
<Setter Property="MaxHeight" Value="800" />
<Setter Property="IsSynchronizedWithCurrentItem" Value="True" />
<Setter Property="SelectionMode" Value="Single" />
<Setter Property="ItemContainerStyle" Value="{StaticResource PhotoListBoxItem}" />
</Style>
</ResourceDictionary>

View File

@@ -1,148 +0,0 @@
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Microsoft_Windows_Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero"
xmlns:uc="clr-namespace:BeWo.Controls;assembly=BeWo.Controls">
<!-- NullItemComboBox -->
<Style x:Key="PrimaryNullItemComboBox" TargetType="uc:NullItemComboBox">
<Setter Property="Margin" Value="3" />
<Setter Property="Height" Value="23" />
<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="ItemTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock Text="{Binding Path=.}" TextWrapping="NoWrap" />
</DataTemplate>
</Setter.Value>
</Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type uc:NullItemComboBox}">
<Grid SnapsToDevicePixels="true">
<Border
x:Name="Bd"
Padding="1"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
<Grid Grid.IsSharedSizeScope="true">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" SharedSizeGroup="ComboBoxButton" />
</Grid.ColumnDefinitions>
<Border
x:Name="SelectedItemBorder"
Grid.ColumnSpan="2"
Margin="2,1,20,1">
<ContentPresenter
Margin="3,0"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
Content="{TemplateBinding SelectionBoxItem}"
ContentTemplate="{TemplateBinding SelectionBoxItemTemplate}"
ContentTemplateSelector="{TemplateBinding ItemTemplateSelector}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</Border>
<ToggleButton
Grid.Column="0"
Grid.ColumnSpan="3"
IsChecked="{Binding Path=IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"
Style="{DynamicResource ComboBoxTransparentButtonStyle}" />
<Label
x:Name="label_nullText"
Grid.Column="0"
Grid.ColumnSpan="2"
Margin="5,3,20,3"
Padding="0"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Content="{TemplateBinding NullText}"
IsHitTestVisible="False"
Visibility="Hidden" />
</Grid>
</Border>
<Popup
x:Name="PART_Popup"
AllowsTransparency="true"
Focusable="false"
IsOpen="{Binding Path=IsDropDownOpen, RelativeSource={RelativeSource TemplatedParent}}"
Placement="Bottom"
PopupAnimation="{DynamicResource {x:Static SystemParameters.ComboBoxPopupAnimationKey}}">
<Microsoft_Windows_Themes:SystemDropShadowChrome
x:Name="Shdw"
MinWidth="{TemplateBinding ActualWidth}"
MaxHeight="{TemplateBinding MaxDropDownHeight}"
Color="Transparent">
<Border
x:Name="DropDownBorder"
Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
BorderBrush="{DynamicResource {x:Static SystemColors.WindowFrameBrushKey}}"
BorderThickness="1">
<ScrollViewer>
<ItemsPresenter KeyboardNavigation.DirectionalNavigation="Contained" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</ScrollViewer>
</Border>
</Microsoft_Windows_Themes:SystemDropShadowChrome>
</Popup>
</Grid>
<ControlTemplate.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsSelectionBoxHighlighted" Value="true" />
<Condition Property="IsDropDownOpen" Value="false" />
</MultiTrigger.Conditions>
<Setter Property="Foreground" Value="#FF000000" />
</MultiTrigger>
<Trigger Property="IsSelectionBoxHighlighted" Value="true">
<Setter TargetName="SelectedItemBorder" Property="Background" Value="{DynamicResource ControlSelectedBackgroundBrush}" />
</Trigger>
<Trigger SourceName="PART_Popup" Property="HasDropShadow" Value="true">
<Setter TargetName="Shdw" Property="Margin" Value="0,0,5,5" />
<Setter TargetName="Shdw" Property="Color" Value="#71000000" />
</Trigger>
<Trigger Property="HasItems" Value="false">
<Setter TargetName="DropDownBorder" Property="MinHeight" Value="95" />
</Trigger>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}" />
<Setter TargetName="Bd" Property="Background" Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" />
</Trigger>
<Trigger Property="IsGrouping" Value="true">
<Setter Property="ScrollViewer.CanContentScroll" Value="false" />
</Trigger>
<Trigger Property="SelectedItem" Value="{x:Null}">
<Setter TargetName="label_nullText" Property="Visibility" Value="Visible" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsEditable" Value="true">
<Setter Property="IsTabStop" Value="false" />
<Setter Property="Padding" Value="0,1" />
<Setter Property="Template" Value="{DynamicResource ComboBoxEditableTemplate}" />
</Trigger>
</Style.Triggers>
</Style>
<Style
x:Key="EnumTranslationNullItemComboBox"
BasedOn="{StaticResource PrimaryNullItemComboBox}"
TargetType="{x:Type uc:NullItemComboBox}">
<Setter Property="ItemTemplate" Value="{DynamicResource ListItemView}" />
<Setter Property="HorizontalAlignment" Value="Stretch" />
<Setter Property="MaxWidth" Value="400" />
</Style>
</ResourceDictionary>

View File

@@ -1,7 +0,0 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- Base -->
<Style x:Key="BaseRadioButton" TargetType="RadioButton">
<Setter Property="Margin" Value="3" />
<Setter Property="VerticalAlignment" Value="Top" />
</Style>
</ResourceDictionary>

View File

@@ -1,71 +0,0 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style x:Key="TextBoxBase" TargetType="{x:Type TextBox}">
<Setter Property="Margin" Value="3" />
<Setter Property="Padding" Value="3" />
<Setter Property="Height" Value="23" />
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="HorizontalAlignment" Value="Stretch" />
</Style>
<Style
x:Key="TextBoxNoticeBase"
BasedOn="{StaticResource TextBoxBase}"
TargetType="{x:Type TextBox}">
<Setter Property="MinHeight" Value="23" />
<Setter Property="VerticalContentAlignment" Value="Stretch" />
<Setter Property="VerticalAlignment" Value="Stretch" />
<Setter Property="AcceptsReturn" Value="True" />
<Setter Property="VerticalScrollBarVisibility" Value="Auto" />
</Style>
<Style
x:Key="TextBoxNotice"
BasedOn="{StaticResource TextBoxNoticeBase}"
TargetType="{x:Type TextBox}">
<Setter Property="MaxHeight" Value="150" />
<Setter Property="Height" Value="auto" />
</Style>
<Style
x:Key="TextBoxNoticeLarge"
BasedOn="{StaticResource TextBoxNoticeBase}"
TargetType="{x:Type TextBox}">
<Setter Property="MinHeight" Value="58" />
<Setter Property="Height" Value="auto" />
<Setter Property="MaxHeight" Value="300" />
</Style>
<Style
x:Key="TextBoxNoticeExtended"
BasedOn="{StaticResource TextBoxNoticeBase}"
TargetType="{x:Type TextBox}">
<Setter Property="MinHeight" Value="150" />
<Setter Property="Height" Value="150" />
<Setter Property="MaxHeight" Value="150" />
</Style>
<Style
x:Key="TextBoxNoticeSmallExtended"
BasedOn="{StaticResource TextBoxNoticeBase}"
TargetType="{x:Type TextBox}">
<Setter Property="MinHeight" Value="75" />
<Setter Property="MaxHeight" Value="75" />
</Style>
<Style x:Key="ComboBoxEditableTextBox" TargetType="{x:Type TextBox}">
<Setter Property="OverridesDefaultStyle" Value="true" />
<Setter Property="AllowDrop" Value="true" />
<Setter Property="MinWidth" Value="0" />
<Setter Property="MinHeight" Value="0" />
<Setter Property="FocusVisualStyle" Value="{x:Null}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TextBox}">
<ScrollViewer
x:Name="PART_ContentHost"
Background="Transparent"
Focusable="false"
HorizontalScrollBarVisibility="Hidden"
VerticalScrollBarVisibility="Hidden" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>

View File

@@ -1,76 +0,0 @@
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors">
<!-- Base -->
<Style x:Key="BaseTextEdit" TargetType="{x:Type dxe:TextEdit}">
<Setter Property="Margin" Value="3" />
<Setter Property="Height" Value="23" />
</Style>
<Style
x:Key="BaseNumberMaskTextEdit"
BasedOn="{StaticResource BaseTextEdit}"
TargetType="{x:Type dxe:TextEdit}">
<Setter Property="MaskType" Value="Numeric" />
<Setter Property="MaskUseAsDisplayFormat" Value="True" />
</Style>
<!-- Special -->
<Style
x:Key="TextEditNumber"
BasedOn="{StaticResource BaseNumberMaskTextEdit}"
TargetType="{x:Type dxe:TextEdit}">
<Setter Property="Mask" Value="N0" />
</Style>
<Style
x:Key="TextEditYear"
BasedOn="{StaticResource BaseNumberMaskTextEdit}"
TargetType="{x:Type dxe:TextEdit}">
<Setter Property="Mask" Value="0000" />
</Style>
<Style
x:Key="TextEditQm"
BasedOn="{StaticResource BaseNumberMaskTextEdit}"
TargetType="{x:Type dxe:TextEdit}">
<Setter Property="Mask" Value="######0.00 qm" />
</Style>
<Style
x:Key="TextEditCurrency"
BasedOn="{StaticResource BaseNumberMaskTextEdit}"
TargetType="{x:Type dxe:TextEdit}">
<Setter Property="Mask" Value="######0.## $" />
<Setter Property="dxe:NumericMaskOptions.AlwaysShowDecimalSeparator" Value="False" />
</Style>
<Style
x:Key="TextEditHours"
BasedOn="{StaticResource BaseNumberMaskTextEdit}"
TargetType="{x:Type dxe:TextEdit}">
<Setter Property="Mask" Value="########0.## Std" />
<Setter Property="dxe:NumericMaskOptions.AlwaysShowDecimalSeparator" Value="False" />
</Style>
<Style
x:Key="TextEditDays"
BasedOn="{StaticResource BaseNumberMaskTextEdit}"
TargetType="{x:Type dxe:TextEdit}">
<Setter Property="Mask" Value="########0.## Tage" />
<Setter Property="dxe:NumericMaskOptions.AlwaysShowDecimalSeparator" Value="False" />
</Style>
<!-- Numbers -->
<Style
x:Key="TextEditNumberDecimal"
BasedOn="{StaticResource BaseNumberMaskTextEdit}"
TargetType="{x:Type dxe:TextEdit}">
<Setter Property="Mask" Value="########0.##" />
<Setter Property="dxe:NumericMaskOptions.AlwaysShowDecimalSeparator" Value="False" />
</Style>
<Style
x:Key="TextEditNumberDecimalNullable"
BasedOn="{StaticResource BaseNumberMaskTextEdit}"
TargetType="{x:Type dxe:TextEdit}">
<Setter Property="Mask" Value="#########.##" />
<Setter Property="dxe:NumericMaskOptions.AlwaysShowDecimalSeparator" Value="False" />
</Style>
</ResourceDictionary>

View File

@@ -1,149 +0,0 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style x:Key="ComboBoxTransparentButtonStyle" TargetType="{x:Type ToggleButton}">
<Setter Property="MinWidth" Value="0" />
<Setter Property="MinHeight" Value="0" />
<Setter Property="Width" Value="Auto" />
<Setter Property="Height" Value="Auto" />
<Setter Property="Background" Value="Transparent" />
<Setter Property="Focusable" Value="false" />
<Setter Property="ClickMode" Value="Press" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ToggleButton}">
<ControlTemplate.Resources>
<Storyboard x:Key="Timeline1">
<DoubleAnimationUsingKeyFrames
BeginTime="00:00:00"
Storyboard.TargetName="glow"
Storyboard.TargetProperty="(UIElement.Opacity)">
<SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="1" />
</DoubleAnimationUsingKeyFrames>
<DoubleAnimation
Storyboard.TargetName="border"
Storyboard.TargetProperty="(UIElement.RenderTransform).(ScaleTransform.ScaleX)"
To="1.3"
Duration="0:0:0.2" />
<DoubleAnimation
Storyboard.TargetName="border"
Storyboard.TargetProperty="(UIElement.RenderTransform).(ScaleTransform.ScaleY)"
To="1.3"
Duration="0:0:0.2" />
</Storyboard>
<Storyboard x:Key="Timeline2">
<DoubleAnimationUsingKeyFrames
BeginTime="00:00:00"
Storyboard.TargetName="glow"
Storyboard.TargetProperty="(UIElement.Opacity)">
<SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="0" />
</DoubleAnimationUsingKeyFrames>
<DoubleAnimation
Storyboard.TargetName="border"
Storyboard.TargetProperty="(UIElement.RenderTransform).(ScaleTransform.ScaleX)"
Duration="0:0:0.2" />
<DoubleAnimation
Storyboard.TargetName="border"
Storyboard.TargetProperty="(UIElement.RenderTransform).(ScaleTransform.ScaleY)"
Duration="0:0:0.2" />
</Storyboard>
</ControlTemplate.Resources>
<Grid SnapsToDevicePixels="true">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Border
x:Name="border"
Grid.Column="1"
Width="{DynamicResource {x:Static SystemParameters.ScrollWidthKey}}"
Margin="0,0,0,0"
Padding="0,0,0,0"
BorderBrush="#FF000000"
BorderThickness="1,1,1,1"
CornerRadius="4,4,4,4">
<Border.Background>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#FF000000" />
<GradientStop Offset="1" Color="#FF262626" />
</LinearGradientBrush>
</Border.Background>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="0.5*" />
<RowDefinition Height="0.5*" />
</Grid.RowDefinitions>
<Border
x:Name="glow"
Grid.RowSpan="2"
Width="Auto"
HorizontalAlignment="Stretch"
CornerRadius="3,3,3,3"
Opacity="0">
<Border.Background>
<RadialGradientBrush>
<RadialGradientBrush.RelativeTransform>
<TransformGroup>
<ScaleTransform ScaleX="1.702" ScaleY="2.243" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="0" />
<TranslateTransform X="-0.368" Y="-0.152" />
</TransformGroup>
</RadialGradientBrush.RelativeTransform>
<GradientStop Offset="0" Color="#B28DBDFF" />
<GradientStop Offset="1" Color="#008DBDFF" />
</RadialGradientBrush>
</Border.Background>
</Border>
<Border
x:Name="shine"
Grid.Row="0"
Width="Auto"
Margin="0,0,0,0"
HorizontalAlignment="Stretch"
CornerRadius="3,3,0,0">
<Border.Background>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#99FFFFFF" />
<GradientStop Offset="1" Color="#33FFFFFF" />
</LinearGradientBrush>
</Border.Background>
</Border>
<TextBlock
Grid.Row="0"
Grid.RowSpan="2"
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontFamily="Webdings"
FontSize="9"
Text="6"
TextWrapping="Wrap">
<TextBlock.Foreground>
<SolidColorBrush Color="{DynamicResource {x:Static SystemColors.ControlColorKey}}" />
</TextBlock.Foreground>
</TextBlock>
</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}}"/>-->
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter TargetName="shine" Property="Opacity" Value="0.4" />
<Setter TargetName="border" Property="Background" Value="#99FFA500" />
<Setter TargetName="glow" Property="Visibility" Value="Hidden" />
<Setter TargetName="border" Property="BorderBrush" Value="#FF0C0C0C" />
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Trigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource Timeline1}" />
</Trigger.EnterActions>
<Trigger.ExitActions>
<BeginStoryboard x:Name="Timeline2_BeginStoryboard" Storyboard="{StaticResource Timeline2}" />
</Trigger.ExitActions>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>

View File

@@ -1,37 +0,0 @@
using BS.Shared.Core;
using System;
using System.Globalization;
using System.Windows.Data;
namespace BeWo.Styles.Converters
{
public class EnumTranslationConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is Enum e)
{
if (EnumTranslations.Wohnhilfe2Translation.TryGetValue(e, out string v))
{
return v;
}
// RE:
// EnumTranslationConverter, aber betrachtet nicht alle?
// Brauche hier eig nur EnumTranslations.Gkv2Translation
if (EnumTranslations.AllTranslations.TryGetValue(e, out string vv))
{
return vv;
}
return e;
}
return null;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}

View File

@@ -1,92 +0,0 @@
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Microsoft_Windows_Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero">
<Style x:Key="ComboBoxFocusVisual">
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<Rectangle
Margin="4,4,21,4"
SnapsToDevicePixels="true"
Stroke="Black"
StrokeDashArray="1 2"
StrokeThickness="1" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!-- Control Templates -->
<ControlTemplate x:Key="ComboBoxEditableTemplate" TargetType="{x:Type ComboBox}">
<Grid SnapsToDevicePixels="true">
<Border
x:Name="Bd"
Padding="1"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
<Grid Grid.IsSharedSizeScope="true">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" SharedSizeGroup="ComboBoxButton" />
</Grid.ColumnDefinitions>
<TextBox
x:Name="PART_EditableTextBox"
Grid.Column="1"
Margin="{TemplateBinding Padding}"
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
IsReadOnly="{Binding Path=IsReadOnly, RelativeSource={RelativeSource TemplatedParent}}"
Style="{DynamicResource ComboBoxEditableTextBox}" />
<ToggleButton
Grid.Column="0"
Grid.ColumnSpan="3"
Background="{x:Null}"
IsChecked="{Binding Path=IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"
Style="{DynamicResource ComboBoxTransparentButtonStyle}" />
</Grid>
</Border>
<Popup
x:Name="PART_Popup"
AllowsTransparency="true"
Focusable="false"
IsOpen="{Binding Path=IsDropDownOpen, RelativeSource={RelativeSource TemplatedParent}}"
Placement="Bottom"
PopupAnimation="{DynamicResource {x:Static SystemParameters.ComboBoxPopupAnimationKey}}">
<Microsoft_Windows_Themes:SystemDropShadowChrome
x:Name="Shdw"
MinWidth="{TemplateBinding ActualWidth}"
MaxHeight="{TemplateBinding MaxDropDownHeight}"
Color="Transparent">
<Border
x:Name="DropDownBorder"
Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
BorderBrush="{DynamicResource {x:Static SystemColors.WindowFrameBrushKey}}"
BorderThickness="1">
<ScrollViewer>
<ItemsPresenter KeyboardNavigation.DirectionalNavigation="Contained" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</ScrollViewer>
</Border>
</Microsoft_Windows_Themes:SystemDropShadowChrome>
</Popup>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="HasItems" Value="false">
<Setter TargetName="DropDownBorder" Property="MinHeight" Value="95" />
</Trigger>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}" />
<Setter TargetName="Bd" Property="Background" Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" />
</Trigger>
<Trigger Property="IsGrouping" Value="true">
<Setter Property="ScrollViewer.CanContentScroll" Value="false" />
</Trigger>
<Trigger SourceName="PART_Popup" Property="HasDropShadow" Value="true">
<Setter TargetName="Shdw" Property="Margin" Value="0,0,5,5" />
<Setter TargetName="Shdw" Property="Color" Value="#71000000" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</ResourceDictionary>

View File

@@ -1,4 +0,0 @@
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:conv="clr-namespace:BeWo.Styles.Converters" />

View File

@@ -1,41 +0,0 @@
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Colors\Colors.xaml" />
<ResourceDictionary Source="DataTemplates\ControlTemplates.xaml" />
<ResourceDictionary Source="DataTemplates\DataTemplates.xaml" />
<ResourceDictionary Source="ControlStyles\ButtonStyles.xaml" />
<ResourceDictionary Source="ControlStyles\CheckBoxStyles.xaml" />
<ResourceDictionary Source="ControlStyles\ComboBoxStyles.xaml" />
<ResourceDictionary Source="ControlStyles\CustomControlsStyles.xaml" />
<ResourceDictionary Source="ControlStyles\DateEditStyles.xaml" />
<ResourceDictionary Source="ControlStyles\GroupBoxStyles.xaml" />
<ResourceDictionary Source="ControlStyles\LabelStyles.xaml" />
<ResourceDictionary Source="ControlStyles\ListBoxStyles.xaml" />
<ResourceDictionary Source="ControlStyles\RadioButtonStyles.xaml" />
<ResourceDictionary Source="ControlStyles\TextBoxStyles.xaml" />
<ResourceDictionary Source="ControlStyles\TextEditStyles.xaml" />
<ResourceDictionary Source="ControlStyles\ToggleButtonStyles.xaml" />
<!-- Benötigt TextBoxStyles + ToggleButtonStyles -->
<ResourceDictionary Source="ControlStyles\NullItemComboBoxStyles.xaml" />
</ResourceDictionary.MergedDictionaries>
<!-- Default Styles -->
<Style BasedOn="{StaticResource HideDisabledButton}" TargetType="Button" />
<Style BasedOn="{StaticResource CheckBoxBase}" TargetType="CheckBox" />
<Style BasedOn="{StaticResource NoWrapComboBox}" TargetType="ComboBox" />
<Style BasedOn="{StaticResource PrimaryDateEdit}" TargetType="dxe:DateEdit" />
<Style BasedOn="{StaticResource BaseLabel}" TargetType="Label" />
<Style BasedOn="{StaticResource PrimaryNullItemComboBox}" TargetType="controls:NullItemComboBox" />
<Style BasedOn="{StaticResource BaseRadioButton}" TargetType="RadioButton" />
<Style BasedOn="{StaticResource TextBoxBase}" TargetType="TextBox" />
<Style BasedOn="{StaticResource BaseTextEdit}" TargetType="dxe:TextEdit" />
</ResourceDictionary>

View File

@@ -1,36 +0,0 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// Allgemeine Informationen über eine Assembly werden über die folgenden
// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
// die einer Assembly zugeordnet sind.
[assembly: AssemblyTitle("BeWo.Styles")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("BeWo.Styles")]
[assembly: AssemblyCopyright("Copyright © 2025")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Durch Festlegen von ComVisible auf FALSE werden die Typen in dieser Assembly
// für COM-Komponenten unsichtbar. Wenn Sie auf einen Typ in dieser Assembly von
// COM aus zugreifen müssen, sollten Sie das ComVisible-Attribut für diesen Typ auf "True" festlegen.
[assembly: ComVisible(false)]
// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird
[assembly: Guid("9bab16de-e284-4b57-bd09-763fc5ce521a")]
// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
//
// Hauptversion
// Nebenversion
// Buildnummer
// Revision
//
// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
// indem Sie "*" wie unten gezeigt eingeben:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

157
BeWo.sln
View File

@@ -1,7 +1,7 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.12.35707.178
# 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
@@ -333,7 +333,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SPZLeverkusen", "ReportImp\
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Weitblick-ambulantBeWo", "ReportImp\Weitblick-ambulantBeWo\Weitblick-ambulantBeWo.csproj", "{2E99BA67-61A2-47BD-8412-6ECBC126D83E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KommMitBewo", "ReportImp\KomMitBewo\KommMitBewo.csproj", "{1A585E99-09AB-4924-8FB9-9C9D1FE48044}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KomMitBewo", "ReportImp\KomMitBewo\KomMitBewo.csproj", "{1A585E99-09AB-4924-8FB9-9C9D1FE48044}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "skmRheydt", "ReportImp\skmRheydt\skmRheydt.csproj", "{B9C896DD-8C7D-4F37-B826-203D2E83D650}"
EndProject
@@ -377,6 +377,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CaritasAhlen", "ReportImp\C
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TabulaRasa", "ReportImp\TabulaRasa\TabulaRasa.csproj", "{8E7F125B-32E9-4D59-A47A-C0994A980CD3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SPZLeverkusen2", "SPZLeverkusen2\SPZLeverkusen2.csproj", "{74040CE0-1D24-4F47-91B9-7F166EADBC61}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChatController", "..\Chat\ChatController\ChatController.csproj", "{8A83C4DC-A0B1-4A51-AE1D-366D7A05B298}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PraxisPusteblume", "ReportImp\PraxisPusteblume\PraxisPusteblume.csproj", "{A6E699B3-8399-4B8D-90F1-119B021F3D44}"
@@ -439,6 +441,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkmLeverkusen", "ReportImp\
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EmpathieFachassistenz", "ReportImp\EmpathieFachassistenz\EmpathieFachassistenz.csproj", "{F618F17B-5905-4D09-A976-733011945A9B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LebenUndWohnenChristianWilke", "ReportImp\LebenUndWohnenChristianWilke\LebenUndWohnenChristianWilke.csproj", "{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CaritasverbandDuerenJuelichEV", "ReportImp\CaritasverbandDuerenJuelichEV\CaritasverbandDuerenJuelichEV.csproj", "{86E14AC3-CD3F-4E63-8154-26DFA2E6ABEB}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KoelnerBeWoSelbstbestimmtLeben", "ReportImp\KoelnerBeWoSelbstbestimmtLeben\KoelnerBeWoSelbstbestimmtLeben.csproj", "{FE240F9F-CC85-4F7D-9080-BEEBE76B0735}"
@@ -503,6 +507,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AutismusLeben", "ReportImp\
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LeWoAachen", "ReportImp\LeWoAachen\LeWoAachen.csproj", "{C9CDE69B-D3A1-4BF7-B988-1A4ACF2D664A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ToprakGmbH", "ReportImp\ToprakGmbH\ToprakGmbH.csproj", "{12BC3B31-7499-44EC-B7B9-E3CEB2D9997B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AlzeyTeilhabe", "ReportImp\AlzeyTeilhabe\AlzeyTeilhabe.csproj", "{D173B437-EAD2-4535-B59D-76737600E058}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChristopherusHausFamilienhilfe", "ReportImp\ChristopherusHausFamilienhilfe\ChristopherusHausFamilienhilfe.csproj", "{B104F622-7BE6-4DFE-9E20-32915507860D}"
@@ -595,14 +601,11 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MalteserJohanniterJohannesh
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Dakota", "Dakota\Dakota.csproj", "{47331732-DD96-4075-869F-83AA9F3F9937}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Components", "Components", "{7C7F1E62-B72D-419B-98A5-26A307456638}"
ProjectSection(SolutionItems) = preProject
Server\Components\README.txt = Server\Components\README.txt
EndProjectSection
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BeWoLauncher", "BeWoLauncher\BeWoLauncher.csproj", "{E3BA193A-A64F-4CE6-91BE-F54E551797BE}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerUtils", "Server\Components\ServerUtils\ServerUtils.csproj", "{EC2349FB-7FE0-4AD1-B28B-A7A27AF80A57}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharedLauncher", "SharedLauncher\SharedLauncher.csproj", "{EFE05C79-E0DD-4311-8B90-A8DA7EBDF36F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AICore", "Server\Components\AICore\AICore.csproj", "{69D70CA9-0DF9-419E-BFAF-F4539F129BD9}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DownloadServer", "DownloadServer\DownloadServer.csproj", "{18019E8C-C6DA-4B1B-9C2B-908BC14911AB}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -3007,6 +3010,22 @@ Global
{8E7F125B-32E9-4D59-A47A-C0994A980CD3}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{8E7F125B-32E9-4D59-A47A-C0994A980CD3}.Release|x86.ActiveCfg = Release|Any CPU
{8E7F125B-32E9-4D59-A47A-C0994A980CD3}.Release|x86.Build.0 = Release|Any CPU
{74040CE0-1D24-4F47-91B9-7F166EADBC61}.Debug|.NET.ActiveCfg = Debug|Any CPU
{74040CE0-1D24-4F47-91B9-7F166EADBC61}.Debug|.NET.Build.0 = Debug|Any CPU
{74040CE0-1D24-4F47-91B9-7F166EADBC61}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{74040CE0-1D24-4F47-91B9-7F166EADBC61}.Debug|Any CPU.Build.0 = Debug|Any CPU
{74040CE0-1D24-4F47-91B9-7F166EADBC61}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{74040CE0-1D24-4F47-91B9-7F166EADBC61}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{74040CE0-1D24-4F47-91B9-7F166EADBC61}.Debug|x86.ActiveCfg = Debug|Any CPU
{74040CE0-1D24-4F47-91B9-7F166EADBC61}.Debug|x86.Build.0 = Debug|Any CPU
{74040CE0-1D24-4F47-91B9-7F166EADBC61}.Release|.NET.ActiveCfg = Release|Any CPU
{74040CE0-1D24-4F47-91B9-7F166EADBC61}.Release|.NET.Build.0 = Release|Any CPU
{74040CE0-1D24-4F47-91B9-7F166EADBC61}.Release|Any CPU.ActiveCfg = Release|Any CPU
{74040CE0-1D24-4F47-91B9-7F166EADBC61}.Release|Any CPU.Build.0 = Release|Any CPU
{74040CE0-1D24-4F47-91B9-7F166EADBC61}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{74040CE0-1D24-4F47-91B9-7F166EADBC61}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{74040CE0-1D24-4F47-91B9-7F166EADBC61}.Release|x86.ActiveCfg = Release|Any CPU
{74040CE0-1D24-4F47-91B9-7F166EADBC61}.Release|x86.Build.0 = Release|Any CPU
{8A83C4DC-A0B1-4A51-AE1D-366D7A05B298}.Debug|.NET.ActiveCfg = Debug|Any CPU
{8A83C4DC-A0B1-4A51-AE1D-366D7A05B298}.Debug|.NET.Build.0 = Debug|Any CPU
{8A83C4DC-A0B1-4A51-AE1D-366D7A05B298}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -3503,6 +3522,22 @@ Global
{F618F17B-5905-4D09-A976-733011945A9B}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{F618F17B-5905-4D09-A976-733011945A9B}.Release|x86.ActiveCfg = Release|Any CPU
{F618F17B-5905-4D09-A976-733011945A9B}.Release|x86.Build.0 = Release|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Debug|.NET.ActiveCfg = Debug|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Debug|.NET.Build.0 = Debug|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Debug|x86.ActiveCfg = Debug|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Debug|x86.Build.0 = Debug|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Release|.NET.ActiveCfg = Release|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Release|.NET.Build.0 = Release|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Release|Any CPU.Build.0 = Release|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Release|x86.ActiveCfg = Release|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Release|x86.Build.0 = Release|Any CPU
{86E14AC3-CD3F-4E63-8154-26DFA2E6ABEB}.Debug|.NET.ActiveCfg = Debug|Any CPU
{86E14AC3-CD3F-4E63-8154-26DFA2E6ABEB}.Debug|.NET.Build.0 = Debug|Any CPU
{86E14AC3-CD3F-4E63-8154-26DFA2E6ABEB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -4015,6 +4050,22 @@ Global
{C9CDE69B-D3A1-4BF7-B988-1A4ACF2D664A}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{C9CDE69B-D3A1-4BF7-B988-1A4ACF2D664A}.Release|x86.ActiveCfg = Release|Any CPU
{C9CDE69B-D3A1-4BF7-B988-1A4ACF2D664A}.Release|x86.Build.0 = Release|Any CPU
{12BC3B31-7499-44EC-B7B9-E3CEB2D9997B}.Debug|.NET.ActiveCfg = Debug|Any CPU
{12BC3B31-7499-44EC-B7B9-E3CEB2D9997B}.Debug|.NET.Build.0 = Debug|Any CPU
{12BC3B31-7499-44EC-B7B9-E3CEB2D9997B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{12BC3B31-7499-44EC-B7B9-E3CEB2D9997B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{12BC3B31-7499-44EC-B7B9-E3CEB2D9997B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{12BC3B31-7499-44EC-B7B9-E3CEB2D9997B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{12BC3B31-7499-44EC-B7B9-E3CEB2D9997B}.Debug|x86.ActiveCfg = Debug|Any CPU
{12BC3B31-7499-44EC-B7B9-E3CEB2D9997B}.Debug|x86.Build.0 = Debug|Any CPU
{12BC3B31-7499-44EC-B7B9-E3CEB2D9997B}.Release|.NET.ActiveCfg = Release|Any CPU
{12BC3B31-7499-44EC-B7B9-E3CEB2D9997B}.Release|.NET.Build.0 = Release|Any CPU
{12BC3B31-7499-44EC-B7B9-E3CEB2D9997B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{12BC3B31-7499-44EC-B7B9-E3CEB2D9997B}.Release|Any CPU.Build.0 = Release|Any CPU
{12BC3B31-7499-44EC-B7B9-E3CEB2D9997B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{12BC3B31-7499-44EC-B7B9-E3CEB2D9997B}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{12BC3B31-7499-44EC-B7B9-E3CEB2D9997B}.Release|x86.ActiveCfg = Release|Any CPU
{12BC3B31-7499-44EC-B7B9-E3CEB2D9997B}.Release|x86.Build.0 = Release|Any CPU
{D173B437-EAD2-4535-B59D-76737600E058}.Debug|.NET.ActiveCfg = Debug|Any CPU
{D173B437-EAD2-4535-B59D-76737600E058}.Debug|.NET.Build.0 = Debug|Any CPU
{D173B437-EAD2-4535-B59D-76737600E058}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -4751,38 +4802,54 @@ Global
{47331732-DD96-4075-869F-83AA9F3F9937}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{47331732-DD96-4075-869F-83AA9F3F9937}.Release|x86.ActiveCfg = Release|Any CPU
{47331732-DD96-4075-869F-83AA9F3F9937}.Release|x86.Build.0 = Release|Any CPU
{EC2349FB-7FE0-4AD1-B28B-A7A27AF80A57}.Debug|.NET.ActiveCfg = Debug|Any CPU
{EC2349FB-7FE0-4AD1-B28B-A7A27AF80A57}.Debug|.NET.Build.0 = Debug|Any CPU
{EC2349FB-7FE0-4AD1-B28B-A7A27AF80A57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EC2349FB-7FE0-4AD1-B28B-A7A27AF80A57}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EC2349FB-7FE0-4AD1-B28B-A7A27AF80A57}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{EC2349FB-7FE0-4AD1-B28B-A7A27AF80A57}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{EC2349FB-7FE0-4AD1-B28B-A7A27AF80A57}.Debug|x86.ActiveCfg = Debug|Any CPU
{EC2349FB-7FE0-4AD1-B28B-A7A27AF80A57}.Debug|x86.Build.0 = Debug|Any CPU
{EC2349FB-7FE0-4AD1-B28B-A7A27AF80A57}.Release|.NET.ActiveCfg = Release|Any CPU
{EC2349FB-7FE0-4AD1-B28B-A7A27AF80A57}.Release|.NET.Build.0 = Release|Any CPU
{EC2349FB-7FE0-4AD1-B28B-A7A27AF80A57}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EC2349FB-7FE0-4AD1-B28B-A7A27AF80A57}.Release|Any CPU.Build.0 = Release|Any CPU
{EC2349FB-7FE0-4AD1-B28B-A7A27AF80A57}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{EC2349FB-7FE0-4AD1-B28B-A7A27AF80A57}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{EC2349FB-7FE0-4AD1-B28B-A7A27AF80A57}.Release|x86.ActiveCfg = Release|Any CPU
{EC2349FB-7FE0-4AD1-B28B-A7A27AF80A57}.Release|x86.Build.0 = Release|Any CPU
{69D70CA9-0DF9-419E-BFAF-F4539F129BD9}.Debug|.NET.ActiveCfg = Debug|Any CPU
{69D70CA9-0DF9-419E-BFAF-F4539F129BD9}.Debug|.NET.Build.0 = Debug|Any CPU
{69D70CA9-0DF9-419E-BFAF-F4539F129BD9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{69D70CA9-0DF9-419E-BFAF-F4539F129BD9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{69D70CA9-0DF9-419E-BFAF-F4539F129BD9}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{69D70CA9-0DF9-419E-BFAF-F4539F129BD9}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{69D70CA9-0DF9-419E-BFAF-F4539F129BD9}.Debug|x86.ActiveCfg = Debug|Any CPU
{69D70CA9-0DF9-419E-BFAF-F4539F129BD9}.Debug|x86.Build.0 = Debug|Any CPU
{69D70CA9-0DF9-419E-BFAF-F4539F129BD9}.Release|.NET.ActiveCfg = Release|Any CPU
{69D70CA9-0DF9-419E-BFAF-F4539F129BD9}.Release|.NET.Build.0 = Release|Any CPU
{69D70CA9-0DF9-419E-BFAF-F4539F129BD9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{69D70CA9-0DF9-419E-BFAF-F4539F129BD9}.Release|Any CPU.Build.0 = Release|Any CPU
{69D70CA9-0DF9-419E-BFAF-F4539F129BD9}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{69D70CA9-0DF9-419E-BFAF-F4539F129BD9}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{69D70CA9-0DF9-419E-BFAF-F4539F129BD9}.Release|x86.ActiveCfg = Release|Any CPU
{69D70CA9-0DF9-419E-BFAF-F4539F129BD9}.Release|x86.Build.0 = Release|Any CPU
{E3BA193A-A64F-4CE6-91BE-F54E551797BE}.Debug|.NET.ActiveCfg = Debug|Any CPU
{E3BA193A-A64F-4CE6-91BE-F54E551797BE}.Debug|.NET.Build.0 = Debug|Any CPU
{E3BA193A-A64F-4CE6-91BE-F54E551797BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E3BA193A-A64F-4CE6-91BE-F54E551797BE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E3BA193A-A64F-4CE6-91BE-F54E551797BE}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{E3BA193A-A64F-4CE6-91BE-F54E551797BE}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{E3BA193A-A64F-4CE6-91BE-F54E551797BE}.Debug|x86.ActiveCfg = Debug|Any CPU
{E3BA193A-A64F-4CE6-91BE-F54E551797BE}.Debug|x86.Build.0 = Debug|Any CPU
{E3BA193A-A64F-4CE6-91BE-F54E551797BE}.Release|.NET.ActiveCfg = Release|Any CPU
{E3BA193A-A64F-4CE6-91BE-F54E551797BE}.Release|.NET.Build.0 = Release|Any CPU
{E3BA193A-A64F-4CE6-91BE-F54E551797BE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E3BA193A-A64F-4CE6-91BE-F54E551797BE}.Release|Any CPU.Build.0 = Release|Any CPU
{E3BA193A-A64F-4CE6-91BE-F54E551797BE}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{E3BA193A-A64F-4CE6-91BE-F54E551797BE}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{E3BA193A-A64F-4CE6-91BE-F54E551797BE}.Release|x86.ActiveCfg = Release|Any CPU
{E3BA193A-A64F-4CE6-91BE-F54E551797BE}.Release|x86.Build.0 = Release|Any CPU
{EFE05C79-E0DD-4311-8B90-A8DA7EBDF36F}.Debug|.NET.ActiveCfg = Debug|Any CPU
{EFE05C79-E0DD-4311-8B90-A8DA7EBDF36F}.Debug|.NET.Build.0 = Debug|Any CPU
{EFE05C79-E0DD-4311-8B90-A8DA7EBDF36F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EFE05C79-E0DD-4311-8B90-A8DA7EBDF36F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EFE05C79-E0DD-4311-8B90-A8DA7EBDF36F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{EFE05C79-E0DD-4311-8B90-A8DA7EBDF36F}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{EFE05C79-E0DD-4311-8B90-A8DA7EBDF36F}.Debug|x86.ActiveCfg = Debug|Any CPU
{EFE05C79-E0DD-4311-8B90-A8DA7EBDF36F}.Debug|x86.Build.0 = Debug|Any CPU
{EFE05C79-E0DD-4311-8B90-A8DA7EBDF36F}.Release|.NET.ActiveCfg = Release|Any CPU
{EFE05C79-E0DD-4311-8B90-A8DA7EBDF36F}.Release|.NET.Build.0 = Release|Any CPU
{EFE05C79-E0DD-4311-8B90-A8DA7EBDF36F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EFE05C79-E0DD-4311-8B90-A8DA7EBDF36F}.Release|Any CPU.Build.0 = Release|Any CPU
{EFE05C79-E0DD-4311-8B90-A8DA7EBDF36F}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{EFE05C79-E0DD-4311-8B90-A8DA7EBDF36F}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{EFE05C79-E0DD-4311-8B90-A8DA7EBDF36F}.Release|x86.ActiveCfg = Release|Any CPU
{EFE05C79-E0DD-4311-8B90-A8DA7EBDF36F}.Release|x86.Build.0 = Release|Any CPU
{18019E8C-C6DA-4B1B-9C2B-908BC14911AB}.Debug|.NET.ActiveCfg = Debug|Any CPU
{18019E8C-C6DA-4B1B-9C2B-908BC14911AB}.Debug|.NET.Build.0 = Debug|Any CPU
{18019E8C-C6DA-4B1B-9C2B-908BC14911AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{18019E8C-C6DA-4B1B-9C2B-908BC14911AB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{18019E8C-C6DA-4B1B-9C2B-908BC14911AB}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{18019E8C-C6DA-4B1B-9C2B-908BC14911AB}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{18019E8C-C6DA-4B1B-9C2B-908BC14911AB}.Debug|x86.ActiveCfg = Debug|Any CPU
{18019E8C-C6DA-4B1B-9C2B-908BC14911AB}.Debug|x86.Build.0 = Debug|Any CPU
{18019E8C-C6DA-4B1B-9C2B-908BC14911AB}.Release|.NET.ActiveCfg = Release|Any CPU
{18019E8C-C6DA-4B1B-9C2B-908BC14911AB}.Release|.NET.Build.0 = Release|Any CPU
{18019E8C-C6DA-4B1B-9C2B-908BC14911AB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{18019E8C-C6DA-4B1B-9C2B-908BC14911AB}.Release|Any CPU.Build.0 = Release|Any CPU
{18019E8C-C6DA-4B1B-9C2B-908BC14911AB}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{18019E8C-C6DA-4B1B-9C2B-908BC14911AB}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{18019E8C-C6DA-4B1B-9C2B-908BC14911AB}.Release|x86.ActiveCfg = Release|Any CPU
{18019E8C-C6DA-4B1B-9C2B-908BC14911AB}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -4967,6 +5034,7 @@ Global
{888961E7-A394-4F3B-A667-09EA2F80ED4B} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{96A3E6E3-3F9B-4CAB-B306-3F23DE6A40F9} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{8E7F125B-32E9-4D59-A47A-C0994A980CD3} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{74040CE0-1D24-4F47-91B9-7F166EADBC61} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{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}
@@ -4998,6 +5066,7 @@ Global
{56602D65-47F7-4175-A065-A044FE7F6C81} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{E30D35E8-9B15-4345-B8B7-422415A659DA} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{F618F17B-5905-4D09-A976-733011945A9B} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{86E14AC3-CD3F-4E63-8154-26DFA2E6ABEB} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{FE240F9F-CC85-4F7D-9080-BEEBE76B0735} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{976CC5EF-26C9-4415-84C6-33A450222F04} = {D8A691C5-146D-4613-86CC-438F02FE9106}
@@ -5030,6 +5099,7 @@ Global
{CEA6A3D2-DDD4-4699-89AE-FEF7908C46D5} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{54419AAB-93DB-482F-B304-035D001081DD} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{C9CDE69B-D3A1-4BF7-B988-1A4ACF2D664A} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{12BC3B31-7499-44EC-B7B9-E3CEB2D9997B} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{D173B437-EAD2-4535-B59D-76737600E058} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{B104F622-7BE6-4DFE-9E20-32915507860D} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{39876291-220B-412E-8ADE-B7A24621656D} = {D8A691C5-146D-4613-86CC-438F02FE9106}
@@ -5076,9 +5146,8 @@ Global
{AD3876F3-40C0-47CF-BA36-687139903F87} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{28331CB1-17FD-4B58-A837-E0249CAAC535} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{47331732-DD96-4075-869F-83AA9F3F9937} = {FEB0336B-F053-40B6-92DD-7DE56AB9408A}
{7C7F1E62-B72D-419B-98A5-26A307456638} = {FEB0336B-F053-40B6-92DD-7DE56AB9408A}
{EC2349FB-7FE0-4AD1-B28B-A7A27AF80A57} = {7C7F1E62-B72D-419B-98A5-26A307456638}
{69D70CA9-0DF9-419E-BFAF-F4539F129BD9} = {7C7F1E62-B72D-419B-98A5-26A307456638}
{E3BA193A-A64F-4CE6-91BE-F54E551797BE} = {E7543C39-A44C-40C9-82C9-E7FAA2D9A852}
{18019E8C-C6DA-4B1B-9C2B-908BC14911AB} = {FEB0336B-F053-40B6-92DD-7DE56AB9408A}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {FBE985BB-9F0F-4DBB-8F94-ABC37A803FF9}

View File

@@ -1,26 +0,0 @@
<UserControl
x:Class="BeWo.AI.Controls.VoiceToTextButtonControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Name="root">
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Button
x:Name="ButtonOpenTranskriptionView"
Margin="0"
Click="ButtonOpenTranskriptionView_Click">
<Image
Width="22"
Height="22"
Margin="0,0,0,0"
Source="/BeWoPlaner;component/Ressources/Icons/KI/Icon_Mikro_Weiss+Orange.png" />
</Button>
</Grid>
</UserControl>

View File

@@ -1,134 +0,0 @@
using BeWo.AI.View;
using BeWo.Services;
using BeWo.ViewModel.ListViewModel;
using BS.Shared.Translation;
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.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace BeWo.AI.Controls
{
/// <summary>
/// Interaktionslogik für VoiceToTextButtonControl.xaml
/// </summary>
public partial class VoiceToTextButtonControl : UserControl
{
public static readonly DependencyProperty TargetTextBoxProperty =
DependencyProperty.Register(
nameof(TargetTextBox),
typeof(TextBox),
typeof(VoiceToTextButtonControl));
public VoiceToTextButtonControl()
{
InitializeComponent();
if (!HasRightToUseAIVoice)
{
root.Visibility = Visibility.Collapsed;
}
}
public TextBox TargetTextBox
{
get => (TextBox)GetValue(TargetTextBoxProperty);
set => SetValue(TargetTextBoxProperty, value);
}
public static bool HasRightToUseAIVoice
{
get
{
if (!BeWoApp.AppSettings.ShowAIVoice || String.IsNullOrEmpty(BeWoApp.LoggedOnEmployeeOwnChatCode) || !BeWoApp.HasLoggedOnUserRight(BS.Shared.UserRightType.AiVoiceView))
{
return false;
}
return true;
}
}
private void ButtonOpenTranskriptionView_Click(object sender, RoutedEventArgs e)
{
OpenTranskriptionView();
}
public void OpenTranskriptionView()
{
var view = new AiTranskriptionView();
view.InitView();
var serviceRecordList = DataContext as ServiceRecordListVM;
if (serviceRecordList is null)
throw new NotImplementedException("Can't find DataContext");
var settings = serviceRecordList.AiUserSetting;
if (settings is null)
throw new NotImplementedException("Can't find DataContext (settings)");
view.DataContext = settings;
var factory = new BeWoWindowFactory();
var beWoWindow = factory.GetAnimatedBeWoWindow(Translator.Translate("BeWoPlaner"), view, 500, 600);
view.ApplyClicked += (s, e) =>
{
if (TargetTextBox != null)
{
InsertTextAtSelection(view.GetText());
}
beWoWindow.Close();
};
view.CancelClicked += (s, e) =>
{
if (!String.IsNullOrEmpty(view.GetText()))
{
if (MessageBox.Show("Sind Sie sicher, dass Sie abbrechnen und den Text verwerfen möchten?", "Abbrechen", MessageBoxButton.OKCancel) == MessageBoxResult.OK)
{
beWoWindow.Close();
}
}
else
{
beWoWindow.Close();
}
};
beWoWindow.Closed += (s, e) =>
{
settings.AutoStartRecording = settings.DataContract.AutoStartRecording;
};
beWoWindow.ShowDialog();
}
private void InsertTextAtSelection(string neuerText)
{
int start = TargetTextBox.SelectionStart;
int length = TargetTextBox.SelectionLength;
TargetTextBox.Text =
TargetTextBox.Text.Remove(start, length)
.Insert(start, neuerText);
TargetTextBox.CaretIndex = start + neuerText.Length;
}
}
}

View File

@@ -1,287 +0,0 @@
<view:BeWoView
x:Class="BeWo.AI.View.AiTranskriptionView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
xmlns:core="clr-namespace:BS.Shared.Core;assembly=BS.Shared"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
xmlns:dxlc="http://schemas.devexpress.com/winfx/2008/xaml/layoutcontrol"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:t="clr-namespace:BeWo.MultiLanguage.Markup"
xmlns:validation="clr-namespace:BeWo.Validation"
xmlns:view="clr-namespace:BeWo.View"
Width="Auto"
Height="Auto"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
d:DesignHeight="400"
d:DesignWidth="500"
Focusable="True"
Loaded="BeWoView_Loaded"
mc:Ignorable="d">
<Grid Margin="0" Background="{DynamicResource ObjectEditBackgroundBrush}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<StackPanel
Grid.Row="0"
Height="Auto"
VerticalAlignment="Center"
Orientation="Vertical">
<Button
x:Name="ButtonStart"
Grid.Row="1"
Width="270"
Height="50"
Margin="0,10,0,0"
HorizontalAlignment="Center"
Click="ButtonStartStop_Click">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="170" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Image
Width="32"
Height="32"
Margin="0,0,10,0"
Source="/BeWoPlaner;component/Ressources/Icons/KI/Icon_Mikro_Weiss+Orange.png" />
<TextBlock
x:Name="ButtonText"
Grid.Column="1"
VerticalAlignment="Center"
Text="{t:Translate Aufnahme initiieren}" />
<Viewbox
x:Name="VBPlay"
Grid.Column="2"
Width="40"
Height="40"
Visibility="Visible">
<Grid Width="100" Height="100">
<Ellipse
Width="80"
Height="80"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Fill="Transparent"
Stroke="White"
StrokeThickness="6" />
<Path Data="M 40,30 L 40,70 L 70,50 Z" Fill="White" />
</Grid>
</Viewbox>
<Viewbox
x:Name="VBStop"
Grid.Column="2"
Width="40"
Height="40"
Visibility="Hidden">
<Grid Width="100" Height="100">
<Ellipse
Width="80"
Height="80"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Fill="Transparent"
StrokeThickness="6">
<Ellipse.Stroke>
<LinearGradientBrush x:Name="RingGradient" StartPoint="0,0" EndPoint="1,0">
<LinearGradientBrush.RelativeTransform>
<RotateTransform x:Name="GradientRotate" CenterX="0.5" CenterY="0.5" />
</LinearGradientBrush.RelativeTransform>
<GradientStop Offset="0" Color="Red" />
<GradientStop Offset="1" Color="#00FF0000" />
</LinearGradientBrush>
</Ellipse.Stroke>
<Ellipse.Triggers>
<EventTrigger RoutedEvent="Loaded">
<BeginStoryboard>
<Storyboard RepeatBehavior="Forever">
<DoubleAnimation
Storyboard.TargetName="GradientRotate"
Storyboard.TargetProperty="Angle"
From="0"
To="360"
Duration="0:0:2" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Ellipse.Triggers>
</Ellipse>
<Rectangle
Width="33"
Height="33"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Fill="Red" />
</Grid>
</Viewbox>
</Grid>
</Button>
<CheckBox
Margin="3"
HorizontalAlignment="Center"
Foreground="#FF000000"
IsChecked="{Binding AutoStartRecording}">
Aufnahme zukünftig automatisch initiieren
</CheckBox>
<Label
x:Name="lblStatus"
Height="23"
HorizontalAlignment="Center" />
<StackPanel
x:Name="PanelAnimation"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Orientation="Horizontal"
Visibility="Hidden">
<StackPanel.Resources>
<Storyboard x:Key="DotAnimation" RepeatBehavior="Forever">
<DoubleAnimation
AutoReverse="True"
Storyboard.TargetProperty="Opacity"
From="0.3"
To="1"
Duration="0:0:0.6" />
</Storyboard>
</StackPanel.Resources>
<!-- Punkt 1 -->
<Ellipse
Width="8"
Height="8"
Margin="3"
Fill="#007ACC">
<Ellipse.Triggers>
<EventTrigger RoutedEvent="Loaded">
<BeginStoryboard Storyboard="{StaticResource DotAnimation}" />
</EventTrigger>
</Ellipse.Triggers>
</Ellipse>
<!-- Punkt 2 -->
<Ellipse
Width="8"
Height="8"
Margin="3"
Fill="#007ACC"
Opacity="0.3">
<Ellipse.Triggers>
<EventTrigger RoutedEvent="Loaded">
<BeginStoryboard>
<Storyboard RepeatBehavior="Forever">
<DoubleAnimation
AutoReverse="True"
BeginTime="0:0:0.2"
Storyboard.TargetProperty="Opacity"
From="0.3"
To="1"
Duration="0:0:0.6" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Ellipse.Triggers>
</Ellipse>
<!-- Punkt 3 -->
<Ellipse
Width="8"
Height="8"
Margin="3"
Fill="#007ACC"
Opacity="0.3">
<Ellipse.Triggers>
<EventTrigger RoutedEvent="Loaded">
<BeginStoryboard>
<Storyboard RepeatBehavior="Forever">
<DoubleAnimation
AutoReverse="True"
BeginTime="0:0:0.4"
Storyboard.TargetProperty="Opacity"
From="0.3"
To="1"
Duration="0:0:0.6" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Ellipse.Triggers>
</Ellipse>
</StackPanel>
<StackPanel
x:Name="PanelAiButtons"
HorizontalAlignment="Right"
Orientation="Horizontal"
Visibility="Collapsed">
<StackPanel.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/BeWoPlaner;component/Styles/ModernOrangeBlack.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</StackPanel.Resources>
<Button
x:Name="btn_AiPromptbaustein"
Padding="0"
Command="{Binding OpenAiPromptSelectionCommand}"
Content="{StaticResource AiDesignsIconKIFunktionWeissGruen}"
Style="{StaticResource PrimaryButton}" />
</StackPanel>
</StackPanel>
<TextBox
x:Name="TextBoxErgebnis"
Grid.Row="1"
Margin="3"
AcceptsReturn="True"
AcceptsTab="True"
HorizontalScrollBarVisibility="Disabled"
Style="{x:Null}"
TextWrapping="Wrap"
VerticalScrollBarVisibility="Auto" />
<StackPanel
Grid.Row="2"
Margin="3"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Orientation="Horizontal">
<TextBlock Margin="3" FontSize="10">
Dieses System verwendet KI.<LineBreak />
KI-generierte Inhalte sind zu prüfen.</TextBlock>
</StackPanel>
<StackPanel
Grid.Row="2"
Height="Auto"
Margin="5,10,10,10"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Orientation="Horizontal">
<Button
x:Name="btnApply"
Height="25"
Margin="0,0,3,0"
Click="ButtonApply_Click"
Content="{t:Translate Text übernehmen}" />
<Button
x:Name="btnClose"
Height="25"
Margin="0,0,3,0"
Click="ButtonClose_Click"
Content=" Abbrechen " />
</StackPanel>
</Grid>
</view:BeWoView>

View File

@@ -1,322 +0,0 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Forms;
using System.Windows.Input;
using System.Windows.Threading;
using BeWo.Annotations;
using BeWo.Core;
using BeWo.ServiceProxy;
using BeWo.Validation;
using BeWo.View;
using BeWo.View.Controls;
using BeWo.ViewModel;
using BeWo.ViewModel.ListViewModel;
using BeWo.ViewModel.View.AI;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.Extensions;
using BS.Shared.Translation;
using DevExpress.Mvvm;
using DevExpress.Utils;
using DevExpress.Xpf.Editors;
using DevExpress.Xpf.Grid;
using MessageBox = System.Windows.MessageBox;
namespace BeWo.AI.View
{
public partial class AiTranskriptionView : BeWoView
{
public event EventHandler ApplyClicked;
public event EventHandler CancelClicked;
bool timerActive = false;
AiVoiceDataDC currentVoiceData = null;
public ICommand OpenAiPromptSelectionCommand { get; set; }
public AiTranskriptionView()
{
InitializeComponent();
//InitAiPrompt();
}
//private void InitAiPrompt()
//{
// var vm_doku = new AiPromptbausteinSelectionComplexViewModel(AiActionType.ServiceRecordDocumentation);
// vm_doku.PromptAccepted += PromptAccepted;
// OpenAiPromptSelectionCommand = new DelegateCommand(() =>
// {
// BeWoApp.MainControl.WindowService.Show(vm_doku);
// }, () => !string.IsNullOrWhiteSpace(TextBoxErgebnis.Text));
//}
//private void PromptAccepted(object sender, AiPromptbausteinPromptVM prompt)
//{
// if (prompt is null)
// throw new NotImplementedException();
// // 1. Information aufbereiten
// // 1.1 Prompt
// var prompt_oid = prompt.DataContract.Oid.Value;
// var prompt_version = prompt.DataContract.Version;
// // 1.2 Hilfeplan
// var support_concept = SelectedCustomerNode.SupportConceptTreeNodeDC.SupportConcept;
// var support_concept_oid = support_concept.SupportConceptOid;
// var support_concept_version = support_concept.SupportConceptVersion;
// // 1.3 Aktuelles Doku Feld
// var doku_feld = TextBoxErgebnis.Text;
// // 1.4 Sichtbaren Zeiterfassungseinträge
// var service_records = CurrentVisibleVMs;
// var sr_refs = service_records.Select(x => new BeWoRefDC(x.DataContract.ServiceRecordOid.Value, x.DataContract.ServiceRecordVersion));
// // 1.5 Costbearer
// var costbearer = SelectedCustomerNode.SupportConceptTreeNodeDC.CostBearer;
// var cb_oid = costbearer.CostBearerOid.Value;
// var cb_ver = costbearer.CostBearerVersion;
// // Service Aufruf
// var req = new AiFunctionDocRequest()
// {
// AiPromptbausteinPrompt = new BeWoRefDC(prompt_oid, prompt_version),
// SupportConcept = new BeWoRefDC(support_concept_oid, support_concept_version),
// ServiceRecords = sr_refs,
// CostBearer = new BeWoRefDC(cb_oid, cb_ver),
// Dokumentation = doku_feld,
// };
// ServiceFacade.DoAiEnhancedServiceAsnyc(x => x.ExecuteAiFunctionServiceRecordDocumentation(req),
// callback =>
// {
// var viewModel = new AiPromptbausteinActionResultViewModel();
// viewModel.Result = callback.Result;
// viewModel.Accept_Button_Clicked += (s, e) =>
// {
// var sb = new StringBuilder();
// sb.AppendLine("AI Antwort:");
// sb.AppendLine(viewModel.Result);
// sb.AppendLine();
// sb.AppendLine("Original:");
// sb.AppendLine(AktuellerDokutext);
// var str = sb.ToString();
// var idx = _AiActionHistoryIndex;
// var count = _AiActionHistory.Count;
// if (count - 1 > idx)
// {
// _AiActionHistory.RemoveRange(idx + 1, count - idx - 1);
// }
// if (AktuellerDokutext != _AiActionHistory[_AiActionHistoryIndex])
// {
// _AiActionHistory.Add(AktuellerDokutext);
// _AiActionHistoryIndex++;
// }
// _AiActionHistory.Add(str);
// _AiActionHistoryIndex++;
// AktuellerDokutext = str;
// };
// viewModel.Replace_Button_Clicked += (s, e) =>
// {
// var str = viewModel.Result;
// var idx = _AiActionHistoryIndex;
// var count = _AiActionHistory.Count;
// if (count - 1 > idx)
// {
// _AiActionHistory.RemoveRange(idx + 1, count - idx - 1);
// }
// if (AktuellerDokutext != _AiActionHistory[_AiActionHistoryIndex])
// {
// _AiActionHistory.Add(AktuellerDokutext);
// _AiActionHistoryIndex++;
// }
// _AiActionHistory.Add(str);
// _AiActionHistoryIndex++;
// AktuellerDokutext = str;
// };
// viewModel.Retry_Button_Clicked += (s, e) =>
// {
// PromptAccepted(sender, prompt);
// };
// BeWoApp.MainControl.WindowService.Show(viewModel);
// }
// );
//}
public void InitView()
{
}
public string GetText()
{
return TextBoxErgebnis.Text;
}
private void StartAufnahme()
{
timerActive = true;
//lblStatus.Content = "Um die Aufnahme zu starten, klicken Sie auf den Link, den Sie in ownChat erhalten haben.";
StartTimer();
ButtonText.Text = "Aufnahme abbrechen";
currentVoiceData = ServiceFacade.DoOperationsServiceSync(s => s.StartAIVoice());
PanelAnimation.Visibility = Visibility.Visible;
VBPlay.Visibility = Visibility.Hidden;
VBStop.Visibility = Visibility.Visible;
}
private void StopAufnahme()
{
timerActive = false;
VBPlay.Visibility = Visibility.Visible;
VBStop.Visibility = Visibility.Hidden;
}
private void StartTimer()
{
var sec = BeWoApp.AppSettings.AiVoiceRequestInterval;
if (sec <= 0)
{
sec = 10;
}
new DispatcherTimer(
TimeSpan.FromMilliseconds(sec * 1000),
DispatcherPriority.Background,
(s1, e1) =>
{
CheckTranskriptionStatus();
if (!timerActive)
{
((DispatcherTimer)s1).Stop();
PanelAnimation.Visibility = Visibility.Hidden;
ButtonText.Text = "Neue Aufnahme starten";
lblStatus.Content = "";
}
},
this.Dispatcher).Start();
}
private void CheckTranskriptionStatus()
{
currentVoiceData = ServiceFacade.DoOperationsServiceSync(s => s.GetAIVoiceTranscript(currentVoiceData));
if (!String.IsNullOrEmpty(currentVoiceData.TranskriptionText))
{
InsertTextAtSelection(currentVoiceData.TranskriptionText);
lblStatus.Content = Translator.Translate("Transkription erfolgreich durchgeführt");
StopAufnahme();
}
else if (!String.IsNullOrEmpty(currentVoiceData.Error))
{
lblStatus.Content = currentVoiceData.Error;
StopAufnahme();
}
else if (!String.IsNullOrEmpty(currentVoiceData.StatusMessage))
{
lblStatus.Content = currentVoiceData.StatusMessage;
}
}
private void InsertTextAtSelection(string neuerText)
{
int start = TextBoxErgebnis.SelectionStart;
int length = TextBoxErgebnis.SelectionLength;
TextBoxErgebnis.Text =
TextBoxErgebnis.Text.Remove(start, length)
.Insert(start, neuerText);
TextBoxErgebnis.CaretIndex = start + neuerText.Length;
}
private void ButtonStartStop_Click(object sender, RoutedEventArgs e)
{
if (!timerActive)
{
StartAufnahme();
}
else
{
ButtonText.Text = "Bitte warten...";
lblStatus.Content = "Aufnahme wird abgebrochen. Bitte warten...";
StopAufnahme();
}
}
private void ButtonApply_Click(object sender, RoutedEventArgs e)
{
Save(() => ApplyClicked?.Invoke(this, EventArgs.Empty));
}
private void ButtonClose_Click(object sender, RoutedEventArgs e)
{
Save(() => CancelClicked?.Invoke(this, EventArgs.Empty));
}
private void Save(Action finish = null)
{
var userSettings = DataContext as AiUserSettingVM;
if (userSettings.IsDirty)
{
var dc = userSettings.CommitToDataContract();
ServiceFacade.DoAiEnhancedServiceAsnyc(x => x.UpdateUserSetting(dc),
st =>
{
userSettings.UpdateByDataContract(st);
finish();
});
}
else
{
finish();
}
}
private void BeWoView_Loaded(object sender, RoutedEventArgs e)
{
CheckForAutoStartRecording();
}
private void CheckForAutoStartRecording()
{
var viewmodel = DataContext as AiUserSettingVM;
if (viewmodel is null)
return;
if (viewmodel.AutoStartRecording)
ButtonStartStop_Click(this, new RoutedEventArgs());
}
}
}

View File

@@ -1,133 +1,92 @@
<UserControl
x:Class="BeWo.BSLogoControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
x:Name="UserControl"
Width="800"
Height="800"
Foreground="AliceBlue">
<UserControl.Resources>
<SolidColorBrush x:Key="FillBrush" Color="#FFF18A00" />
<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" x:Class="BeWo.BSLogoControl" x:Name="UserControl" Foreground="AliceBlue" Width="800" Height="800">
<UserControl.Resources>
<SolidColorBrush x:Key="FillBrush" Color="#FFF18A00" />
<Style TargetType="{x:Type Ellipse}">
<Setter Property="Fill" Value="{Binding Path=Foreground, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}" />
<Setter Property="Width" Value="20" />
<Setter Property="Height" Value="20" />
</Style>
</UserControl.Resources>
<Style TargetType="{x:Type Ellipse}">
<Setter Property="Fill" Value="{Binding Path=Foreground, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}" />
<Setter Property="Width" Value="20" />
<Setter Property="Height" Value="20" />
</Style>
</UserControl.Resources>
<Grid>
<Viewbox
MaxWidth="{Binding Path=Width, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}"
MaxHeight="{Binding Path=Height, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}"
Stretch="Fill"
StretchDirection="Both">
<Canvas Width="800" Height="800">
<Canvas
Canvas.Left="350"
Canvas.Top="350"
Width="100"
Height="100">
<Ellipse Canvas.Left="40" Canvas.Top="6" />
<Ellipse Canvas.Left="10" Canvas.Top="56" />
<Ellipse Canvas.Left="70" Canvas.Top="56" />
</Canvas>
<Canvas
Canvas.Left="350"
Canvas.Top="350"
Width="100"
Height="100"
RenderTransformOrigin="0.5,0.5">
<Canvas.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1.6" ScaleY="1.6" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="-20" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</Canvas.RenderTransform>
<Ellipse Canvas.Left="40" Canvas.Top="6" />
<Ellipse Canvas.Left="10" Canvas.Top="56" />
<Ellipse Canvas.Left="70" Canvas.Top="56" />
</Canvas>
<Canvas
Canvas.Left="350"
Canvas.Top="350"
Width="100"
Height="100"
RenderTransformOrigin="0.5,0.5">
<Canvas.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="2.5" ScaleY="2.5" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="-42" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</Canvas.RenderTransform>
<Ellipse Canvas.Left="40" Canvas.Top="6" />
<Ellipse Canvas.Left="10" Canvas.Top="56" />
<Ellipse Canvas.Left="70" Canvas.Top="56" />
</Canvas>
<Canvas
Canvas.Left="350"
Canvas.Top="350"
Width="100"
Height="100"
RenderTransformOrigin="0.5,0.5">
<Canvas.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="3.8" ScaleY="3.8" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="-65" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</Canvas.RenderTransform>
<Ellipse Canvas.Left="40" Canvas.Top="6" />
<Ellipse Canvas.Left="10" Canvas.Top="56" />
<Ellipse Canvas.Left="70" Canvas.Top="56" />
</Canvas>
<Grid>
<Viewbox StretchDirection="Both" Stretch="Fill" MaxWidth="{Binding Path=Width, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}" MaxHeight="{Binding Path=Height, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}">
<Canvas Width="800" Height="800">
<Canvas Width="100" Height="100" Canvas.Left="350" Canvas.Top="350">
<Ellipse Canvas.Left="40" Canvas.Top="6" />
<Ellipse Canvas.Left="10" Canvas.Top="56" />
<Ellipse Canvas.Left="70" Canvas.Top="56" />
</Canvas>
<Canvas Width="100" Height="100" Canvas.Left="350" Canvas.Top="350" RenderTransformOrigin="0.5,0.5">
<Canvas.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1.6" ScaleY="1.6" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="-20" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</Canvas.RenderTransform>
<Ellipse Canvas.Left="40" Canvas.Top="6" />
<Ellipse Canvas.Left="10" Canvas.Top="56" />
<Ellipse Canvas.Left="70" Canvas.Top="56" />
</Canvas>
<Canvas Width="100" Height="100" Canvas.Left="350" Canvas.Top="350" RenderTransformOrigin="0.5,0.5">
<Canvas.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="2.5" ScaleY="2.5" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="-42" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</Canvas.RenderTransform>
<Ellipse Canvas.Left="40" Canvas.Top="6" />
<Ellipse Canvas.Left="10" Canvas.Top="56" />
<Ellipse Canvas.Left="70" Canvas.Top="56" />
</Canvas>
<Canvas Width="100" Height="100" Canvas.Left="350" Canvas.Top="350" RenderTransformOrigin="0.5,0.5">
<Canvas.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="3.8" ScaleY="3.8" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="-65" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</Canvas.RenderTransform>
<Ellipse Canvas.Left="40" Canvas.Top="6" />
<Ellipse Canvas.Left="10" Canvas.Top="56" />
<Ellipse Canvas.Left="70" Canvas.Top="56" />
</Canvas>
<Canvas
Canvas.Left="350"
Canvas.Top="350"
Width="100"
Height="100"
RenderTransformOrigin="0.5,0.5">
<Canvas.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="5.8" ScaleY="5.8" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="-88" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</Canvas.RenderTransform>
<Ellipse Canvas.Left="40" Canvas.Top="6" />
<Ellipse Canvas.Left="10" Canvas.Top="56" />
<Ellipse Canvas.Left="70" Canvas.Top="56" />
</Canvas>
<Canvas
Canvas.Left="350"
Canvas.Top="350"
Width="100"
Height="100"
RenderTransformOrigin="0.5,0.5">
<Canvas.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="9" ScaleY="9" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="-110" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</Canvas.RenderTransform>
<Ellipse Canvas.Left="40" Canvas.Top="6" />
<Ellipse Canvas.Left="10" Canvas.Top="56" />
<Ellipse Canvas.Left="70" Canvas.Top="56" />
</Canvas>
<Canvas Width="100" Height="100" Canvas.Left="350" Canvas.Top="350" RenderTransformOrigin="0.5,0.5">
<Canvas.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="5.8" ScaleY="5.8" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="-88" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</Canvas.RenderTransform>
<Ellipse Canvas.Left="40" Canvas.Top="6" />
<Ellipse Canvas.Left="10" Canvas.Top="56" />
<Ellipse Canvas.Left="70" Canvas.Top="56" />
</Canvas>
<Canvas Width="100" Height="100" Canvas.Left="350" Canvas.Top="350" RenderTransformOrigin="0.5,0.5">
<Canvas.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="9" ScaleY="9" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="-110" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</Canvas.RenderTransform>
<Ellipse Canvas.Left="40" Canvas.Top="6" />
<Ellipse Canvas.Left="10" Canvas.Top="56" />
<Ellipse Canvas.Left="70" Canvas.Top="56" />
</Canvas>
</Canvas>
</Viewbox>
</Grid>
</Canvas>
</Viewbox>
</Grid>
</UserControl>

File diff suppressed because it is too large Load Diff

View File

@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<PublishUrlHistory>D:\Projects\beyondsoft\BeWoPlaner\Publish\|C:\publish\bewoplaner\|publish\|D:\Projects\beyondsoft\BeWoPlaner\PublishTest\|D:\Projects\beyondsoft\BeWoPlaner\PublishDev\</PublishUrlHistory>
<InstallUrlHistory>https://app.ownsoft.de/|https://app.ownsoft.de/test/|https://app.ownsoft.de/dev/|http://app.ownsoft.de/dev/|http://app.beyondsoft.de/dev/</InstallUrlHistory>
<PublishUrlHistory>D:\Projects\beyondsoft\BeWoPlaner\Publish\|publish\|D:\Projects\beyondsoft\BeWoPlaner\PublishTest\|D:\Projects\beyondsoft\BeWoPlaner\PublishDev\|D:\Projects\beyondsoft\BeWoPlaner\Publish45\</PublishUrlHistory>
<InstallUrlHistory>https://app.ownsoft.de/|https://app.ownsoft.de/dev/|http://app.ownsoft.de/dev/|http://app.beyondsoft.de/dev/|http://app.beyondsoft.de/</InstallUrlHistory>
<SupportUrlHistory />
<UpdateUrlHistory>https://app.ownsoft.de/|https://app.ownsoft.de/bewoplaner.application/</UpdateUrlHistory>
<BootstrapperUrlHistory />
@@ -18,7 +18,5 @@
<RemoteDebugEnabled>false</RemoteDebugEnabled>
<RemoteDebugMachine>
</RemoteDebugMachine>
<StartArguments>
</StartArguments>
</PropertyGroup>
</Project>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,34 +0,0 @@
using BeWo.Core;
using BS.Shared;
using DevExpress.Web.Internal.XmlProcessor;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeWo
{
public static class BeWoAppInfo
{
static BeWoAppInfo()
{
var baseVersion = new Version(BeWoApp.ShortVersion);
var stage = BeWoClientReleaseStage.Sandbox;
var stageVersion = new Version("5.1.6");
var feature = BeWoClientFeature.AI;
#if !DEBUG
stage = BeWoClientReleaseStage.Release;
feature = BeWoClientFeature.None;
#endif
BeWoAppVersion = new BeWoAppVersion(baseVersion, stage, stageVersion, feature);
}
public static BeWoAppVersion BeWoAppVersion { get; private set; }
public static bool IsInAiMode => BeWoAppVersion.Feature == BeWoClientFeature.AI;
public static bool IsInAiDeveloperMode => IsInAiMode && BeWoAppVersion.IsInDeveloperMode;
}
}

View File

@@ -1,20 +1,10 @@
<Window
x:Class="BeWo.ConfirmDemoDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="BeWoPlaner"
Width="360"
Height="240"
ResizeMode="NoResize"
WindowStartupLocation="CenterScreen"
WindowStyle="None">
<Grid Margin="0,0,0,0" Background="{x:Null}">
<Border
Padding="5,5,5,5"
Background="{DynamicResource LoginBackgroundColor}"
BorderBrush="Black"
BorderThickness="1">
<Window x:Class="BeWo.ConfirmDemoDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="BeWoPlaner" Height="240" Width="360" WindowStartupLocation="CenterScreen" WindowStyle="None" ResizeMode="NoResize" >
<Grid Background="{x:Null}" Margin="0,0,0,0">
<Border BorderThickness="1" Padding="5,5,5,5" BorderBrush="Black" Background="{DynamicResource LoginBackgroundColor}">
<Grid Opacity="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
@@ -27,63 +17,27 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Image
Grid.Row="0"
Height="45"
Margin="7,7,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Source="Ressources\Icons\bewoplaner_logo_small.png" />
<Image Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Top" Source="Ressources\Icons\bewoplaner_logo_small.png" Height="45" Margin="7,7,0,0"/>
<Grid Grid.Row="1" Margin="0,10,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" ></RowDefinition>
<RowDefinition Height="Auto" ></RowDefinition>
</Grid.RowDefinitions>
<TextBlock
Margin="3"
FontSize="14"
TextWrapping="Wrap">
WICHTIG! Bitte tragen Sie keine echten Daten bei Ihren Tests ein, da es sich um einen öffentlichen Testzugang handelt, auf den jeder Zugriff hat!
</TextBlock>
<Button
x:Name="CountButton"
Grid.Row="2"
Grid.Column="1"
Width="120"
Margin="3,25,3,3"
HorizontalAlignment="Right"
Click="ButtonBase_OnClick"
IsDefault="True">
OK
</Button>
<TextBlock TextWrapping="Wrap" Margin="3" FontSize="14">WICHTIG! Bitte tragen Sie keine echten Daten bei Ihren Tests ein, da es sich um einen öffentlichen Testzugang handelt, auf den jeder Zugriff hat!</TextBlock>
<Button x:Name="CountButton" Grid.Row="2" Grid.Column="1" Width="120" Margin="3,25,3,3" IsDefault="True" HorizontalAlignment="Right" Click="ButtonBase_OnClick">OK</Button>
<!--<Button Grid.Row="2" Grid.Column ="2" Width="100" Margin="3" IsCancel="True" IsEnabled="False" HorizontalAlignment="Right">Abbrechen</Button>-->
</Grid>
</Grid>
</Border>
<Line
Grid.ColumnSpan="4"
Stroke="#FFADADAD"
StrokeThickness="1"
X1="14"
X2="585"
Y1="70"
Y2="70" />
<Line
x:Name="linkLine"
Margin="0,30,0,-30"
Stroke="#FFADADAD"
StrokeThickness="1"
X1="14"
X2="585"
Y1="340"
Y2="340" />
<Line Grid.ColumnSpan="4" Stroke="#FFADADAD" X1="14" Y1="70" X2="585" Y2="70" StrokeThickness="1"></Line>
<Line x:Name="linkLine" Stroke="#FFADADAD" X1="14" Y1="340" X2="585" Y2="340" StrokeThickness="1" Margin="0,30,0,-30"></Line>
</Grid>
</Window>

View File

@@ -12,20 +12,10 @@ namespace BeWo
public ConfirmDemoDialog()
{
InitializeComponent();
if (BeWoApp.Tenant == "7514581436")
{
CountButton.Content = "OK";
CountButton.IsEnabled = true;
}
else
{
CountButton.Content = "Bitte warten (10 sek.)";
CountButton.IsEnabled = false;
CountButton.Content = "Bitte warten (10 sek.)";
CountButton.IsEnabled = false;
this.Loaded += new RoutedEventHandler(ConfirmDemoDialog_Loaded);
}
this.Loaded += new RoutedEventHandler(ConfirmDemoDialog_Loaded);
}
@@ -33,7 +23,7 @@ namespace BeWo
{
int count = 9;
new DispatcherTimer(
TimeSpan.FromMilliseconds(1000),
DispatcherPriority.Background,

View File

@@ -1,29 +0,0 @@
using BeWo.ViewModel;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;
namespace BeWo.Converter
{
public class AddressToStringConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var vm = value as AddressVM;
if (vm is null)
return null;
return vm.ToSingleLine();
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}

View File

@@ -1,25 +0,0 @@
using System;
using System.Globalization;
using System.Windows;
using System.Windows.Data;
namespace BeWo.Converter
{
public class BoolEnabledToTabitemBackgroundConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value == null)
{
return Application.Current.Resources["TabItemTextBrush"];
}
return (bool)value ? Application.Current.Resources["TabItemTextBrush"] : Application.Current.Resources["TabItemTextBrushDisabled"];
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}

View File

@@ -1,28 +0,0 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;
namespace BeWo.Converter
{
public class BoolToParameterReturnConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value == null)
{
return null;
}
return (bool)value ? parameter : null;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}

View File

@@ -1,30 +0,0 @@
using System;
using System.Globalization;
using System.Windows;
using System.Windows.Data;
namespace BeWo.Converter
{
public class BoolVisibilityCollapsedConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value == null)
{
return Visibility.Visible;
}
if(value is bool b)
{
return (bool)value ? Visibility.Visible : Visibility.Collapsed;
}
return Visibility.Visible;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}

View File

@@ -14,24 +14,18 @@ namespace BeWo.Converter
return Visibility.Visible;
}
if(value is bool b)
var lMode = true;
if (parameter is string s)
{
bool.TryParse(s, out lMode);
}
if (lMode)
{
var lMode = true;
if (parameter is string s)
{
bool.TryParse(s, out lMode);
}
if (lMode)
{
return !(bool)value ? Visibility.Collapsed : Visibility.Visible;
}
return (bool)value ? Visibility.Collapsed : Visibility.Visible;
return !(bool)value ? Visibility.Collapsed : Visibility.Visible;
}
// Fange Fälle ab, wo noch nicht mit Command gearbeitet wird
return Visibility.Visible;
return (bool)value ? Visibility.Collapsed : Visibility.Visible;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)

View File

@@ -1,34 +0,0 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Data;
namespace BeWo.Converter
{
/// <summary>
/// https://stackoverflow.com/a/19210037
/// </summary>
public class BooleanAndVisibilityMultiConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
foreach (object value in values)
{
if ((value is bool) && (bool)value == false)
{
return Visibility.Collapsed;
}
}
return Visibility.Visible;
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}

View File

@@ -1,34 +0,0 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Data;
namespace BeWo.Converter
{
/// <summary>
/// https://stackoverflow.com/a/19210037
/// </summary>
public class BooleanOrVisibilityMultiConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
foreach (object value in values)
{
if ((value is bool) && (bool)value == true)
{
return Visibility.Visible;
}
}
return Visibility.Collapsed;
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}

View File

@@ -1,8 +1,5 @@
using System;
using System.Collections;
using System.Globalization;
using System.Linq;
using System.Windows;
using System.Windows.Data;
namespace BeWo.Converter
@@ -13,29 +10,8 @@ namespace BeWo.Converter
{
try
{
int count;
switch (value)
{
case int i:
count = i;
break;
case ICollection collection:
count = collection.Count;
break;
case IEnumerable enumerable:
count = enumerable.Cast<object>().Count();
break;
default:
return false;
}
if (parameter is string s && s == "reverse")
{
return !(count > 0);
}
return count > 0;
var count = (int) value;
return count > 0;
}
catch (Exception)
{

View File

@@ -1,7 +1,5 @@
using System;
using System.Collections;
using System.Globalization;
using System.Linq;
using System.Windows;
using System.Windows.Data;
@@ -13,29 +11,8 @@ namespace BeWo.Converter
{
try
{
int count;
switch (value)
{
case int i:
count = i;
break;
case ICollection collection:
count = collection.Count;
break;
case IEnumerable enumerable:
count = enumerable.Cast<object>().Count();
break;
default:
return Visibility.Collapsed;
}
if (parameter is string s && s == "reverse")
{
return count > 0 ? Visibility.Collapsed : Visibility.Visible;
}
return count > 0 ? Visibility.Visible : Visibility.Collapsed;
var count = (int)value;
return count > 0 ? Visibility.Visible : Visibility.Collapsed;
}
catch (Exception)
{

View File

@@ -1,26 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;
namespace BeWo.Converter
{
public class ComparisonConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value == null)
{
return false; // or return parameter.Equals(YourEnumType.SomeDefaultValue);
}
return value.Equals(parameter);
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return value?.Equals(true) == true ? parameter : Binding.DoNothing;
}
}
}

View File

@@ -1,41 +0,0 @@
using BS.Shared.Core;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;
namespace BeWo.Converter
{
public class EnumTranslationConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if(value is Enum e)
{
if(EnumTranslations.Wohnhilfe2Translation.TryGetValue(e, out string v))
{
return v;
}
// RE:
// EnumTranslationConverter, aber betrachtet nicht alle?
// Brauche hier eig nur EnumTranslations.Gkv2Translation
if (EnumTranslations.AllTranslations.TryGetValue(e, out string vv))
{
return vv;
}
return e;
}
return null;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}

View File

@@ -18,7 +18,7 @@ namespace BeWo.Converter
{
var showOnlyArchived = false;
var showOnlyOnlyDeleted = false;
IList<CustomFilter> customFilters = null;
CustomFilter customFilter = null;
if (values.Length >= 3)
{
@@ -29,9 +29,9 @@ namespace BeWo.Converter
if (values.Length >= 4)
{
if (values[3] is IList<CustomFilter>)
if (values[3] is CustomFilter)
{
customFilters = values[3] as IList<CustomFilter>;
customFilter = values[3] as CustomFilter;
}
if (values.Length >= 5)
@@ -51,15 +51,14 @@ namespace BeWo.Converter
var ret = (values[0] as IEnumerable<IFilterableDC>).Where(
dc =>
{
var filterRelevants = dc.FilterRelevants != null && dc.FilterRelevants.ContainsAll(lFilter);
var filterRelevants = dc.FilterRelevants != null && dc.FilterRelevants.ContainsAll(lFilter) && (customFilter == null || customFilter.IsValid(dc));
var aktiv = (!showOnlyOnlyDeleted && !showOnlyArchived && dc.ActivationType == ActivationTypeId.Active);
var archiviert = ((showOnlyArchived && dc.ActivationType == ActivationTypeId.Archived));
var geloescht = ((!showOnlyArchived && showOnlyOnlyDeleted && dc.ActivationType == ActivationTypeId.Deleted));
var geloeschtOderArchiviert = (showOnlyArchived && dc.ActivationType == ActivationTypeId.Archived || showOnlyOnlyDeleted && dc.ActivationType == ActivationTypeId.Deleted) && filterRelevants;
var customerFilterValid = (customFilters == null || customFilters.All(f => f.IsValid(dc)));
var ergebnis = (aktiv || archiviert || geloescht || geloeschtOderArchiviert) && filterRelevants && customerFilterValid;
var ergebnis = (aktiv || archiviert || geloescht || geloeschtOderArchiviert) && filterRelevants;
return ergebnis;
});

View File

@@ -1,41 +0,0 @@
using BS.Shared;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;
namespace BeWo.Converter
{
public class GkvState2StringConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var state = value as GkvState?;
if (state is null)
return null;
switch (state.Value)
{
case GkvState.NoSend: return "Erstellt";
case GkvState.ErrorSoft: return "Fehler";
case GkvState.ErrorFatal: return "Fataler Fehler";
case GkvState.Paid: return "Bezahlt";
case GkvState.WaitingForDakota: return "Warte auf Übertragung";
case GkvState.WaitingForKrankenkasse: return "Warte auf Gkv";
case GkvState.WaitingForKrankenkasseTooLong: return "Keine Antwort von Gkv";
case GkvState.WaitingForUrbelege: return "Urbelege per Post senden";
}
return state.ToString();
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}

View File

@@ -1,45 +0,0 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;
using System.Windows.Interop;
using System.Windows.Media.Imaging;
using System.Windows;
using System.Windows.Media;
namespace BeWo.Converter
{
// Source - https://stackoverflow.com/a/29757845
// Posted by run2thesun, modified by community. See post 'Timeline' for change history
// Retrieved 2026-01-30, License - CC BY-SA 3.0
public class IconToImageSourceConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var icon = value as Icon;
if (icon == null)
{
Trace.TraceWarning("Attempted to convert {0} instead of Icon object in IconToImageSourceConverter", value);
return null;
}
ImageSource imageSource = Imaging.CreateBitmapSourceFromHIcon(
icon.Handle,
Int32Rect.Empty,
BitmapSizeOptions.FromEmptyOptions());
return imageSource;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}

View File

@@ -1,25 +0,0 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;
namespace BeWo.Converter
{
public class NewlineConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return value?.ToString()?
.Replace("\\r\\n", "\r\n")
.Replace("\\n", "\r\n")
.Replace("\\r", "\r\n");
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}

View File

@@ -1,22 +0,0 @@
using System;
using System.Globalization;
using System.Windows.Data;
namespace BeWo.Converter
{
public class Object2ToStringConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is object)
return value.ToString();
return null;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}

View File

@@ -1,23 +0,0 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;
namespace BeWo.Converter
{
public class RadioBoolToIntConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return value?.Equals(int.Parse(parameter.ToString()));
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return value?.Equals(true) == true ? int.Parse(parameter.ToString()) : Binding.DoNothing;
}
}
}

View File

@@ -1,28 +0,0 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;
namespace BeWo.Converter
{
public class StringEmptyBoolConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is string stringi)
{
return !string.IsNullOrEmpty(stringi);
}
return false;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}

View File

@@ -1,26 +0,0 @@
using BeWo.ViewModel;
using DevExpress.Mvvm;
using System;
using System.Globalization;
using System.Windows.Data;
namespace BeWo.Converter
{
public class TestDebugConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is null)
return null;
//var t = ((DelegateCommand)value).CanExecute(null);
return value;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return value;
}
}
}

View File

@@ -1,67 +0,0 @@
using BeWo.ViewModel;
using BeWo.ViewModel.Light;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;
namespace BeWo.Converter
{
public class TooltipTextConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is bool val_bool)
{
return val_bool ? null : parameter;
}
if (value is GkvAbrechnungLightVM gkv)
{
if (parameter is string s)
{
if (s == "Send")
{
return gkv.SendTooltip;
}
}
}
if (value is GkvAbrechnungVM gkv2)
{
if (parameter is string s)
{
if (s == "Send")
{
return gkv2.SendTooltip;
}
}
}
if (value is InvoiceBaseLightVM invoice)
{
return invoice.IsGkvValidError;
}
if (value is InvoiceBaseVM invoice2)
{
return invoice2.IsGkvValidError;
}
if (value is MandatorVM mandator)
{
return mandator.CanEditIKLeistungserbringerTooltip;
}
return "xxx";
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}

View File

@@ -1,63 +0,0 @@
using BS.Shared;
using BS.Shared.Core;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;
namespace BeWo.Converter
{
public class UserPermission2BoolConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
#if DEBUG
if (BeWoApp.IsInDesignMode)
return true;
#endif
try
{
if (value is UserRightType type)
{
return BeWoApp.HasLoggedOnUserRight(type);
}
if (parameter is UserRightType type2)
{
return BeWoApp.HasLoggedOnUserRight(type2);
}
if (parameter is string setting && !string.IsNullOrWhiteSpace(setting))
{
if (setting == SettingsKeys.AllowGkvAbrechnung)
return BeWoApp.AppSettings.AllowGkvAbrechnung;
if (setting == SettingsKeys.ShowGkvBzEinzel)
return BeWoApp.Mandator.ShowGkvBzEinzel;
if (setting == SettingsKeys.ShowGkvBzUrbelege)
return BeWoApp.Mandator.ShowGkvBzUrbelege;
if (setting == SettingsKeys.ShowAI)
return BeWoApp.AppSettings.ShowAI;
}
}
catch (Exception)
{
if (BeWoApp.IsInDesignMode)
return true;
}
return false;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}

View File

@@ -1,32 +0,0 @@
using BeWo.ViewModel;
using BS.Shared;
using BS.Shared.Core;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;
using System.Windows.Media;
namespace BeWo.Converter
{
public class ValidationConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if(value is string val_str && parameter is ValidationType val_type)
{
return GkvValidator.IsValid(val_type, val_str);
}
return null;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}

View File

@@ -1,34 +0,0 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;
using System.Windows.Media;
namespace BeWo.Converter
{
public class ValidationToBrushConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if(value is null)
{
return Brushes.Black;
}
if(value is bool val_bool)
{
return val_bool ? Brushes.Black : Brushes.Red;
}
return Brushes.Blue;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}

View File

@@ -1,36 +0,0 @@
using BS.Shared;
using BS.Shared.Core;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;
using System.Windows.Media;
namespace BeWo.Converter
{
public class ValidationToTooltipConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is null)
{
return null;
}
if (value is bool val_bool && parameter is ValidationType val_type)
{
return val_bool ? null : GkvValidator.InvalidTooltipTxt(val_type);
}
return "xxx";
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}

View File

@@ -1,26 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;
namespace BeWo.Converter
{
public class ValueConverterGroup : List<IValueConverter>, IValueConverter
{
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return this.Aggregate(value, (current, converter) => converter.Convert(current, targetType, parameter, culture));
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
#endregion
}
}

View File

@@ -1,74 +0,0 @@
using BS.Shared;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeWo.Core
{
public class BeWoAppVersion
{
public Version BaseVersion { get; }
public BeWoClientReleaseStage Stage { get; }
public Version FeatureVersion { get; }
public BeWoClientFeature Feature { get; }
public static bool IsInDeveloperMode { get; private set; }
public BeWoAppVersion(Version baseVersion, BeWoClientReleaseStage stage, Version stageVersion, BeWoClientFeature feature = BeWoClientFeature.None)
{
BaseVersion = baseVersion;
Stage = stage;
FeatureVersion = stageVersion;
Feature = feature;
}
public void TryActiveDeveloperMode(string[] args)
{
#if !DEBUG
if (Stage != BeWoClientReleaseStage.Sandbox && Stage != BeWoClientReleaseStage.ProofOfConcept)
return;
if (args.All(x => x != "/bewodevmode" && x != "--bewodevmode"))
return;
#endif
// Darf noch nicht aktiviert sein
if (IsInDeveloperMode)
throw new NotImplementedException();
IsInDeveloperMode = true;
}
public override string ToString()
{
var sb = new StringBuilder();
sb.Append($"Version {BaseVersion}");
if (Stage == BeWoClientReleaseStage.Release)
return sb.ToString();
sb.Append(" ");
if (Feature != BeWoClientFeature.None)
{
// https://stackoverflow.com/questions/9684619/label-doesnt-display-character
sb.Append(Feature.ToString().ToLower());
sb.Append("__");
sb.Append(FeatureVersion);
sb.Append("__");
}
sb.Append($"{Stage.ToString().ToLower()}");
if (Stage == BeWoClientReleaseStage.Sandbox || Stage == BeWoClientReleaseStage.ProofOfConcept)
{
sb.Append($" (dev:{(IsInDeveloperMode ? "1" : "0")})");
}
return sb.ToString();
}
}
}

View File

@@ -1,13 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeWo.Core
{
public static class BeWoUserUtils
{
}
}

View File

@@ -60,11 +60,6 @@ using Control = System.Windows.Controls.Control;
using Utils = BS.Shared.Core.Utils;
using Brush = System.Windows.Media.Brush;
using BeWo.View.Detail.Zeiterfassung;
using DevExpress.Xpf.Scheduling;
using CommandBarStyle = DevExpress.Xpf.DocumentViewer.CommandBarStyle;
using ImageSource = System.Windows.Media.ImageSource;
using BS.Shared.Translation;
using BeWo.View.Windows;
namespace BeWo.Core
{
@@ -122,12 +117,7 @@ namespace BeWo.Core
public static void NavigateToReportUriWithDocumentPreviewControl(string navigateUriString, string title, DocumentPreviewControl dp, Action callback)
{
List<ReportTemplateDC> reportTemplates = null;
if (!navigateUriString.Contains("&template="))
{
reportTemplates = ServiceFacade.DoOperationsServiceSync(x => x.GetReportTemplates(navigateUriString));
}
var reportTemplates = ServiceFacade.DoOperationsServiceSync(x => x.GetReportTemplates(navigateUriString));
if (reportTemplates?.Count > 1)
{
@@ -259,7 +249,7 @@ namespace BeWo.Core
}
catch (Exception e)
{
BeWoApp.ShowErrorMessage(e);
BeWoApp.ShowError(null, e, true);
BeWoApp.MainControl.EndWaiting();
}
},
@@ -286,7 +276,7 @@ namespace BeWo.Core
return navigateUri.Split('?')[0] + "?" + uriValues;
}
public static string RefreshNavigateUriString(string navigateUri)
private static string RefreshNavigateUriString(string navigateUri)
{
if (navigateUri.Contains("tenant"))
navigateUri = RemoveAuthenticationInfoFromUri(navigateUri);
@@ -1664,7 +1654,7 @@ namespace BeWo.Core
System.Diagnostics.Process.Start(mailCmd);
}
public static bool ValidateServiceRecordVM(ServiceRecordVM vm, SupportConceptStatisticsDC statistics, FlatSupportConceptTreeNodeDC node, bool withoutClient, CompactEmployeeDC selectedEmployee, List<long> employeeOids, List<long> cb2ScOids, int groupIndex)
public static bool ValidateServiceRecordVM(ServiceRecordVM vm, SupportConceptStatisticsDC statistics, FlatSupportConceptTreeNodeDC node, bool withoutClient, CompactEmployeeDC selectedEmployee, List<long> employeeOids, List<long> cb2ScOids)
{
var lValid = true;
@@ -1673,35 +1663,12 @@ namespace BeWo.Core
MessageBox.Show("Bitte wählen Sie eine Leistung aus. Sollten keine Leistungen für die gewählte Kategorie verfügbar sein, müssen diese zunächst in der Verwaltung angelegt werden.", "Speichern", MessageBoxButton.OK, MessageBoxImage.Information);
return false;
}
if(vm.GoalTree != null && vm.GoalTree.Count > 0 && groupIndex == 1/* && (cb2ScOids == null || cb2ScOids.Count < 2)*/)
if(vm.GoalTree != null && vm.GoalTree.Count > 0 && (cb2ScOids == null || cb2ScOids.Count < 2))
{
//Nur für abrechenbare Leistungen
if (vm.SelectedGoals.Count == 0)
if(vm.SelectedGoals.Count == 0 && MessageBox.Show("Es wurde kein Ziel zugeordnet. Sind Sie sicher, dass Sie speichern möchten?", "Speichern", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.No)
{
if (BeWoApp.AppSettings.IsServiceRecordGoalMandatory && vm.ServiceDescription.ProzentAbrechnung.HasValue && vm.ServiceDescription.ProzentAbrechnung >= 100 && vm.ServiceDescription.Category.IsBillable)
{
MessageBox.Show(Translator.Translate("Sie müssen mindestens ein Ziel auswählen, bevor Sie speichern können."), "Speichern", MessageBoxButton.OK, MessageBoxImage.Exclamation);
return false;
}
else if (MessageBox.Show("Es wurde kein Ziel zugeordnet. Sind Sie sicher, dass Sie speichern möchten?", "Speichern", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.No)
{
return false;
}
return false;
}
else
{
if (BeWoApp.AppSettings.IsServiceRecordRatingMandatory)
{
foreach (var goal in vm.SelectedGoals)
{
if (!goal.RatingTypeOid.HasValue)
{
MessageBox.Show(String.Format("Das Ziel '{0}' wurde nicht bewertet.\nSpeichern nicht möglich.", goal.DisplayName), "Speichern", MessageBoxButton.OK, MessageBoxImage.Exclamation);
return false;
}
}
}
}
}
CompactSupportConceptDC scDc = null;
@@ -1787,10 +1754,10 @@ namespace BeWo.Core
case ServiceRecordValidationResult.ServiceRecordOverlapping:
if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.ServiceRecord_AllowCreateOverlappingFLS))
{
MessageBox.Show($"An dem gewählten Datum '{vm.StartDate.ToShortDateString()} {vm.StartDate.ToShortTimeString()}' existiert bereits ein Eintrag ({result.Message} bei " + BS.Shared.Translation.Translator.Translate("Klient/in") + " " + result.CustomerName + ") .\nSpeichern nicht möglich.", "Speichern nicht möglich", MessageBoxButton.OK, MessageBoxImage.Information);
MessageBox.Show($"An dem gewählten Datum '{vm.StartDate.ToShortDateString()} {vm.StartDate.ToShortTimeString()}' existiert bereits ein Eintrag ({result.Message} bei " + BS.SharedLauncher.Translation.Translator.Translate("Klient/in") + " " + result.CustomerName + ") .\nSpeichern nicht möglich.", "Speichern nicht möglich", MessageBoxButton.OK, MessageBoxImage.Information);
lValid = false;
}
else if (MessageBox.Show($"An dem gewählten Datum '{vm.StartDate.ToShortDateString()} {vm.StartDate.ToShortTimeString()}' existiert bereits ein Eintrag ({result.Message} bei " + BS.Shared.Translation.Translator.Translate("Klient/in") + " " + result.CustomerName + ").\nMöchten Sie trotzdem speichern?", "Speichern", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.No)
else if (MessageBox.Show($"An dem gewählten Datum '{vm.StartDate.ToShortDateString()} {vm.StartDate.ToShortTimeString()}' existiert bereits ein Eintrag ({result.Message} bei " + BS.SharedLauncher.Translation.Translator.Translate("Klient/in") + " " + result.CustomerName + ").\nMöchten Sie trotzdem speichern?", "Speichern", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.No)
{
lValid = false;
exitLoop = true;
@@ -1813,7 +1780,7 @@ namespace BeWo.Core
var klient = "diesen Hilfeplan";
if (!string.IsNullOrEmpty(result.CustomerName))
{
klient = BS.Shared.Translation.Translator.Translate("Klient/in") + " " + result.CustomerName;
klient = BS.SharedLauncher.Translation.Translator.Translate("Klient/in") + " " + result.CustomerName;
}
var msg = string.Format("Die für {2} genehmigten FLS ({0:N}) werden mit diesem Eintrag ({1:N}) überschritten.", result.ApprovedHours, result.HoursNew, klient);
@@ -1833,7 +1800,7 @@ namespace BeWo.Core
var klient2 = "diesen Hilfeplan";
if (!string.IsNullOrEmpty(result.CustomerName))
{
klient2 = BS.Shared.Translation.Translator.Translate("Klient/in") + " " + result.CustomerName;
klient2 = BS.SharedLauncher.Translation.Translator.Translate("Klient/in") + " " + result.CustomerName;
}
if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.BookServiceRecordAfterSettlementInvoice))
{
@@ -1930,7 +1897,7 @@ namespace BeWo.Core
else
{
var msg = vm.GroupOid != null
? "ACHTUNG, wenn Sie fortfahren, löschen Sie die gesamte Gruppenbuchung.\nWenn Sie nur einzelne " + BS.Shared.Translation.Translator.Translate("Klienten") + " aus der Gruppe entfernen möchten,\neditieren Sie die Gruppe und entfernen den Klienten aus der Liste aller Hilfepläne.\nSind Sie sicher, dass Sie den gesamten Gruppeneintrag löschen möchten?"
? "ACHTUNG, wenn Sie fortfahren, löschen Sie die gesamte Gruppenbuchung.\nWenn Sie nur einzelne " + BS.SharedLauncher.Translation.Translator.Translate("Klienten") + " aus der Gruppe entfernen möchten,\neditieren Sie die Gruppe und entfernen den Klienten aus der Liste aller Hilfepläne.\nSind Sie sicher, dass Sie den gesamten Gruppeneintrag löschen möchten?"
: "Sind Sie sicher, dass Sie den gewählten Eintrag löschen möchten?";
if (MessageBox.Show(msg, "Eintrag löschen", MessageBoxButton.YesNo, MessageBoxImage.Warning) !=
@@ -1943,113 +1910,13 @@ namespace BeWo.Core
return lValid;
}
public static bool ValidateSupportConceptVM(SupportConceptVM vm)
{
var lValid = true;
var dc = vm.CommitToDataContract();
var r = ServiceFacade.DoOperationsServiceSync(o => o.ValidateSupportConcept(dc));
if (r.Count > 0)
{
bool allowSave = true;
StringBuilder msg = new StringBuilder();
foreach (var result in r)
{
if (msg.Length > 0)
{
msg.AppendLine();
}
msg.AppendLine(result.Message);
if (!result.AllowSave)
{
allowSave = false;
}
}
msg.AppendLine();
if (allowSave)
{
msg.Append(String.Format("Sind Sie sicher, dass Sie den Hilfeplan speichern möchten?", vm));
if (MessageBox.Show(msg.ToString(), "Speichern", MessageBoxButton.YesNo, MessageBoxImage.Warning).Equals(MessageBoxResult.No))
{
lValid = false;
}
}
else
{
msg.Append("Der Hilfeplan kann leider nicht gespeichert werden.");
MessageBox.Show(msg.ToString(), "Speichern nicht möglich", MessageBoxButton.OK, MessageBoxImage.Error);
lValid = false;
}
}
return lValid;
}
public static bool ValidateSupportConceptDeletion(CompactSupportConceptDC dc)
{
var lValid = true;
var r = ServiceFacade.DoOperationsServiceSync(o => o.ValidateSupportConceptDeletion(dc.SupportConceptOid));
bool allowSave = true;
StringBuilder msg = new StringBuilder();
foreach (var result in r)
{
if (msg.Length > 0)
{
msg.AppendLine();
}
msg.AppendLine(result.Message);
if (!result.AllowSave)
{
allowSave = false;
}
}
if (msg.Length > 0)
{
msg.AppendLine();
}
if (allowSave)
{
msg.Append(String.Format("Sind Sie sicher, dass Sie den gewählten Hilfeplan {0} {1} löschen möchten?", dc.CustomerName, dc));
if (MessageBox.Show(msg.ToString(), "Löschen", MessageBoxButton.YesNo, MessageBoxImage.Exclamation).Equals(MessageBoxResult.No))
{
lValid = false;
}
}
else
{
msg.Append("Der gewählte Hilfeplan kann leider nicht gelöscht werden.");
MessageBox.Show(msg.ToString(), "Löschen nicht möglich", MessageBoxButton.OK, MessageBoxImage.Error);
lValid = false;
}
return lValid;
}
/// <summary>
/// Erzeugt einen Report mit Hilfe des ReportServices und zeigt ihn in einem BeWoWindow
/// </summary>
/// <param name="title">Titel des Fensters</param>
/// <param name="variablen">Dictionary mit Variablen für das ReportObject</param>
/// <param name="reportType">Der Typ des Reports (z.B. KalenderMonatsformatReport)</param>
public static void ShowReport(string title, Dictionary<string, object> variablen, ReportEnum reportType)
/// <summary>
/// Erzeugt einen Report mit Hilfe des ReportServices und zeigt ihn in einem BeWoWindow
/// </summary>
/// <param name="title">Titel des Fensters</param>
/// <param name="variablen">Dictionary mit Variablen für das ReportObject</param>
/// <param name="reportType">Der Typ des Reports (z.B. KalenderMonatsformatReport)</param>
public static void ShowReport(string title, Dictionary<string, object> variablen, ReportEnum reportType)
{
switch (reportType)
{
@@ -2229,43 +2096,6 @@ namespace BeWo.Core
newView.ShowDialog();
}
public static void CreateAbsenceTime(DateTime start, DateTime end, List<CompactCustomerDC> customer, List<CompactEmployeeDC> employees, string notice, Appointment appointment, Action<List<AbsenceTimeDC>> schedulerCallback)
{
BeWo.Scheduling.View.AbsenceTimesCreationView newView = new Scheduling.View.AbsenceTimesCreationView(start, end, customer, employees, notice, appointment, schedulerCallback);
newView.ShowDialog();
}
// Zeiterfassungseintrag aus dem neuen Kalendermodul erstellen
public static void CreateZeiterfassung(DateTime start, DateTime end, List<CompactCustomerDC> customer, List<CompactEmployeeDC> employees, String notice, AppointmentItem appointment, Action schedulerCallback)
{
ChatDokumentationsView newView;
if(customer.Count == 0)
{
// Normale Buchung
newView = new ChatDokumentationsView(notice, null, null, start, end, schedulerCallback, appointment);
}
else if(customer.Count == 1 && employees.Count < 2)
{
var compactKlient = ServiceFacade.DoCustomerServiceSync(s => s.GetCompactCustomerDC(customer[0].CustomerOid));
// Normale Buchung
newView = new ChatDokumentationsView(notice, compactKlient, employees.Count == 1 ? employees[0] : null, start, end, schedulerCallback, appointment);
}
else
{
if(employees.Count == 0)
{
employees.Add(BeWoApp.CompactLoggedOnEmployee);
}
// Gruppenbuchungen
newView = new ChatDokumentationsView(appointment, notice, start, end, customer, employees, schedulerCallback);
}
newView.ShowDialog();
}
public static void CreateZeiterfassung(DateTime start, DateTime end, List<CompactCustomerDC> customer, List<CompactEmployeeDC> employees, String notice)
{
@@ -2306,15 +2136,12 @@ namespace BeWo.Core
var tenant = BeWoApp.Tenant;
#if DEBUG
tenant = "2509786400";
#endif
tenant = "5473568546";
#endif
BeWoApp.GetChatServerUrlAsync(serverUrl =>
{
var url = $"{serverUrl}/api/ownchat/sync/schedule/{BeWoApp.Mandator.Apikey}/{tenant}";
var client = new RestClient(url);
var client = new RestClient($"{serverUrl}/api/ownchat/sync/schedule/{BeWoApp.Mandator.Apikey}/{tenant}");
var request = new RestRequest();
client.ExecuteAsync(request, null);
@@ -2364,7 +2191,7 @@ namespace BeWo.Core
return Utils.CheckSchedulerRights(storage.CustomerList, storage.ResourceList, storage.EmployeeList.ToList(), storage.Originator, pIsNew, pCheckType, BeWoApp.LoggedOnUser, teamMemberCustomerOids, ignoreViewEditCreateAllRights);
}
public static void EditServiceRecord(ServiceRecordDC dc, DispatcherObject p, Action<List<ServiceRecordDC>> callback)
public static void EditServiceRecord(ServiceRecordDC dc, DispatcherObject p)
{
var record = ServiceFacade.DoOperationsServiceSync(s => s.GetServiceRecordById(dc.ServiceRecordOid.Value));
@@ -2393,10 +2220,10 @@ namespace BeWo.Core
var vm = new ServiceRecordVM(record, vmList.PrototypeVM.Category2Services, vmList.PrototypeVM.AllGoalCategories, vmList.PrototypeVM.AllGoals);
EditServiceRecord(vmList, vm, callback);
EditServiceRecord(vmList, vm);
}));
}
public static void EditServiceRecord(ServiceRecordListVM listvm, ServiceRecordVM vm, Action<List<ServiceRecordDC>> savedCallback)
public static void EditServiceRecord(ServiceRecordListVM listvm, ServiceRecordVM vm)
{
if (vm == null)
{
@@ -2464,13 +2291,8 @@ namespace BeWo.Core
result = ((ServiceRecordGroupEditView)serviceRecordEditView).CloseAndDoSaveCheck();
}
}
beWoWindow.Close();
if (savedCallback != null && result == ServiceRecordDialogResult.ClosedWithSaving)
{
savedCallback(null);
}
beWoWindow.Close();
}));
serviceRecordEditView.CommandBindings.Add(
new CommandBinding(
@@ -2497,19 +2319,7 @@ namespace BeWo.Core
return;
}
if (savedCallback != null && serviceRecordEditView is ServiceRecordGroupEditView)
{
((ServiceRecordGroupEditView)serviceRecordEditView).SaveWithCallback(savedCallback);
}
else
{
serviceRecordEditView.SaveData();
if (savedCallback != null)
{
savedCallback(null);
}
}
serviceRecordEditView.SaveData();
}
beWoWindow.Close();
}));

View File

@@ -5,7 +5,6 @@ using System.Diagnostics;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Threading;
using BeWo.View;
using DevExpress.Xpf.Grid;
@@ -294,31 +293,5 @@ namespace BeWo.Core
return null;
}
public static void ScrollToTop(ListBox listBox, DispatcherPriority priority = DispatcherPriority.Loaded)
{
listBox.Dispatcher.InvokeAsync(() =>
{
if (VisualTreeHelper.GetChildrenCount(listBox) > 0)
{
Border border = (Border)VisualTreeHelper.GetChild(listBox, 0);
ScrollViewer scrollViewer = (ScrollViewer)VisualTreeHelper.GetChild(border, 0);
scrollViewer.ScrollToTop();
}
}, priority);
}
public static void ScrollToBottom(ListBox listBox, DispatcherPriority priority = DispatcherPriority.Loaded)
{
listBox.Dispatcher.InvokeAsync(() =>
{
if (VisualTreeHelper.GetChildrenCount(listBox) > 0)
{
Border border = (Border)VisualTreeHelper.GetChild(listBox, 0);
ScrollViewer scrollViewer = (ScrollViewer)VisualTreeHelper.GetChild(border, 0);
scrollViewer.ScrollToBottom();
}
}, priority);
}
}
}

View File

@@ -1,36 +0,0 @@
using BS.Shared;
using DevExpress.Mvvm;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static DevExpress.Mvvm.Native.Either;
namespace BeWo.Core.Commands
{
public static class CommandFactory
{
public static DelegateCommand GetAiViewCommand(Action openView, UserRightType? userRightType, Func<bool> additionalCheckup = null, bool? useCommandManager = null)
{
bool canExecute() =>
(BeWoApp.AppSettings?.ShowAI ?? false) &&
(userRightType is null || BeWoApp.HasLoggedOnUserRight(userRightType.Value)) &&
(additionalCheckup is null || additionalCheckup());
return new DelegateCommand(openView, () => CheckupSafe(canExecute), useCommandManager);
}
private static bool CheckupSafe(Func<bool> predicate)
{
try
{
return predicate();
}
catch (Exception ex)
{
return false;
}
}
}
}

View File

@@ -2,9 +2,6 @@
using System.Collections.Generic;
using BeWo.View.Navigation.Filter;
using BS.Shared;
using BS.Shared.DataContracts;
using DevExpress.Xpf.Accordion;
using DevExpress.Xpf.Scheduling;
using DevExpress.XtraScheduler;
namespace BeWo.Core.Config
@@ -12,8 +9,6 @@ namespace BeWo.Core.Config
public class AppSettings
{
private bool mIsServiceRecordNoticeMandatory = true;
private bool mIsServiceRecordGoalMandatory = false;
private bool mIsServiceRecordRatingMandatory = false;
private bool mIsPasswordSecurityActiv = false;
@@ -30,9 +25,8 @@ namespace BeWo.Core.Config
private CustomerFilterEnum _CustomerFilterCustomers = CustomerFilterEnum.All;
private bool _showExpiredSupportConcepts = true;
private bool _showServiceRecordGridControl = true;
private bool _filterGroupServiceCategories = false;
private bool mOpenReportInNewWindow = false;
private bool _showServiceRecordGridControl;
private bool _filterGroupServiceCategories = true;
private WindowStateType mWindowStateType = WindowStateType.Default;
@@ -46,14 +40,8 @@ namespace BeWo.Core.Config
private int mLastKassenSortOrder = 1;
private int mLastBewilligungSortOrder = 0;
private ZeiterfassungsDauer mLetzteZeiterfassungsDauer = ZeiterfassungsDauer.Minuten;
private FLSAnalysisConfigDC _DefaultFlsAnalysisConfig = null;
private int mAiVoiceRequestInterval = 5;
public enum WindowStateType
{
Default,
@@ -74,19 +62,6 @@ namespace BeWo.Core.Config
set { mIsServiceRecordNoticeMandatory = value; }
}
public bool IsServiceRecordGoalMandatory
{
get { return mIsServiceRecordGoalMandatory; }
set { mIsServiceRecordGoalMandatory = value; }
}
public bool IsServiceRecordRatingMandatory
{
get { return mIsServiceRecordRatingMandatory; }
set { mIsServiceRecordRatingMandatory = value; }
}
public bool IsPasswordSecurityActiv
{
get { return mIsPasswordSecurityActiv; }
@@ -140,14 +115,11 @@ namespace BeWo.Core.Config
public int LastSelectedStundenkontoIntervall { get; set; }
public int AnzTageZeiterfassErfolgt { get; set; }
public int AnzTageUnterschriftErfolgt { get; set; }
public int ZeiterfassungsSchwellwert { get; set; }
public bool HideServiceRecordInsertedByAndInsertedOn { get; set; }
public bool ShowAlwaysHoursInEmployeeView { get; set; }
public bool ShowAdvisedAttendedFlag { get; set; }
public CustomerFilterEnum CustomerFilterInZeiterfassung
@@ -379,38 +351,10 @@ namespace BeWo.Core.Config
IsDirty = true;
}
}
}
public int LastBewilligungSortOrder
{
get { return mLastBewilligungSortOrder; }
set
{
if (mLastBewilligungSortOrder != value)
{
mLastBewilligungSortOrder = value;
IsDirty = true;
}
}
}
public int AiVoiceRequestInterval
{
get { return mAiVoiceRequestInterval; }
set
{
if (mAiVoiceRequestInterval != value)
{
mAiVoiceRequestInterval = value;
IsDirty = true;
}
}
}
public int ServiceRecordAllowChangeHours
{
get { return mServiceRecordAllowChangeHours; }
@@ -460,7 +404,7 @@ namespace BeWo.Core.Config
public bool IsWohnheimAllowed { get; set; }
public bool ShowOwnChat { get; set; }
public bool ShowAIVoice { get; set; }
public bool ShowOwnChatSettings { get; set; }
public bool IsMedicationAllowed { get; set; }
@@ -476,30 +420,22 @@ namespace BeWo.Core.Config
public bool ShowPivotGrid { get; set; }
public string ExpandedAdministrationItems { get; set; }
public string SelectedAdministrationItem { get; set; }
public bool ShowUrlaubsplanung { get; set; }
public bool DontShowSpitzabrechnung { get; set; }
public bool ShowDienstplanung { get; set; }
public bool ShowWorktime { get; set; }
public DateTime? StartStundenkonto { get; set; }
public bool Arbeitszeiterfassung { get; set; }
public bool EnableArbeitszeiterfassung { get; set; }
public bool EnableAutomaticPauses { get; set; }
public bool EnableRestTimeWarning { get; set; }
public int MaxWorkTimeHoursBeforeWarning { get; set; }
public int AnzTageArbeitszeiterfassungErfolgt { get; set; }
public int DienstplanungStandardZeilenAnzahl { get; set; }
public bool ShowInfoButtonInCalender{ get; set; }
public bool AllowStorno { get; set; }
public bool AllowXRechnung { get; set; }
public bool UseDistanceApi { get; set; }
public bool ShowEmployeeSignature { get; set; }
@@ -508,28 +444,10 @@ namespace BeWo.Core.Config
public bool ShowHilfeplanStatistikReport { get; set; }
public bool ShowAI { get; set; }
public bool ShowAIInternal { get; set; }
public bool AllowGkvAbrechnung { get; set; }
public bool ModuleAiEnabled { get; set; }
public bool ModuleAiSettingsEnabled { get; set; }
public bool ShowWohnhilfe { get; set; }
public bool ShowVorlagen { get; set; }
public bool ShowMitarbeiterSchwerbehindertenInfos { get; set; }
public bool ShowImportAbschlagszahlungen { get; set; }
public bool ShowPersehImport { get; set; }
public bool HidePrintQBPopup { get; set; }
public bool DontUpdateApprovalPeriodDates { get; set; }
private SchedulerViewType _SchedulerViewType;
public SchedulerViewType SchedulerViewType
{
@@ -544,20 +462,6 @@ namespace BeWo.Core.Config
}
}
private ViewType _SchedulingViewType;
public ViewType SchedulingViewType
{
get => _SchedulingViewType;
set
{
if(_SchedulingViewType != value)
{
_SchedulingViewType = value;
IsDirty = true;
}
}
}
private int _SchedulerTimelineViewDayCount;
public int SchedulerTimelineViewDayCount
{
@@ -594,44 +498,5 @@ namespace BeWo.Core.Config
set { _filterGroupServiceCategories = value; }
}
private bool _ShowServicesOverviewHalfOrWholeMonth;
public bool ShowServicesOverviewHalfOrWholeMonth
{
get => _ShowServicesOverviewHalfOrWholeMonth;
set
{
if(_ShowServicesOverviewHalfOrWholeMonth != value)
{
_ShowServicesOverviewHalfOrWholeMonth = value;
IsDirty = true;
}
}
}
public bool OpenReportInNewWindow
{
get { return mOpenReportInNewWindow; }
set
{
if (mOpenReportInNewWindow != value)
{
mOpenReportInNewWindow = value;
IsDirty = true;
}
}
}
public FLSAnalysisConfigDC DefaultFlsAnalysisConfig
{
get { return _DefaultFlsAnalysisConfig; }
set
{
_DefaultFlsAnalysisConfig = value;
IsDirty = true;
}
}
}
}

View File

@@ -54,7 +54,7 @@ namespace BeWo.Core
try
{
if (!WirdDateiUeberwacht(dwi.FileName))
{
{
ueberwachteDateien.Add(dwi);
}
if (watcher == null)
@@ -62,20 +62,11 @@ namespace BeWo.Core
FileInfo fi = new FileInfo(dwi.FileName);
watcher = new FileSystemWatcher(fi.DirectoryName);
watcher.NotifyFilter = NotifyFilters.Size | NotifyFilters.LastWrite | NotifyFilters.CreationTime;
//watcher.NotifyFilter = NotifyFilters.Attributes
// | NotifyFilters.CreationTime
// | NotifyFilters.DirectoryName
// | NotifyFilters.FileName
// | NotifyFilters.LastAccess
// | NotifyFilters.LastWrite
// | NotifyFilters.Security
// | NotifyFilters.Size;
watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
| NotifyFilters.FileName | NotifyFilters.DirectoryName | NotifyFilters.Attributes;
watcher.Changed += new FileSystemEventHandler(OnChanged);
watcher.EnableRaisingEvents = true;
watcher.IncludeSubdirectories = false;
}
@@ -202,7 +193,7 @@ namespace BeWo.Core
{
try
{
string file = "Möchten Sie das vorhandene Dokument überschreiben? Wenn Sie auf 'Behalten' klicken, wird eine neuer Datensatz für das aktuelle Dokument angelegt.";
string file = "Möchten Sie das alte Dokument löschen?";
int i = 3;
var dialog = new UploadDialog(file, i);
@@ -229,10 +220,10 @@ namespace BeWo.Core
{
if (dwi.FileAttachmentOid.HasValue)
{
//if (System.Windows.MessageBox.Show("ACHTUNG: Das Löschen von Dateien kann nicht rückgängig gemacht werden!\nWollen Sie das Dokument '" + dwi.FileName + "' wirklich löschen?", "Löschen bestätigen", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.No)
//{
// return;
//}
if (System.Windows.MessageBox.Show("ACHTUNG: Das Löschen von Dateien kann nicht rückgängig gemacht werden!\nWollen Sie das Dokument '" + dwi.FileName + "' wirklich löschen?", "Löschen bestätigen", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.No)
{
return;
}
ServiceFacade.DoOperationsServiceAsync(s => s.DeleteFileAttachment(dwi.FileAttachmentOid.Value, dwi.FileAttachmentVersion.Value));
}
}
@@ -247,16 +238,8 @@ namespace BeWo.Core
{
foreach (var file in ueberwachteDateien)
{
LoescheTempDatei(file.FileName);
}
ueberwachteDateien.Clear();
if (watcher != null)
{
watcher.EnableRaisingEvents = false;
watcher.Dispose();
watcher = null;
}
}

View File

@@ -1,18 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeWo.Core.EventArg
{
public class TextAcceptedEventArgs : EventArgs
{
public string Text { get; }
public TextAcceptedEventArgs(string text)
{
Text = text;
}
}
}

View File

@@ -347,8 +347,7 @@ namespace BeWo.Core.Service
}
if (ve == null)
{
return new ValueListEntryDC {TypeDescription = "<Gelöscht>", ValueListEntryOid = oid };
//return new ValueListEntryDC { TypeDescription = "<Gelöscht>" };
return new ValueListEntryDC {TypeDescription = "<Gelöscht>"};
}
return ve;
}
@@ -591,70 +590,5 @@ namespace BeWo.Core.Service
});
});
}
// Für neuen SchedulingView hinzugefügt
private List<CompactCustomerDC> _FilteredCustomers;
public void GetAllActiveCustomersCompactForEmployee(long employeeOid, bool forceReload, Action<List<CompactCustomerDC>> callback)
{
if(_FilteredCustomers is null || forceReload)
{
ServiceFacade.DoEmployeeServiceAsync(s => s.GetActiveCompactCustomersForEmployee(employeeOid), customers =>
{
customers.Sort((x, y) => $"{x.LastName}, {x.FirstName}".CompareTo($"{y.LastName}, {y.FirstName}"));
_FilteredCustomers = customers;
callback(customers);
});
}
else
{
callback(_FilteredCustomers);
}
}
private List<long> _TeamRelatedCustomerOids;
public void GetTeamRelatedCustomerOidsForEmployee(long employeeOid, bool forceReload, Action<List<long>> callback)
{
if(_TeamRelatedCustomerOids is null || forceReload)
{
ServiceFacade.DoEmployeeServiceAsync(s => s.LoadTeamsRelatedCustomerOids(employeeOid), customerOids =>
{
_TeamRelatedCustomerOids = customerOids;
callback?.Invoke(_TeamRelatedCustomerOids);
});
}
else
{
callback?.Invoke(_TeamRelatedCustomerOids);
}
}
public void ClearFilteredCustomers()
{
_FilteredCustomers = null;
}
private List<CompactEmployeeDC> _FilteredEmployees;
public void GetAllActiveCompactEmployeesForEmployee(long employeeOid, bool forceReload, Action<List<CompactEmployeeDC>> callback)
{
if(_FilteredEmployees is null || forceReload)
{
ServiceFacade.DoEmployeeServiceAsync(s => s.GetActiveCompactEmployeesForEmployee(employeeOid), employees =>
{
employees.Sort((x, y) => $"{x.LastName}, {x.FirstName}".CompareTo($"{y.LastName}, {y.FirstName}"));
_FilteredEmployees = employees;
callback(employees);
});
}
else
{
callback(_FilteredEmployees);
}
}
public void ClearFilteredEmployees()
{
_FilteredEmployees = null;
}
}
}

View File

@@ -197,23 +197,15 @@ namespace BeWo.Core.Service
var goalCategoryDict = new Dictionary<long, SupportConceptGoalDC>();
var goalList = new List<SupportConceptGoalDC>();
foreach (var goalCategory in sortedCategories)
{
foreach (var goalCategory in sortedCategories)
{
var treeItem = new SupportConceptGoalDC
{
GoalEntryDC = goalCategory.DataContract,
IsExpanded = true
};
if (!goalCategoryDict.ContainsKey(goalCategory.DataContract.ValueListEntryOid.Value))
{
goalCategoryDict.Add(goalCategory.DataContract.ValueListEntryOid.Value, treeItem);
}
else
{
int test = 0;
}
goalCategoryDict.Add(goalCategory.DataContract.ValueListEntryOid.Value, treeItem);
goalList.Add(treeItem);
}

View File

@@ -25,8 +25,8 @@ namespace BeWo.Core.Service
goal.CatalogItem = catalogItem;
}
}
var ziele = allGoalsAndCategories.Where(w => w.Type.Equals(ValueListEntryType.SupportConceptGoalCategoryType) || w.Type.Equals(ValueListEntryType.SupportConceptIndividualGoalCategoryType)).OrderBy(s => s.OrderedDisplayName).ToList();
var massnahmen = allGoalsAndCategories.Where(w => w.Type.Equals(ValueListEntryType.SupportConceptGoalType) || w.Type.Equals(ValueListEntryType.SupportConceptIndividualGoalType)).OrderBy(s => s.OrderedDisplayName).ToList();
var ziele = allGoalsAndCategories.Where(w => w.Type.Equals(ValueListEntryType.SupportConceptGoalCategoryType) || w.Type.Equals(ValueListEntryType.SupportConceptIndividualGoalCategoryType)).OrderBy(s => s.DisplayName).ToList();
var massnahmen = allGoalsAndCategories.Where(w => w.Type.Equals(ValueListEntryType.SupportConceptGoalType) || w.Type.Equals(ValueListEntryType.SupportConceptIndividualGoalType)).OrderBy(s => s.DisplayName).ToList();
var goalCategoryDict = new Dictionary<long, SupportConceptGoalDC>();

View File

@@ -6,8 +6,7 @@ using System.Diagnostics;
namespace BeWo.Core
{
#pragma warning disable CS0108 // Rethrow to preserve stack details
[DebuggerDisplay("{GoalEntryVM.Abbreviation}: {GoalEntryVM.Description}")]
[DebuggerDisplay("{GoalEntryVM.Abbreviation}: {GoalEntryVM.Description}")]
public class SupportConceptGoalTreeItem : SupportConceptGoalDC
{
private ValueListEntryVM _GoalEntryVM;
@@ -98,6 +97,5 @@ namespace BeWo.Core
}
public ValueListEntryType GoalType => GoalEntryDC?.Type ?? GoalEntryVM.Type;
}
#pragma warning restore CS0108 // Rethrow to preserve stack details
}
}

View File

@@ -1,178 +0,0 @@
using System;
using System.Collections.Generic;
using System.IO;
namespace BeWo
{
public enum DebugConfigMode
{
SimpleAutoLogin,
FeatureCustomerWohnhilfe,
FeatureWohnheimWohneinheit,
FeatureAuswertungenQuittierungsbelege,
FeatureDakota,
FeatureXRechnung,
FeatureAiModule
}
public class DebugConfig
{
private static readonly string config_file_name = "DebugConfig.txt";
public static DebugConfig CurrentConfig { get; } = LoadCurrentDebugConfig();
/// <summary>
/// Wird verwendet, wenn keine DebugConfig geladen wurde oder DefaultProfilename empty ist
/// </summary>
public static string ServerUrl { get; set; }
//= "https://app5.bewoplaner.de/service";
= "http://localhost:3777/Host";
// = "http://178.63.79.124/service";
public DebugConfigMode DebugConfigMode { get; set; }
public string DefaultLoginUsername { get; set; }
public string DefaultLoginPassword { get; set; }
public string DefaultProfilename { get; set; }
public bool AutoLogin { get; set; }
public UIContext? SelectView { get; set; }
/// <summary>
/// Beschreibt den Index der jeweils gewählten View (UIContext)
///
/// Z.b.:
/// Customer:
/// - Details: 0
/// - ...: 1
/// - ...: 2
/// - ...: 3
/// - VermittlungArbeit: 4
/// - Wohnhilfe: 5
/// </summary>
public int? SelectIndex { get; set; }
public bool EnableAutoRemoteDebugging { get; set; }
public bool EnableAllUserRightsInDebug { get; set; } = false;
public bool EnableDeveloperView { get; set; } = false;
public static DebugConfig SimpleAutoLogin => new DebugConfig()
{
DebugConfigMode = DebugConfigMode.SimpleAutoLogin,
AutoLogin = !Environment.MachineName.Equals("OWNSOFT-JETTEN")
};
private static DebugConfig LoadCurrentDebugConfig()
{
#if DEBUG
try
{
var path = AppDomain.CurrentDomain.BaseDirectory;
var project_path = Directory.GetParent(path).Parent.Parent.FullName;
var config_path = Path.Combine(project_path, config_file_name);
if (!File.Exists(config_path))
return null;
var current_config = File.ReadAllText(config_path);
if (string.IsNullOrWhiteSpace(current_config))
return null;
var name2config = GetName2Config();
if (name2config.TryGetValue(current_config, out DebugConfig current))
{
return current;
}
}
catch (Exception)
{
}
#endif
return null;
}
#if DEBUG
private static Dictionary<string, DebugConfig> GetName2Config()
{
var name2config = new Dictionary<string, DebugConfig>();
name2config.Add("SimpleAutoLogin",
new DebugConfig()
{
DebugConfigMode = DebugConfigMode.SimpleAutoLogin,
AutoLogin = true
});
name2config.Add("FeatureCustomerWohnhilfe",
new DebugConfig()
{
DebugConfigMode = DebugConfigMode.FeatureCustomerWohnhilfe,
AutoLogin = true,
SelectView = UIContext.Customer,
SelectIndex = 5
});
name2config.Add("FeatureWohnheimWohneinheit",
new DebugConfig()
{
DebugConfigMode = DebugConfigMode.FeatureWohnheimWohneinheit,
AutoLogin = true,
SelectView = UIContext.Wohnheim
});
name2config.Add("FeatureAuswertungenQuittierungsbelege",
new DebugConfig()
{
DebugConfigMode = DebugConfigMode.FeatureAuswertungenQuittierungsbelege,
AutoLogin = true,
SelectView = UIContext.Report
});
name2config.Add("FeatureDakota",
new DebugConfig()
{
DebugConfigMode = DebugConfigMode.FeatureDakota,
AutoLogin = true,
//SelectView = UIContext.Organisation,
//SelectIndex = 8,
//DefaultLoginUsername = "admin",
//DefaultLoginPassword = "bewobewo",
//DefaultProfilename = "5000000000",
EnableAutoRemoteDebugging = true
});
name2config.Add("FeatureAiModule",
new DebugConfig()
{
DebugConfigMode = DebugConfigMode.FeatureAiModule,
AutoLogin = true,
//SelectView = UIContext.Administration,
//SelectIndex = 8,
//DefaultLoginUsername = "m1",
//DefaultLoginPassword = "bewobewo",
//DefaultProfilename = "5000000000",
EnableAutoRemoteDebugging = true,
EnableDeveloperView = true
});
name2config.Add("FeatureXRechnung",
new DebugConfig()
{
DebugConfigMode = DebugConfigMode.FeatureXRechnung,
AutoLogin = true,
SelectView = UIContext.Finance,
SelectIndex = 7,
//DefaultLoginUsername = "m1",
//DefaultLoginPassword = "bewobewo",
//DefaultProfilename = "5000000000",
EnableAutoRemoteDebugging = true
});
return name2config;
}
#endif
}
}

1931
BeWo/EmployeeServiceImp.cs Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,18 +1,10 @@
<Window
x:Class="BeWo.EnterTenantDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="BeWoPlaner"
Width="320"
Height="240"
WindowStartupLocation="CenterScreen"
WindowStyle="ToolWindow">
<Grid Margin="0,0,0,0" Background="{x:Null}">
<Border
Padding="5,5,5,5"
Background="{DynamicResource LoginBackgroundColor}"
BorderThickness="0">
<Window x:Class="BeWo.EnterTenantDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="BeWoPlaner" Height="240" Width="320" WindowStartupLocation="CenterScreen" WindowStyle="ToolWindow">
<Grid Background="{x:Null}" Margin="0,0,0,0">
<Border BorderThickness="0" Padding="5,5,5,5" Background="{DynamicResource LoginBackgroundColor}">
<Grid Opacity="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
@@ -25,13 +17,7 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Image
Grid.Row="0"
Height="45"
Margin="7,7,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Source="Ressources\Icons\bewoplaner_logo_small.png" />
<Image Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Top" Source="Ressources\Icons\bewoplaner_logo_small.png" Height="45" Margin="7,7,0,0"/>
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
@@ -39,70 +25,24 @@
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" ></RowDefinition>
<RowDefinition Height="Auto" ></RowDefinition>
<RowDefinition Height="Auto" ></RowDefinition>
<RowDefinition Height="Auto" ></RowDefinition>
</Grid.RowDefinitions>
<TextBlock
Grid.ColumnSpan="3"
Margin="3"
TextWrapping="Wrap">
Bitte geben Sie Ihre 10-stellige Kundennummer ein:
</TextBlock>
<TextBox
x:Name="txtTenant"
Grid.Row="1"
Grid.ColumnSpan="3"
Margin="3" />
<Button
Grid.Row="2"
Grid.Column="1"
Width="100"
Margin="3"
Click="ButtonBase_OnClick"
IsDefault="True">
OK
</Button>
<Button
Grid.Row="2"
Grid.Column="2"
Width="100"
Margin="3"
IsCancel="True">
Abbrechen
</Button>
<CheckBox
Grid.Row="3"
Grid.ColumnSpan="3"
Margin="3"
Checked="ToggleButton_OnChecked"
Unchecked="ToggleButton_OnUnchecked">
Demo Zugang nutzen
</CheckBox>
<TextBlock Grid.ColumnSpan="3" TextWrapping="Wrap" Margin="3">Bitte geben Sie Ihre 10-stellige Kundennummer ein:</TextBlock>
<TextBox x:Name="txtTenant" Grid.ColumnSpan="3" Grid.Row="1" Margin="3"></TextBox>
<Button Grid.Row="2" Grid.Column ="1" Width="100" Margin="3" IsDefault="True" Click="ButtonBase_OnClick">OK</Button>
<Button Grid.Row="2" Grid.Column ="2" Width="100" Margin="3" IsCancel="True" >Abbrechen</Button>
<CheckBox Grid.ColumnSpan="3" Grid.Row="3" Margin="3" Checked="ToggleButton_OnChecked" Unchecked="ToggleButton_OnUnchecked">Demo Zugang nutzen</CheckBox>
</Grid>
</Grid>
</Border>
<Line
Grid.ColumnSpan="4"
Stroke="#FFADADAD"
StrokeThickness="1"
X1="14"
X2="585"
Y1="70"
Y2="70" />
<Line
x:Name="linkLine"
Margin="0,30,0,-30"
Stroke="#FFADADAD"
StrokeThickness="1"
X1="14"
X2="585"
Y1="340"
Y2="340" />
<Line Grid.ColumnSpan="4" Stroke="#FFADADAD" X1="14" Y1="70" X2="585" Y2="70" StrokeThickness="1"></Line>
<Line x:Name="linkLine" Stroke="#FFADADAD" X1="14" Y1="340" X2="585" Y2="340" StrokeThickness="1" Margin="0,30,0,-30"></Line>
</Grid>
</Window>

38
BeWo/Loader.cs Normal file
View File

@@ -0,0 +1,38 @@
using BeWo.ServiceProxy;
using BS.SharedLauncher.Information;
using System;
using System.Collections.Generic;
using System.IO;
using System.IO.Pipes;
using System.Linq;
using System.Windows;
namespace BeWo
{
public static class Loader
{
public static bool Loaded { get; set; }
static Loader()
{
Loaded = false;
}
public static void Load()
{
BeWoApp.UserName = SessionInformation.Login.Username;
BeWoApp.UserPassword = SessionInformation.Login.Password;
BeWoApp.ServerName = SessionInformation.Connection.Servername;
BeWoApp.Tenant = SessionInformation.Login.Tenant;
BeWoApp.ServerAddress = SessionInformation.Connection.CoreServerAddress;
BeWoApp.ShortVersion = SessionInformation.Session.Version;
BeWoApp.Version = "Version " + SessionInformation.Session.Version;
BeWoApp.LoggedOnUser = ServiceFacade.DoUserServiceSync(s => s.LoadUserByNameAndPassword(BeWoApp.UserName, BeWoApp.UserPassword));
BeWoApp.Mandator = ServiceFacade.DoOperationsServiceSync(s => s.GetMandator());
Loaded = true;
}
}
}

View File

@@ -1,22 +1,14 @@
<Page
x:Class="BeWo.LockedPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="LockedPage"
Width="Auto"
Background="{StaticResource LoginBackground}"
Focusable="True"
SnapsToDevicePixels="False"
mc:Ignorable="d">
<Page x:Class="BeWo.LockedPage"
Title="LockedPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
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"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
mc:Ignorable="d" Width="Auto" Background="{StaticResource LoginBackground}" SnapsToDevicePixels="False" Focusable="True">
<Page.Resources>
<Storyboard x:Key="OnLoaded1">
<DoubleAnimationUsingKeyFrames
BeginTime="00:00:00"
Storyboard.TargetName="GridLogin"
Storyboard.TargetProperty="(UIElement.Opacity)">
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="GridLogin" Storyboard.TargetProperty="(UIElement.Opacity)">
<SplineDoubleKeyFrame KeyTime="00:00:00" Value="0" />
<SplineDoubleKeyFrame KeyTime="00:00:01" Value="1" />
</DoubleAnimationUsingKeyFrames>
@@ -29,14 +21,7 @@
</Page.Triggers>
<Grid>
<StackPanel HorizontalAlignment="Center">
<Grid
x:Name="GridLogin"
Width="600"
Height="400"
Margin="0,0,0,0"
Background="{x:Null}"
RenderTransformOrigin="0.5,0.5"
Visibility="Visible">
<Grid Background="{x:Null}" Height="400" Width="600" Visibility="Visible" x:Name="GridLogin" RenderTransformOrigin="0.5,0.5" Margin="0,0,0,0">
<Grid.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1" />
@@ -45,12 +30,7 @@
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</Grid.RenderTransform>
<Border
Padding="5,5,5,5"
Background="{DynamicResource LoginBackgroundColor}"
BorderBrush="#FF606060"
BorderThickness="2,2,2,2"
CornerRadius="7,7,7,7">
<Border CornerRadius="7,7,7,7" BorderThickness="2,2,2,2" Padding="5,5,5,5" BorderBrush="#FF606060" Background="{DynamicResource LoginBackgroundColor}">
<Grid Opacity="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100" />
@@ -64,142 +44,31 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Image
Grid.Row="0"
Grid.ColumnSpan="4"
Height="45"
Margin="7,7,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Source="Ressources\Icons\bewoplaner_logo_small.png" />
<Label
x:Name="LblVersion"
Grid.Row="0"
Grid.Column="0"
Grid.ColumnSpan="4"
Margin="5,7,3,0"
HorizontalAlignment="Right"
VerticalAlignment="Top"
Content="Version x.x.x"
FontSize="10"
Foreground="#FF818181" />
<StackPanel
Grid.Row="0"
Grid.Column="1"
Grid.ColumnSpan="2"
MaxWidth="330"
Margin="0,100,0,0">
<Label
x:Name="lblGesperrt"
Margin="0,30,0,0"
HorizontalAlignment="Center"
Content="Gesperrt"
FontSize="12"
FontWeight="Bold"
Foreground="#FF000000" />
<TextBlock
FontSize="12"
Foreground="#FF000000"
Text="Bitte melden Sie sich an, um den BeWoPlaner zu entsperren."
TextWrapping="Wrap" />
<Image Grid.Row="0" Grid.ColumnSpan="4" HorizontalAlignment="Left" VerticalAlignment="Top" Source="Ressources\Icons\bewoplaner_logo_small.png" Height="45" Margin="7,7,0,0"/>
<Label VerticalAlignment="Top" HorizontalAlignment="Right" Content="Version x.x.x" Foreground="#FF818181" Margin="5,7,3,0" Grid.Row="0" Grid.ColumnSpan="4" Grid.Column="0" FontSize="10" x:Name="LblVersion" />
<StackPanel Grid.Column="1" Grid.Row="0" Grid.ColumnSpan="2" Margin="0,100,0,0" MaxWidth="330">
<Label x:Name="lblGesperrt" Content="Gesperrt" Foreground="#FF000000" FontSize="12" FontWeight="Bold" Margin="0,30,0,0" HorizontalAlignment="Center" />
<TextBlock Text="Bitte melden Sie sich an, um den BeWoPlaner zu entsperren." TextWrapping="Wrap" Foreground="#FF000000" FontSize="12" />
</StackPanel>
<Label
Grid.Row="1"
Grid.Column="1"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Background="#00000000"
Content="{markup:Translate Benutzername:}"
Foreground="#FF000000" />
<Label
Grid.Row="2"
Grid.Column="1"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Background="#00000000"
Content="Passwort:"
Foreground="#FF000000" />
<TextBox
x:Name="TextBoxUsername"
Grid.Row="1"
Grid.Column="2"
Height="24"
Margin="10,10,20,10"
HorizontalAlignment="Stretch"
SnapsToDevicePixels="True"
TabIndex="0"
Text="" />
<PasswordBox
x:Name="PasswordBoxPassword"
Grid.Row="2"
Grid.Column="2"
Height="24"
Margin="10,0,20,0"
HorizontalAlignment="Stretch"
Password=""
TabIndex="1" />
<Button
x:Name="ButtonLogin"
Grid.Row="3"
Grid.Column="2"
Height="30"
Margin="10,30,20,50"
HorizontalAlignment="Stretch"
Content="Anmelden"
Foreground="White"
IsDefault="True"
TabIndex="2" />
<Label
Grid.Row="3"
Grid.Column="0"
Grid.ColumnSpan="3"
Margin="5,0,0,3"
HorizontalAlignment="Left"
VerticalAlignment="Bottom"
Content="Copyright 2010 | ownSoft GmbH"
FontSize="10"
Foreground="#FF818181" />
<TextBlock
Grid.Row="3"
Grid.Column="3"
Margin="0,0,12,10"
HorizontalAlignment="Right"
VerticalAlignment="Bottom"
FontSize="10">
<Hyperlink
Foreground="#FF818181"
NavigateUri="https://www.ownsoft.de/"
TargetName="newWindow">
www.ownsoft.de
</Hyperlink>
<Label Grid.Column="1" Grid.Row="1" VerticalAlignment="Center" HorizontalAlignment="Right" Content="{markup:Translate Benutzername:}" Foreground="#FF000000" Background="#00000000" />
<Label Grid.Column="1" Grid.Row="2" VerticalAlignment="Center" HorizontalAlignment="Left" Content="Passwort:" Foreground="#FF000000" Background="#00000000" />
<TextBox TabIndex="0" SnapsToDevicePixels="True" Grid.Column="2" Grid.Row="1" Margin="10,10,20,10" Height="24" x:Name="TextBoxUsername" HorizontalAlignment="Stretch" Text="" />
<PasswordBox Margin="10,0,20,0" Height="24" Grid.Column="2" Grid.Row="2" x:Name="PasswordBoxPassword" Password="" HorizontalAlignment="Stretch" TabIndex="1" />
<Button Margin="10,30,20,50" Height="30" x:Name="ButtonLogin" Grid.Column="2" Grid.Row="3" HorizontalAlignment="Stretch" Content="Anmelden" IsDefault="True" Foreground="White" TabIndex="2" />
<Label VerticalAlignment="Bottom" HorizontalAlignment="Left" Content="Copyright 2010 | ownSoft GmbH" Foreground="#FF818181" Margin="5,0,0,3" Grid.Row="3" Grid.ColumnSpan="3" Grid.Column="0" FontSize="10" />
<TextBlock Grid.Row="3" Grid.Column="3" HorizontalAlignment="Right" VerticalAlignment="Bottom" FontSize="10" Margin="0,0,12,10">
<Hyperlink TargetName="newWindow" Foreground="#FF818181" NavigateUri="https://www.ownsoft.de/">www.ownsoft.de</Hyperlink>
</TextBlock>
</Grid>
</Border>
<Line
Grid.ColumnSpan="4"
Stroke="#FFADADAD"
StrokeThickness="1"
X1="14"
X2="585"
Y1="70"
Y2="70" />
<Line
Grid.ColumnSpan="4"
Stroke="#FFADADAD"
StrokeThickness="1"
X1="14"
X2="585"
Y1="370"
Y2="370" />
<Line Grid.ColumnSpan="4" Stroke="#FFADADAD" X1="14" Y1="70" X2="585" Y2="70" StrokeThickness="1"></Line>
<Line Grid.ColumnSpan="4" Stroke="#FFADADAD" X1="14" Y1="370" X2="585" Y2="370" StrokeThickness="1"></Line>
</Grid>
<Rectangle
Width="600"
Height="400"
RenderTransformOrigin="0.5,0.5">
<Rectangle Width="600" Height="400" RenderTransformOrigin="0.5,0.5">
<Rectangle.OpacityMask>
<LinearGradientBrush StartPoint="0.5,0.418" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#00000000" />
<GradientStop Offset="1" Color="#4CFFFFFF" />
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0.418">
<GradientStop Color="#00000000" Offset="0" />
<GradientStop Color="#4CFFFFFF" Offset="1" />
</LinearGradientBrush>
</Rectangle.OpacityMask>
<Rectangle.RenderTransform>

View File

@@ -10,7 +10,7 @@ namespace BeWo
Loaded += LockedPage_Loaded;
LblVersion.Content = BeWoApp.Version;
lblGesperrt.Content = $"Gesperrt von " + BS.Shared.Translation.Translator.Translate("BenutzerSingular") + " " + BeWoApp.LoggedOnUser.Employee.FirstName + " " + BeWoApp.LoggedOnUser.Employee.LastName;
lblGesperrt.Content = $"Gesperrt von " + BS.SharedLauncher.Translation.Translator.Translate("BenutzerSingular") + " " + BeWoApp.LoggedOnUser.Employee.FirstName + " " + BeWoApp.LoggedOnUser.Employee.LastName;
}
private void LockedPage_Loaded(object sender, RoutedEventArgs e)

View File

@@ -1,25 +1,15 @@
<UserControl
x:Class="BeWo.LoginControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Width="Auto"
d:DesignHeight="600"
d:DesignWidth="800"
Background="{StaticResource LoginBackground}"
mc:Ignorable="d">
<Grid Name="grid_root">
<UserControl x:Class="BeWo.LoginControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
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"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
mc:Ignorable="d"
Width="Auto" Background="{StaticResource LoginBackground}"
d:DesignHeight="600" d:DesignWidth="800">
<Grid Name="grid_root" >
<StackPanel HorizontalAlignment="Center">
<Grid
x:Name="gridLogin"
Width="600"
Height="400"
Margin="0,0,0,0"
Background="{x:Null}"
RenderTransformOrigin="0.5,0.5"
Visibility="Visible">
<Grid Background="{x:Null}" Height="400" Width="600" Visibility="Visible" x:Name="gridLogin" RenderTransformOrigin="0.5,0.5" Margin="0,0,0,0">
<Grid.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1" />
@@ -28,13 +18,7 @@
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</Grid.RenderTransform>
<Border
Padding="5,5,5,5"
Background="{DynamicResource LoginBackgroundColor}"
BorderBrush="#FF606060"
BorderThickness="2,2,2,2"
CornerRadius="7,7,7,7"
KeyDown="UIElement_OnKeyDown">
<Border CornerRadius="7,7,7,7" BorderThickness="2,2,2,2" Padding="5,5,5,5" BorderBrush="#FF606060" Background="{DynamicResource LoginBackgroundColor}" KeyDown="UIElement_OnKeyDown">
<Grid Opacity="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100" />
@@ -50,369 +34,152 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Image
Grid.Row="0"
Grid.ColumnSpan="4"
Height="44"
Margin="7,7,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Source="Ressources\Icons\bewoplaner_logo_small.png" />
<Label
x:Name="lblVersion"
Grid.Row="0"
Grid.Column="0"
Grid.ColumnSpan="4"
Margin="5,7,3,0"
HorizontalAlignment="Right"
VerticalAlignment="Top"
Content="Version x.x.x"
FontSize="10"
Foreground="#FF818181" />
<StackPanel
Grid.Row="0"
Grid.Column="1"
Grid.ColumnSpan="2"
Margin="0,80,0,0">
<Label
Margin="0,30,0,0"
Content="Herzlich willkommen beim BeWoPlaner!"
FontSize="12"
FontWeight="Bold"
Foreground="#FF000000" />
<Label
Content="{markup:Translate Bitte geben Sie Ihren Benutzernamen und Ihr Passwort ein.}"
FontSize="12"
Foreground="#FF000000" />
<Image Grid.Row="0" Grid.ColumnSpan="4" HorizontalAlignment="Left" VerticalAlignment="Top" Source="Ressources\Icons\bewoplaner_logo_small.png" Height="44" Margin="7,7,0,0"/>
<Label VerticalAlignment="Top" HorizontalAlignment="Right" Content="Version x.x.x" Foreground="#FF818181" Margin="5,7,3,0" Grid.Row="0" Grid.ColumnSpan="4"
Grid.Column="0" FontSize="10" x:Name="lblVersion" />
<StackPanel Grid.Column="1" Grid.Row="0" Grid.ColumnSpan="2" Margin="0,80,0,0">
<Label Content="Herzlich willkommen beim BeWoPlaner!" Foreground="#FF000000" FontSize="12" FontWeight="Bold" Margin="0,30,0,0" />
<Label Content="{markup:Translate Bitte geben Sie Ihren Benutzernamen und Ihr Passwort ein.}" Foreground="#FF000000" FontSize="12" />
</StackPanel>
<Label
x:Name="lblPin"
Grid.Row="1"
Grid.Column="1"
VerticalAlignment="Center"
Background="#00000000"
Content="PIN:"
Foreground="#FF000000"
Visibility="Collapsed" />
<TextBox
x:Name="PINTextBox"
Grid.Row="1"
Grid.Column="2"
Height="24"
Margin="10,0,20,0"
HorizontalAlignment="Stretch"
SnapsToDevicePixels="True"
Visibility="Collapsed" />
<Label x:Name="lblPin" Content="PIN:" Grid.Column="1" Grid.Row="1" Foreground="#FF000000" Background="#00000000" VerticalAlignment="Center" Visibility="Collapsed"/>
<TextBox x:Name="PINTextBox" Grid.Column="2" Grid.Row="1" Margin="10,0,20,0" Height="24" SnapsToDevicePixels="True" HorizontalAlignment="Stretch" Visibility="Collapsed"/>
<Label
Grid.Row="2"
Grid.Column="1"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Background="#00000000"
Content="{markup:Translate Benutzername:}"
Foreground="#FF000000" />
<Label
Grid.Row="3"
Grid.Column="1"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Background="#00000000"
Content="Passwort:"
Foreground="#FF000000" />
<Label Grid.Column="1" Grid.Row="2" VerticalAlignment="Center" HorizontalAlignment="Right" Content="{markup:Translate Benutzername:}" Foreground="#FF000000" Background="#00000000" />
<Label Grid.Column="1" Grid.Row="3" VerticalAlignment="Center" HorizontalAlignment="Left" Content="Passwort:" Foreground="#FF000000" Background="#00000000" />
<TextBox
x:Name="TextBox_Username"
Grid.Row="2"
Grid.Column="2"
Height="24"
Margin="10,10,20,10"
HorizontalAlignment="Stretch"
GotFocus="TextBox_Username_OnGotFocus"
SnapsToDevicePixels="True"
TabIndex="0"
Text="" />
<TextBox TabIndex="0" SnapsToDevicePixels="True" Grid.Column="2" Grid.Row="2" Margin="10,10,20,10" Height="24" x:Name="TextBox_Username" HorizontalAlignment="Stretch" Text="" GotFocus="TextBox_Username_OnGotFocus" />
<PasswordBox
x:Name="PasswordBox_Password"
Grid.Row="3"
Grid.Column="2"
Height="24"
Margin="10,0,20,0"
HorizontalAlignment="Stretch"
GotFocus="PasswordBox_Password_OnGotFocus"
Password=""
TabIndex="1" />
<PasswordBox Margin="10,0,20,0" Height="24" Grid.Column="2" Grid.Row="3" x:Name="PasswordBox_Password" Password="" HorizontalAlignment="Stretch" GotFocus="PasswordBox_Password_OnGotFocus" TabIndex="1"/>
<Label x:Name="profileLabel" Grid.Column="1" Grid.Row="5" Content="Profil:" Foreground="#FF000000" FontSize="12" Visibility="Collapsed" VerticalAlignment="Center"/>
<Label
x:Name="profileLabel"
Grid.Row="5"
Grid.Column="1"
VerticalAlignment="Center"
Content="Profil:"
FontSize="12"
Foreground="#FF000000"
Visibility="Collapsed" />
<StackPanel
x:Name="profileStackPanel"
Grid.Row="5"
Grid.Column="2"
Margin="0,10,20,0"
Orientation="Horizontal"
Visibility="Collapsed">
<ComboBox
x:Name="profileSelectionComboBox"
Width="175"
Height="24"
Margin="10,0,0,0"
HorizontalAlignment="Left"
ItemsSource="{Binding Path=ProfileList}"
SelectedIndex="0" />
<Button
Width="23"
Height="23"
Margin="3,0,0,0"
Click="button_addProfile_Click"
Content="@"
FontFamily="Webdings"
FontSize="14"
ToolTip="Profile bearbeiten" />
<StackPanel x:Name="profileStackPanel" Grid.Row="5" Grid.Column="2" Orientation="Horizontal" Margin="0,10,20,0" Visibility="Collapsed" >
<ComboBox HorizontalAlignment="Left" x:Name="profileSelectionComboBox" Width="175" Height="24" ItemsSource="{Binding Path=ProfileList}" SelectedIndex="0" Margin="10,0,0,0" />
<Button Click="button_addProfile_Click" Content="@" FontFamily="Webdings" FontSize="14" Height="23" Width="23" Margin="3,0,0,0" ToolTip="Profile bearbeiten"/>
</StackPanel>
<Label
x:Name="proxyLabel"
Grid.Row="6"
Grid.Column="1"
VerticalAlignment="Center"
Content="Proxy:"
FontSize="12"
Foreground="#FF000000"
Visibility="Collapsed" />
<Label x:Name="proxyLabel" Grid.Column="1" Grid.Row="6" Content="Proxy:" Foreground="#FF000000" FontSize="12" Visibility="Collapsed" VerticalAlignment="Center"/>
<StackPanel
x:Name="proxyStackPanel"
Grid.Row="6"
Grid.Column="2"
Margin="0,5,20,0"
Orientation="Horizontal"
Visibility="Collapsed">
<TextBox
x:Name="proxyTextBox"
Width="175"
Height="24"
Margin="10,0,0,0"
HorizontalAlignment="Left"
IsReadOnly="True" />
<Button
Width="23"
Height="23"
Margin="3,0,0,0"
Click="button_configureProxy_Click"
Content="@"
FontFamily="Webdings"
FontSize="14"
ToolTip="Proxy bearbeiten" />
<StackPanel x:Name="proxyStackPanel" Grid.Row="6" Grid.Column="2" Orientation="Horizontal" Margin="0,5,20,0" Visibility="Collapsed">
<TextBox HorizontalAlignment="Left" x:Name="proxyTextBox" Width="175" Height="24" Margin="10,0,0,0" IsReadOnly="True"/>
<Button Click="button_configureProxy_Click" Content="@" FontFamily="Webdings" FontSize="14" Height="23" Width="23" Margin="3,0,0,0" ToolTip="Proxy bearbeiten"/>
</StackPanel>
<ToggleButton x:Name="showProfileSelectionBtn" Click="ShowProfileStackPanel" HorizontalAlignment="Right" Content="Erweitert" Grid.Row="4" Grid.Column="2" Margin="0,5,20,0" Foreground="#FF818181">
<ToggleButton.Template>
<ControlTemplate TargetType="{x:Type ToggleButton}">
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="18"/>
</Grid.ColumnDefinitions>
<ContentPresenter x:Name="ButtonContent"/>
<Path Grid.Column="1"
x:Name="Down_Arrow"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Fill="{TemplateBinding Foreground}"
Data="M 0 0 L 4 4 L 8 0 L 4 2 Z" Margin="0,3,0,0"
/>
<Path Grid.Column="1"
x:Name="Down_Arrow2"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Fill="{TemplateBinding Foreground}"
Data="M 0 0 L 4 4 L 8 0 L 4 2 Z" Margin="0,-3,0,0"
/>
<Path Grid.Column="1"
x:Name="Up_Arrow"
Visibility="Collapsed"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Fill="{TemplateBinding Foreground}"
Data="M 0 4 L 4 0 L 8 4 L 4 2 Z" Margin="0,-3,0,0"
/>
<Path Grid.Column="1"
x:Name="Up_Arrow2"
Visibility="Collapsed"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Fill="{TemplateBinding Foreground}"
Data="M 0 4 L 4 0 L 8 4 L 4 2 Z" Margin="0,3,0,0"
/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Fill" Value="#FF333333" TargetName="Down_Arrow"/>
<Setter Property="Fill" Value="#FF333333" TargetName="Down_Arrow2"/>
<Setter Property="Fill" Value="#FF333333" TargetName="Up_Arrow"/>
<Setter Property="Fill" Value="#FF333333" TargetName="Up_Arrow2"/>
<Setter Property="TextBlock.Foreground" Value="#FF333333" TargetName="ButtonContent"/>
</Trigger>
<Trigger Property="IsChecked" Value="true">
<Setter Property="Visibility" Value="Collapsed" TargetName="Down_Arrow"/>
<Setter Property="Visibility" Value="Collapsed" TargetName="Down_Arrow2"/>
<Setter Property="Visibility" Value="Visible" TargetName="Up_Arrow"/>
<Setter Property="Visibility" Value="Visible" TargetName="Up_Arrow2"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</ToggleButton.Template>
<ToggleButton.Triggers>
<EventTrigger RoutedEvent="Button.Click">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetName="gridLogin"
Storyboard.TargetProperty="Height"
From="{Binding HeightFrom, UpdateSourceTrigger=PropertyChanged}" To="{Binding HeightTo, UpdateSourceTrigger=PropertyChanged}" Duration="0:0:0.1"
AutoReverse="False" Completed="AnimationComplete" />
<DoubleAnimation
Storyboard.TargetName="linkLine"
Storyboard.TargetProperty="Y1"
From="{Binding LineYCoordFrom, UpdateSourceTrigger=PropertyChanged}" To="{Binding LineYCoordTo, UpdateSourceTrigger=PropertyChanged}" Duration="0:0:0.1"
AutoReverse="False" Completed="Animation2Complete" />
<DoubleAnimation
Storyboard.TargetName="linkLine"
Storyboard.TargetProperty="Y2"
From="{Binding LineYCoordFrom, UpdateSourceTrigger=PropertyChanged}" To="{Binding LineYCoordTo, UpdateSourceTrigger=PropertyChanged}" Duration="0:0:0.1"
AutoReverse="False" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</ToggleButton.Triggers>
</ToggleButton>
<ToggleButton
x:Name="showProfileSelectionBtn"
Grid.Row="4"
Grid.Column="2"
Margin="0,5,20,0"
HorizontalAlignment="Right"
Click="ShowProfileStackPanel"
Content="Erweitert"
Foreground="#FF818181">
<ToggleButton.Template>
<ControlTemplate TargetType="{x:Type ToggleButton}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="18" />
</Grid.ColumnDefinitions>
<ContentPresenter x:Name="ButtonContent" />
<Path
x:Name="Down_Arrow"
Grid.Column="1"
Margin="0,3,0,0"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Data="M 0 0 L 4 4 L 8 0 L 4 2 Z"
Fill="{TemplateBinding Foreground}" />
<Path
x:Name="Down_Arrow2"
Grid.Column="1"
Margin="0,-3,0,0"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Data="M 0 0 L 4 4 L 8 0 L 4 2 Z"
Fill="{TemplateBinding Foreground}" />
<Path
x:Name="Up_Arrow"
Grid.Column="1"
Margin="0,-3,0,0"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Data="M 0 4 L 4 0 L 8 4 L 4 2 Z"
Fill="{TemplateBinding Foreground}"
Visibility="Collapsed" />
<Path
x:Name="Up_Arrow2"
Grid.Column="1"
Margin="0,3,0,0"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Data="M 0 4 L 4 0 L 8 4 L 4 2 Z"
Fill="{TemplateBinding Foreground}"
Visibility="Collapsed" />
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter TargetName="Down_Arrow" Property="Fill" Value="#FF333333" />
<Setter TargetName="Down_Arrow2" Property="Fill" Value="#FF333333" />
<Setter TargetName="Up_Arrow" Property="Fill" Value="#FF333333" />
<Setter TargetName="Up_Arrow2" Property="Fill" Value="#FF333333" />
<Setter TargetName="ButtonContent" Property="TextBlock.Foreground" Value="#FF333333" />
</Trigger>
<Trigger Property="IsChecked" Value="true">
<Setter TargetName="Down_Arrow" Property="Visibility" Value="Collapsed" />
<Setter TargetName="Down_Arrow2" Property="Visibility" Value="Collapsed" />
<Setter TargetName="Up_Arrow" Property="Visibility" Value="Visible" />
<Setter TargetName="Up_Arrow2" Property="Visibility" Value="Visible" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</ToggleButton.Template>
<ToggleButton.Triggers>
<EventTrigger RoutedEvent="Button.Click">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
AutoReverse="False"
Completed="AnimationComplete"
Storyboard.TargetName="gridLogin"
Storyboard.TargetProperty="Height"
From="{Binding HeightFrom, UpdateSourceTrigger=PropertyChanged}"
To="{Binding HeightTo, UpdateSourceTrigger=PropertyChanged}"
Duration="0:0:0.1" />
<DoubleAnimation
AutoReverse="False"
Completed="Animation2Complete"
Storyboard.TargetName="linkLine"
Storyboard.TargetProperty="Y1"
From="{Binding LineYCoordFrom, UpdateSourceTrigger=PropertyChanged}"
To="{Binding LineYCoordTo, UpdateSourceTrigger=PropertyChanged}"
Duration="0:0:0.1" />
<DoubleAnimation
AutoReverse="False"
Storyboard.TargetName="linkLine"
Storyboard.TargetProperty="Y2"
From="{Binding LineYCoordFrom, UpdateSourceTrigger=PropertyChanged}"
To="{Binding LineYCoordTo, UpdateSourceTrigger=PropertyChanged}"
Duration="0:0:0.1" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</ToggleButton.Triggers>
</ToggleButton>
<StackPanel
Grid.Row="7"
Grid.Column="2"
Margin="10,30,20,50"
HorizontalAlignment="Stretch"
Orientation="Vertical">
<Button
x:Name="button_login"
Height="30"
Margin="3"
HorizontalAlignment="Stretch"
Click="button_login_Click"
Content="Anmelden"
Foreground="White"
IsDefault="True" />
<TextBlock
Margin="3"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Foreground="{DynamicResource MainGroupBoxForegroundBrush}"
Visibility="Collapsed">
<Hyperlink NavigateUri="#" RequestNavigate="PasswortVergessenLinkOnRequestNavigate">
<TextBlock
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontSize="10"
Text="Passwort vergessen" />
</Hyperlink>
</TextBlock>
</StackPanel>
<TextBlock
x:Name="txtCopyright"
Grid.Row="7"
Grid.Column="0"
Grid.ColumnSpan="3"
Margin="10,5,0,5"
HorizontalAlignment="Left"
VerticalAlignment="Bottom"
FontSize="10"
Foreground="#FF818181"
Text="Copyright 2022 | ownSoft GmbH" />
<TextBlock
Grid.Row="7"
Grid.Column="3"
Margin="0,5,12,5"
HorizontalAlignment="Right"
VerticalAlignment="Bottom"
FontSize="10">
<Hyperlink
x:Name="hyperlink"
Foreground="#FF818181"
NavigateUri="https://www.ownsoft.de"
RequestNavigate="Hyperlink_OnRequestNavigate"
TargetName="newWindow">
www.ownsoft.de
</Hyperlink>
<StackPanel Margin="10,30,20,50" Grid.Column="2" Grid.Row="7" Orientation="Vertical" HorizontalAlignment="Stretch">
<Button Height="30" x:Name="button_login" HorizontalAlignment="Stretch" Content="Anmelden" Click="button_login_Click" IsDefault="True" Foreground="White" Margin="3" />
<TextBlock VerticalAlignment="Center" Visibility="Collapsed" HorizontalAlignment="Center" Foreground="{DynamicResource MainGroupBoxForegroundBrush}" Margin="3">
<Hyperlink RequestNavigate="PasswortVergessenLinkOnRequestNavigate" NavigateUri="#" >
<TextBlock Text="Passwort vergessen" HorizontalAlignment="Center" FontSize="10" VerticalAlignment="Center" />
</Hyperlink>
</TextBlock>
</StackPanel>
<TextBlock x:Name="txtCopyright" Grid.Row="7" Grid.Column="0" Grid.ColumnSpan="3" HorizontalAlignment="Left" VerticalAlignment="Bottom" FontSize="10" Margin="10,5,0,5" Text="Copyright 2022 | ownSoft GmbH" Foreground="#FF818181"/>
<TextBlock Grid.Row="7" Grid.Column="3" HorizontalAlignment="Right" VerticalAlignment="Bottom" FontSize="10" Margin="0,5,12,5">
<Hyperlink x:Name="hyperlink" TargetName="newWindow" Foreground="#FF818181" NavigateUri="https://www.ownsoft.de" RequestNavigate="Hyperlink_OnRequestNavigate">www.ownsoft.de</Hyperlink>
</TextBlock>
</Grid>
</Border>
<Line
Grid.ColumnSpan="4"
Stroke="#FFADADAD"
StrokeThickness="1"
X1="14"
X2="585"
Y1="70"
Y2="70" />
<Line
x:Name="linkLine"
Margin="0,30,0,-30"
Stroke="#FFADADAD"
StrokeThickness="1"
X1="14"
X2="585"
Y1="340"
Y2="340" />
<Line Grid.ColumnSpan="4" Stroke="#FFADADAD" X1="14" Y1="70" X2="585" Y2="70" StrokeThickness="1"></Line>
<Line x:Name="linkLine" Stroke="#FFADADAD" X1="14" Y1="340" X2="585" Y2="340" StrokeThickness="1" Margin="0,30,0,-30"></Line>
</Grid>
<Rectangle
Width="600"
Height="400"
RenderTransformOrigin="0.5,0.5">
<Rectangle Width="600" Height="400" RenderTransformOrigin="0.5,0.5">
<Rectangle.OpacityMask>
<LinearGradientBrush StartPoint="0.5,0.418" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#00000000" />
<GradientStop Offset="1" Color="#4CFFFFFF" />
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0.418">
<GradientStop Color="#00000000" Offset="0" />
<GradientStop Color="#4CFFFFFF" Offset="1" />
</LinearGradientBrush>
</Rectangle.OpacityMask>
<Rectangle.RenderTransform>
@@ -428,6 +195,8 @@
</Rectangle.Fill>
</Rectangle>
</StackPanel>
<Border x:Name="profileEditPopUp" />
<Border x:Name="profileEditPopUp" />
</Grid>
</UserControl>

File diff suppressed because it is too large Load Diff

View File

@@ -1,20 +1,6 @@
<Page
x:Class="BeWo.LogoPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:BeWo="clr-namespace:BeWo"
x:Name="Page"
Width="640"
Height="480"
FlowDirection="LeftToRight"
WindowHeight="480"
WindowTitle="Page"
WindowWidth="640">
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="BeWo.LogoPage" x:Name="Page" WindowTitle="Page" FlowDirection="LeftToRight" Width="640" Height="480" WindowWidth="640" WindowHeight="480" xmlns:BeWo="clr-namespace:BeWo">
<Grid
x:Name="LayoutRoot"
Width="300"
Height="300">
<BeWo:BSLogoControl Width="400" Height="400" />
</Grid>
<Grid x:Name="LayoutRoot" Width="300" Height="300">
<BeWo:BSLogoControl Width="400" Height="400" />
</Grid>
</Page>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,16 +1,9 @@
<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"
Width="1024"
Height="768"
BorderThickness="1"
Closing="MainWindow_OnClosing"
SizeChanged="Window_SizeChanged"
WindowStartupLocation="CenterScreen"
WindowState="Maximized">
<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" SourceInitialized="Window_SourceInitialized">
<Grid x:Name="rootGrid">
<ComboBox Width="100" />
</Grid>
</Window>

View File

@@ -4,8 +4,7 @@ using System.Threading;
using System.Windows;
using BeWo.Core.Config;
using BeWo.MultiLanguage;
using BeWo.ServiceProxy;
using BS.Shared.Translation;
using BS.SharedLauncher.Translation;
using DevExpress.Xpf.Core;
namespace BeWo
@@ -20,7 +19,48 @@ namespace BeWo
InitializeComponent();
ApplicationThemeHelper.ApplicationThemeName = "Office2010Black";
ShowLoginControl();
if (Loader.Loaded)
ShowNewWay();
else
ShowOldWay(false);
//throw new Exception("Loader failed");
}
private void ShowNewWay()
{
Translator t = new Translator(new ServiceTranslator());
//WebRequest.DefaultWebProxy
//System.Net.WebRequest.GetSystemWebProxy()
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);
}
private void ShowOldWay(bool skiplogin)
{
if (skiplogin)
{
throw new NotImplementedException("47845978233134");
// Muss hier ggf string anpassen
//Loader.Load("tedemo?undemo?pwdemo?ip?sn1?cs?vr1.0.4.1");
//ShowNewWay();
}
else
{
//WebRequest.DefaultWebProxy
//System.Net.WebRequest.GetSystemWebProxy()
var lc = new LoginControl();
rootGrid.Children.Add(lc);
lc.LoginSuccessful += lc_LoginSuccessful;
}
}
private void ShowLoginControl()
@@ -45,7 +85,7 @@ namespace BeWo
// dlg.ShowDialog();
//}
#else
if (BeWoApp.Tenant == "demo" || BeWoApp.Tenant == "7514581436")
if (BeWoApp.Tenant == "demo")
{
var dlg = new ConfirmDemoDialog();
dlg.ShowDialog();
@@ -60,17 +100,18 @@ namespace BeWo
mc.LogoutClicked += new EventHandler(mc_LogoutClicked);
rootGrid.Children.Add(mc);
if (BeWoApp.AppSettings.ShowAI)
{
ServiceFacade.DoAiEnhancedServiceAsnyc(x => x.GetAiConfig(), null, null, false);
}
}
void mc_LogoutClicked(object sender, EventArgs e)
{
rootGrid.Children.Clear();
BeWoApp.MainControl = null;
ShowLoginControl();
if(Loader.Loaded)
Application.Current.Shutdown(100);
else
ShowLoginControl();
}
private void MainWindow_OnClosing(object sender, CancelEventArgs e)
@@ -105,17 +146,16 @@ namespace BeWo
BeWoApp.MainControl.HomeView.ServiceChatView = null;
}
BeWoApp.CurrentBeWo.DocumentWatcher.LoescheAlleTempDateien();
BeWoApp.CurrentBeWo.DocumentWatcher.LoescheTempDateien();
Application.Current.Shutdown();
}
private void Window_SizeChanged(object sender, SizeChangedEventArgs e)
{
#if DEBUG
// Setze den Titel auf die aktuelle Breite und Höhe
this.Title = $"BeWoPlaner ({e.NewSize.Width}x{e.NewSize.Height})";
#endif
private void Window_SourceInitialized(object sender, EventArgs e)
{
Console.WriteLine("GUI geladen");
Thread.Sleep(500);
}
}
}
}

View File

@@ -1,6 +1,6 @@
using System;
using BS.SharedLauncher.Translation;
using System;
using System.Windows.Markup;
using BS.Shared.Translation;
namespace BeWo.MultiLanguage.Markup
{

View File

@@ -6,7 +6,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using BeWo.ServiceProxy;
using BS.Shared.Translation;
using BS.SharedLauncher.Translation;
using DevExpress.Xpo.Logger;
namespace BeWo.MultiLanguage

View File

@@ -1,20 +1,13 @@
<Window
x:Class="BeWo.OpenOrSaveDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="OpenOrSaveDialog"
Width="300"
Height="150"
AllowsTransparency="True"
Background="Transparent"
ResizeMode="NoResize"
WindowStartupLocation="CenterOwner"
WindowStyle="None">
<Window x:Class="BeWo.OpenOrSaveDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="OpenOrSaveDialog" Height="150" Width="300"
WindowStartupLocation="CenterOwner"
WindowStyle="None"
AllowsTransparency="True"
Background="Transparent" ResizeMode="NoResize" >
<Grid>
<GroupBox
Header="Download"
MouseLeftButtonDown="UIElement_OnMouseLeftButtonDown"
Style="{StaticResource MainContentGroupBoxWithoutMaximizeBtnStyle}">
<GroupBox Style="{StaticResource MainContentGroupBoxWithoutMaximizeBtnStyle}" Header="Download" MouseLeftButtonDown="UIElement_OnMouseLeftButtonDown">
<Grid Background="{DynamicResource ObjectEditBackgroundBrush}">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
@@ -25,35 +18,10 @@
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock
Grid.ColumnSpan="3"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Foreground="#FF202020"
Text="{Binding Question}"
TextAlignment="Center"
TextWrapping="Wrap" />
<Button
Grid.Row="1"
Grid.Column="0"
Width="85"
Margin="0,0,0,5"
Command="Open"
Content="Öffnen" />
<Button
Grid.Row="1"
Grid.Column="1"
Width="85"
Margin="0,0,0,5"
Command="Save"
Content="Speichern" />
<Button
Grid.Row="1"
Grid.Column="2"
Width="85"
Margin="0,0,0,5"
Command="Close"
Content="Abbrechen" />
<TextBlock Text="{Binding Question}" Grid.ColumnSpan="3" HorizontalAlignment="Center" VerticalAlignment="Center" TextWrapping="Wrap" TextAlignment="Center" Foreground="#FF202020"/>
<Button Margin="0,0,0,5" Grid.Row="1" Grid.Column="0" Content="Öffnen" Width="85" Command="Open" />
<Button Margin="0,0,0,5" Grid.Row="1" Grid.Column="1" Content="Speichern" Width="85" Command="Save" />
<Button Margin="0,0,0,5" Grid.Row="1" Grid.Column="2" Content="Abbrechen" Width="85" Command="Close" />
</Grid>
</GroupBox>
</Grid>

View File

@@ -19,7 +19,7 @@ namespace BeWo.Properties {
// -Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert.
// Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen
// mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {

View File

@@ -12,7 +12,7 @@ namespace BeWo.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.12.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));

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