Compare commits

...

441 Commits

Author SHA1 Message Date
OlgunR
b2242cb6a9 Leerer Betreff beim Ablegen Emails wird abgefangen - frmIndex 2025-08-28 16:01:43 +02:00
OlgunR
131383ff9d Abfangen von Fehlern beim Löschen von Sql Verbindungen - frmConnecitons 2025-08-25 08:26:24 +02:00
OlgunR
b2aba07644 Laden von Default Values in LookupControls - ClassPatterns, frmIndex 2025-08-08 12:44:12 +02:00
OlgunR
8810592e6d Regex bei automatischer Profilauswahl und Ablegen von Dokumenten ist nun caseinsensitive - frmAdministration, frmIndex 2025-07-30 08:10:29 +02:00
OlgunR
cd3b2f1ae3 Support Link wird dynamisch aus der DB geholt. - frmAbout 2025-07-23 09:11:09 +02:00
OlgunR
80f49a1546 Labels laden wie sie sollen 2025-07-01 16:22:42 +02:00
OlgunR
5ac9b9b6fc Panel aufgeräumt + Ribbon Control Pageheader 2025-06-27 13:05:23 +02:00
OlgunR
f256220201 Aufräumaktion 2025-06-24 13:43:47 +02:00
Developer01
83e028ea06 Devexpress skin auf Win 2019 2025-06-16 09:04:31 +02:00
Developer01
e2f8607592 UseAppConfig integriert wie in taskFLOW 2025-06-05 14:09:27 +02:00
Developer01
c6d49b988b V 2.7.4.3 Dateinamen in SQL Editor 2025-05-23 10:17:40 +02:00
Developer01
cf19eb5402 Logging wegen subject 2025-05-16 12:08:28 +02:00
Developer01
1c83ed44ed Merge branch 'master' of http://dd-vmp07-com04:3000/AppStd/FileFlow 2025-05-16 11:54:33 +02:00
Developer01
5f965857c8 MS Parameter renaming 2025-05-16 11:54:13 +02:00
OlgunR
1b24e778ae Support Link wird aus der DB geholt und ist nicht mehr hardcoded - frmConfigBasic 2025-05-15 11:35:09 +02:00
OlgunR
95b4fd6bd3 Support Link aktualisiert - frmConfig_Basic 2025-05-13 14:37:01 +02:00
OlgunR
574fd88b99 Vor Profilauswahl prüfen, ob Session vorhanden - frmIndex 2025-05-07 13:28:09 +02:00
OlgunR
199904b695 Defaultwert für E-Mails ohne Betreff - frmIndex 2025-05-06 16:36:52 +02:00
OlgunR
623672ded9 DefaultValue für Name des neu hinzugefügten Indexes und Focus auf diesen - frmAdministration 2025-05-05 15:43:37 +02:00
OlgunR
d11a0453bb Hervorgehobene Fehlermeldung beim Indexieren - frmIndex 2025-04-30 13:06:06 +02:00
OlgunR
274b1db57b Merge branch 'master' of http://dd-vmp07-com04:3000/AppStd/FileFlow 2025-04-30 08:57:22 +02:00
OlgunR
b586fc8e8f Support Link aktualisiert - frmConfig_Basic 2025-04-30 08:56:42 +02:00
Developer01
983164c149 MS Modules windream integriert 2025-04-29 16:20:42 +02:00
Developer01
b34a0780e7 Logging im Falle Vektor und Vorbelegung 2025-04-28 13:12:19 +02:00
Developer01
9e40e2eccd MS 2025-04-28 12:53:37 +02:00
Developer01
b2d6f0d186 Ressources adapt 2025-04-28 10:56:39 +02:00
Developer01
a5a0d1898a Übergabe WM Indexe an SQL Admin 2025-04-23 09:33:44 +02:00
Developer01
cb00f0f96d MS 2025-04-10 13:01:15 +02:00
Developer01
f36b591bd1 MS 2025-04-03 18:13:47 +02:00
Developer01
b6b0858888 MS 2.7.4.01Indexierung Vektorfelder automatische Idnexe 2025-04-02 14:14:04 +02:00
Developer01
e604b513b5 MS V2.7.4.1 Betatest 2025-03-28 15:16:58 +01:00
Developer01
5df478bdab MS GDPicture Verweis 2025-03-26 14:05:16 +01:00
Developer01
11a92817bc MS Leerzeichen 2025-03-18 17:07:11 +01:00
Developer01
8b584eef51 V2.7.30 2025-01-23 11:46:03 +01:00
Developer01
6cb4cee7c3 MS Vektrortype > 4095 und neue dlls GDPicture inkl Runtime dll 2025-01-22 12:15:33 +01:00
Developer01
5733509404 MS Indexierung Vektor lief amok weil Constante Vektor zu klein war 2025-01-21 14:45:47 +01:00
Developer01
b72e60d89a MS 2.7.2.0 Copy Automatischer Index Sequence Spalte itnegriert 2024-09-24 13:02:01 +02:00
Developer01
f3ebcf3259 MS GD Picture 2024-09-23 17:36:44 +02:00
Developer01
d903658c13 MS Update Globix Renaming 2024-09-23 17:14:28 +02:00
Developer01
ad46bae4f4 MS V2.7.70 2024-09-10 17:41:58 +02:00
Developer01
6f9ede51cb MS v2.7.0.0 Renaming fileFLOW 2024-09-02 12:43:56 +02:00
Developer01
48d21617c9 MS V 2.6.9 Indexierung Vektorfeld mit Vektor 2024-08-23 09:36:18 +02:00
8c824f3f59 MS V2.6.8.3 newfileFLOW Icons 2024-06-17 08:45:47 +02:00
e5a0734b24 MS Folderwatch ColumnName instead index 2024-06-11 16:58:14 +02:00
d2a8464f3e MergeCommit 2024-06-11 16:25:00 +02:00
daa89b0535 MS Debug Folderwatch 2024-06-11 16:23:04 +02:00
Jonathan Jenne
d1eb446ed4 Switch Module dependencies to 'P:\Install .Net\0 DD - Bibliotheken\Modules' 2024-01-31 10:14:51 +01:00
Jonathan Jenne
6cc19c72a5 Version 2.6.8.1 2023-12-20 09:23:17 +01:00
Jonathan Jenne
349351ba82 Automatically set focus to profile select or first control 2023-12-20 09:22:52 +01:00
Jonathan Jenne
65ad9de1e2 Version 2.6.8.0 2023-12-19 10:12:27 +01:00
Jonathan Jenne
64a6cba017 add keybinding for profile selector 2023-12-19 10:12:05 +01:00
Jonathan Jenne
75bfd81ad4 Fix Config Migration 2023-10-04 14:00:19 +02:00
Jonathan Jenne
31a9afaf96 Version 2.6.7.3 2023-10-04 13:27:22 +02:00
Jonathan Jenne
281c7a824a Migrate computer config 2023-10-04 13:27:04 +02:00
Jonathan Jenne
a196e84071 Version 2.6.7.2 2023-09-29 13:20:20 +02:00
Jonathan Jenne
b18eedf701 Add config migrator 2023-09-29 13:17:37 +02:00
Jonathan Jenne
54bb1bb451 first pass of overwrite and distinct 2023-09-26 16:51:37 +02:00
Jonathan Jenne
2eeb773cf8 update TBDD_DOKUMENTART & VWDDINDEX_AUTOM 2023-09-26 15:42:11 +02:00
Jonathan Jenne
67bf229525 add new automatic index settings 2023-09-26 14:42:09 +02:00
ef804638b3 MS Skins 2023-09-21 12:07:24 +02:00
Jonathan Jenne
cf041b3894 Add VKT_PREVENT_NEW_VALUES and VKT_OVERWRITE in Dataset 2023-09-19 16:31:24 +02:00
Jonathan Jenne
6edb3879de Version 2.6.7.1 2023-09-11 15:25:14 +02:00
Jonathan Jenne
6cd56af377 Fix installer 2023-09-11 15:24:56 +02:00
Jonathan Jenne
81e5fe7820 Version 2.6.7.0 2023-09-11 15:17:51 +02:00
Jonathan Jenne
123eaceb12 Fix Sql Connection missing in Depending Controls, clean up Filesystem module use 2023-09-11 15:17:22 +02:00
Jonathan Jenne
f727c0da9f Version 2.6.6.6 2023-06-05 16:48:22 +02:00
Jonathan Jenne
54813eb7a5 fix double windream objects 2023-06-05 16:48:01 +02:00
Jonathan Jenne
db364d1fd6 merge 2023-06-05 16:36:54 +02:00
Jonathan Jenne
ba7f11491b Version 2.6.6.5 2023-06-05 16:36:22 +02:00
Jonathan Jenne
10d7680aa3 Fix windream basepath being swallowed when combining paths 2023-06-05 16:36:13 +02:00
d2fbe0a894 MS Release module.windream currency 2023-04-26 15:23:28 +02:00
Jonathan Jenne
3913928a21 fix path in SINGLEFILE_2_WINDREAM 2023-04-14 13:01:11 +02:00
Jonathan Jenne
b70613ffcc Version 2.6.6.2 2023-04-14 12:11:40 +02:00
7da463c6b3 MS 2.6.5.1 2023-04-12 10:54:16 +02:00
Jonathan Jenne
62e4bb84c3 Fix debug flag for logger 2023-03-28 14:47:21 +02:00
Jonathan Jenne
e1692f68de Version 2.6.5.1 2023-03-28 13:59:21 +02:00
Jonathan Jenne
2fefe100ee merge 2023-03-28 13:57:54 +02:00
8097017f9f MS merge DEsign 2023-03-28 13:56:07 +02:00
Jonathan Jenne
890cd6a45e Version 2.6.3.3 2023-03-28 13:47:48 +02:00
42cc852775 MS FNDD_CHeck_Module 2023-03-27 13:38:24 +02:00
a641c0d3ae MS 2.6.5 AppConfig akzeptieren 2023-03-27 10:36:48 +02:00
d21475bef6 MS 2.6.4. Global Indexer Terms ersetzen 2023-03-21 14:28:57 +01:00
Jonathan Jenne
8edac6bb6a Version 2.6.3.1 2023-03-13 15:43:41 +01:00
Jonathan Jenne
8ac13823ca Fix placeholder configuration for dynamic sqls 2023-03-13 15:43:31 +01:00
af7aa23c8f MS 2023-03-13 14:12:51 +01:00
Jonathan Jenne
1906bac96d Merge branch 'master' of http://dd-vmp07-com04:3000/SchreiberM/GlobalIndexer 2023-03-13 14:12:24 +01:00
55c59ccbe9 MS 2023-03-13 14:12:00 +01:00
Jonathan Jenne
e66d404158 ignore .vs folder 2023-02-20 09:32:32 +01:00
ea5ab3460d MS 2023-02-01 08:54:49 +01:00
6275c097ef MS 2023-02-01 08:52:52 +01:00
Jonathan Jenne
e5d3f1f941 Fix typo 2023-01-31 14:57:44 +01:00
Jonathan Jenne
8f129647fb Fix placeholder format for manual indexes in automatic indexes 2023-01-31 14:52:07 +01:00
3995c6c9fd MS .net 4.6.2 Modules Update 2023-01-31 13:55:52 +01:00
b6b4c87dd2 MS 2022-10-13 08:40:20 +02:00
Jonathan Jenne
d8e2f54fd5 Version 2.6.2 2022-06-07 11:17:35 +02:00
Jonathan Jenne
97a2f6815c Include new Messagebox for important messages 2022-06-07 11:17:13 +02:00
Jonathan Jenne
271a3d1157 jj 2022-05-12 13:20:26 +02:00
Jonathan Jenne
1469fc3603 fix setup 2022-05-12 11:33:47 +02:00
Jonathan Jenne
b19464b1f2 Version 2.6.1 2022-05-12 11:23:17 +02:00
Jonathan Jenne
6d8ddda5c0 fix admin bug 2022-05-12 11:20:43 +02:00
Jonathan Jenne
4dfde0478a Merge branch 'master' of http://dd-vmp07-com04:3000/SchreiberM/GlobalIndexer 2022-05-12 11:05:07 +02:00
Jonathan Jenne
81c8c26a9b Add new SQLEditor 2022-05-12 11:04:53 +02:00
41917df290 MS 2022-05-12 07:57:28 +02:00
00e288055e MS 2022-05-12 07:56:25 +02:00
Jonathan Jenne
3b316c43ef Merge branch 'master' of http://dd-vmp07-com04:3000/SchreiberM/GlobalIndexer 2022-04-14 14:15:23 +02:00
Jonathan Jenne
bd19f4ff11 Version 2.6.0.6 2022-04-14 14:15:06 +02:00
Jonathan Jenne
3957077fc7 Improve text for email indexing 2022-04-14 14:14:58 +02:00
Jonathan Jenne
d3eee77136 Improve logging for debug checkbox 2022-04-14 14:14:41 +02:00
Jonathan Jenne
ba5758d2ca Version 2.6.0.5 2022-04-05 17:07:32 +02:00
Jonathan Jenne
6e821797d1 Fix installer 2022-04-05 16:41:30 +02:00
611257de1e Merge branch 'master' of http://dd-vmp07-com04:3000/SchreiberM/GlobalIndexer 2022-04-04 14:03:49 +02:00
32127a6524 MS Icons 2022-04-04 14:03:37 +02:00
Jonathan Jenne
9c7ac0047f Version 2.6.0.4 2022-04-04 13:16:57 +02:00
Jonathan Jenne
7d1a231bde Merge branch 'master' of http://dd-vmp07-com04:3000/SchreiberM/GlobalIndexer 2022-04-04 13:14:46 +02:00
Jonathan Jenne
6240254324 Fix file preview 2022-04-04 13:08:16 +02:00
8424fa3e31 MS LogErrorsOnly replaced 2022-04-04 13:05:48 +02:00
5914e27bcc MS Icons SQL Editor Griid 2022-04-04 12:55:57 +02:00
abd6f3507a Merge 2022-04-04 12:47:18 +02:00
fb4728e2bf MS 2022-04-04 12:46:48 +02:00
Jonathan Jenne
e494f0c159 Version 2.6.0.2 2022-04-04 10:39:16 +02:00
Jonathan Jenne
2da4a1b580 Add icons to frmStart menu 2022-04-04 10:38:53 +02:00
Jonathan Jenne
020de1aa4c Fix SQL Designer not recognizing MSSQL Connectionstrings 2022-04-04 10:38:40 +02:00
Jonathan Jenne
f5a69eac84 Version 2.6.0.1 2022-04-04 10:26:10 +02:00
Jonathan Jenne
c688219f24 Fix SQL Designer selecting wrong connection type 2022-04-04 10:25:53 +02:00
Jonathan Jenne
85a7064afc Improve Contrast in frmStart 2022-04-04 10:25:30 +02:00
Jonathan Jenne
076e01c678 Version 2.6.0.0 2022-04-01 16:37:03 +02:00
Jonathan Jenne
aa8ba0e2e9 Redesign Start Form 2022-04-01 16:36:11 +02:00
Jonathan Jenne
569c66d764 Fix deleting original file error by setting file attributes to normal 2022-04-01 15:28:48 +02:00
Jonathan Jenne
136d2a0f45 merge 2022-04-01 13:40:14 +02:00
fe08d51d78 MS MErge 2022-03-29 15:53:42 +02:00
2a28e32c7a Release 2.5.4 2022-03-29 15:53:02 +02:00
Jonathan Jenne
9c0337ad4f Version 2.5.4.0 2022-02-28 14:54:38 +01:00
Jonathan Jenne
eeb86a928f Merge branch 'master' of http://dd-vmp07-com04:3000/SchreiberM/GlobalIndexer 2022-02-28 13:03:40 +01:00
Jonathan Jenne
9ce53be9cd Version 2.5.3 2022-02-28 13:03:28 +01:00
8bebf971f7 MS 2022-02-23 15:20:59 +01:00
dedc5e0c28 MS 2022-02-23 15:19:51 +01:00
Jonathan Jenne
ee577064ff Version 2.5.2 2022-02-21 11:23:06 +01:00
Jonathan Jenne
7c91662e20 Fix: checking unnormalized path when checking for profile path 2022-02-21 11:22:45 +01:00
Jonathan Jenne
f9a15191da Version 2.5.1 2022-02-17 12:44:06 +01:00
Jonathan Jenne
9f49fa3900 Version 2.5.0.11 2022-02-16 16:03:06 +01:00
Jonathan Jenne
09f1684d81 clean up files properly 2022-02-16 16:02:59 +01:00
Jonathan Jenne
d036ad00c2 Version 2.5.0.10 2022-02-16 15:28:52 +01:00
Jonathan Jenne
9c83f05d1e Improve cleanup up of files 2022-02-16 15:28:28 +01:00
Jonathan Jenne
1e22fd2424 Version 2.5.0.9 2022-02-15 16:29:58 +01:00
Jonathan Jenne
1b7675a1b4 BIG CLEANUP 2022-02-15 16:28:43 +01:00
Jonathan Jenne
8d42a486ed fix selection error on second profile open 2022-02-03 11:37:34 +01:00
Jonathan Jenne
ea41de3623 Fix INBOX handling 2022-02-02 16:38:40 +01:00
Jonathan Jenne
585e6f9cae Version 2.5.0.8 2022-02-02 16:28:11 +01:00
Jonathan Jenne
527b15c01c WIP Rename Inbox files to eml files 2022-02-02 16:25:59 +01:00
Jonathan Jenne
2101f51816 Version 2.5.0.7 2022-02-01 16:29:29 +01:00
Jonathan Jenne
b2f82f3880 fix error for profilepreselection 2022-02-01 15:56:26 +01:00
Jonathan Jenne
9b8a780f06 Skip indexing of empty mail properties 2022-02-01 15:41:26 +01:00
Jonathan Jenne
03c8d5267e Version 2.5.0.6 2022-02-01 15:14:07 +01:00
Jonathan Jenne
c6fbdadd88 try to fix date error 2022-02-01 15:13:35 +01:00
Jonathan Jenne
d70eff842a Reject emoji file names 2022-02-01 14:39:46 +01:00
Jonathan Jenne
934d137651 Version 2.5.0.5 2022-01-25 14:33:29 +01:00
Jonathan Jenne
59380fa964 Try to fix error with profil combobox 2022-01-25 14:29:24 +01:00
Jonathan Jenne
3bf845100e Version 2.5.0.4 2022-01-25 13:24:58 +01:00
Jonathan Jenne
397ecb9269 fix: add missing dev express dlls for v21.2 2022-01-25 13:24:49 +01:00
Jonathan Jenne
a921072556 fix file access error and illegal path error 2022-01-25 13:24:28 +01:00
Jonathan Jenne
a35d77d51f Version 2.5.0.2 2022-01-19 14:35:55 +01:00
Jonathan Jenne
7b6c2f4117 Update to DevExpress 21.2 2022-01-19 14:35:32 +01:00
Jonathan Jenne
ea3f898172 Replace Profile Combobox with SearchLookupEdit 2022-01-19 14:33:16 +01:00
Jonathan Jenne
8227971743 Version 2.5.0.1 2021-09-23 12:13:10 +02:00
Jonathan Jenne
60ff81b19d add changelog 2021-09-23 12:11:10 +02:00
Jonathan Jenne
fccc192879 general clean up in Class Init 2021-09-23 12:11:02 +02:00
Jonathan Jenne
e81f2f0878 Remove ClassLogger and replace with Logging Module 2021-09-23 12:10:47 +02:00
Jonathan Jenne
27294faa13 Remove class helper and replace with Language Module 2021-09-23 12:10:02 +02:00
Jonathan Jenne
d31ba427e2 Remove ClassFormFunctions, switch to Database Module for getting connection string from connection id 2021-09-23 12:08:53 +02:00
Jonathan Jenne
66039f22d8 add some constants for index types 2021-09-23 12:06:24 +02:00
Jonathan Jenne
59d6d26dce Switch License Module, Move SnapToDesktopBorder to Window Module 2021-09-23 11:23:01 +02:00
Jonathan Jenne
7e28e072df Remove ClassDatabase, Replace with Database.MSSQL Module 2021-09-22 16:33:24 +02:00
Jonathan Jenne
01e0a9dcf8 Version 2.5.0.0 2021-09-22 13:50:43 +02:00
Jonathan Jenne
a97c3b8f41 Fix profile changing when refreshing, fix crash when clicking on "new x" twice in a row 2021-09-22 13:50:08 +02:00
Jonathan Jenne
9c0c31e141 Clean filename for temp files, centralize windream basepath 2021-09-21 16:36:34 +02:00
Jonathan Jenne
ab2a0134f7 Version 2.4.2.8 2021-08-23 15:23:19 +02:00
Jonathan Jenne
3fa9e8b75e fix jumbled up indexnames in WriteIndex2File 2021-08-23 15:21:47 +02:00
Jonathan Jenne
cff6c289bb Version 2.4.2.7 2021-08-23 15:06:52 +02:00
Jonathan Jenne
7a60728a27 support eml in write_indizes, fix indexing of attachments 2021-08-23 15:06:33 +02:00
Jonathan Jenne
f23a5a3ec1 Version 2.4.2.6 2021-08-23 14:38:43 +02:00
Jonathan Jenne
133d461395 clear all files after indexing 2021-08-23 14:32:34 +02:00
Jonathan Jenne
77ece6ca83 Clear tempfiles in every case after index button has been clicked 2021-08-23 14:30:27 +02:00
Jonathan Jenne
8c5927530d Delete Email Tempfiles at successful indexing and at program end 2021-08-23 14:29:10 +02:00
Jonathan Jenne
0c850a11fc Version 2.4.2.5 2021-08-23 14:17:24 +02:00
Jonathan Jenne
b4c9b4f0b8 simplify saving attachments 2021-08-23 14:14:06 +02:00
Jonathan Jenne
7f3a73afd3 Version 2.4.2.4 2021-08-23 13:43:59 +02:00
Jonathan Jenne
90eb5d18ec Version 2.4.2.3 2021-08-23 10:59:14 +02:00
Jonathan Jenne
a732db2171 Include Mail.dll in installer 2021-08-23 10:59:07 +02:00
Jonathan Jenne
0704b07de7 Version 2.4.2.2 - Remove Independentsoft Email, Replace with Limilabs.Mail, Remove manual Email Data Exctraction, Support Eml Files 2021-08-23 10:48:08 +02:00
Jonathan Jenne
3da7e37c91 Integration of LimiLabs, Init 2021-08-19 16:31:29 +02:00
Jonathan Jenne
d7fca23ebc Version 2.4.2.1 2021-07-08 13:50:46 +02:00
Jonathan Jenne
917d8b71a0 Add Language Module, use RemoveInvalidCharacters to Remove Emojis from Filenames 2021-07-08 13:50:05 +02:00
Jonathan Jenne
79202e379e Version 2.4.2 2021-07-08 12:52:20 +02:00
Jonathan Jenne
8d82888437 include SEQUENCE into dataset queries for TBDD_INDEX_AUTOM 2021-07-08 12:21:56 +02:00
Jonathan Jenne
d8dc517d11 fix: dont abort when deleting one temp file fails 2021-07-08 12:21:36 +02:00
Jonathan Jenne
f792a17395 Version 2.4.1 2021-07-07 16:50:03 +02:00
Jonathan Jenne
04b4a14ac8 fix getMessageHeaders 2021-07-07 16:49:03 +02:00
Jonathan Jenne
bcbc8890ed Version 2.4.0.12 2021-07-07 16:31:52 +02:00
Jonathan Jenne
0a0147f751 Fix frmIndexFileList message for already processed files 2021-07-07 16:31:27 +02:00
Jonathan Jenne
5622af9f04 Version 2.4.0.11 2021-07-07 16:25:39 +02:00
Jonathan Jenne
bb59b39773 exit file index loop when multiindexing was on 2021-07-07 16:25:27 +02:00
Jonathan Jenne
1a6d55d982 Version 2.4.0.10 2021-07-07 15:41:19 +02:00
Jonathan Jenne
03ab1f00c5 Bugfixes 2.4.0.9 2021-07-07 15:40:44 +02:00
Jonathan Jenne
b32fd431be Version 2.4.0.9 2021-07-07 11:31:50 +02:00
Jonathan Jenne
a581d8c81a Fix Filedrop 2021-07-07 11:31:22 +02:00
Jonathan Jenne
69554d7fbd Version 2.4.0.8 2021-07-07 10:59:49 +02:00
Jonathan Jenne
82be34b28e Duplicate files message box with top most, only hash filename for msg files directly from outlook 2021-07-07 10:59:23 +02:00
Jonathan Jenne
47a66e1220 Version 2.4.0.7 2021-07-06 16:46:39 +02:00
Jonathan Jenne
5c44668002 FileExists in DropTable: generate hash from filename for msg files 2021-07-06 16:45:32 +02:00
Jonathan Jenne
a0c725163a Decide_Filehandle: topmost MessageBox Fix 2021-07-06 16:41:10 +02:00
Jonathan Jenne
2ca5bd4c37 extractFromHeader: Make regex matching case insensitive 2021-07-06 16:40:17 +02:00
Jonathan Jenne
21ea774aa7 Version 2.4.0.6 2021-07-05 13:43:06 +02:00
Jonathan Jenne
d7775c72b8 fix translation for frmIndexFileList 2021-07-05 13:42:56 +02:00
Jonathan Jenne
c759ce19a5 Handle error while creating checksum 2021-07-05 13:31:41 +02:00
Jonathan Jenne
748c965d48 set default value of 0 for sequence for auto indicies 2021-07-02 16:30:26 +02:00
Jonathan Jenne
a3b2c075a9 Version 2.4.0.5 2021-07-02 11:43:47 +02:00
Jonathan Jenne
fcfed7e234 Email Indexing: Fix hover colors 2021-07-02 11:43:33 +02:00
Jonathan Jenne
c145111e5c Improve Logging, Fix Email Indexing 2021-07-02 11:22:50 +02:00
Jonathan Jenne
4f6e7ef049 Version 2.4.0.4 2021-07-02 10:35:14 +02:00
Jonathan Jenne
66407cdf99 Improve Logging and Messages for Email Indexing 2021-07-02 10:34:54 +02:00
Jonathan Jenne
8ccb4693da Version 2.4.0.3 2021-07-01 16:48:08 +02:00
Jonathan Jenne
4643f40b26 Administation: Ask to save when changes were made 2021-06-28 13:13:27 +02:00
Jonathan Jenne
518e0369f3 Finish Revamp of frmIndexFileList 2021-06-28 11:26:04 +02:00
Jonathan Jenne
04e5170312 Email Indexing, Check Windream before profile select 2021-06-25 16:53:47 +02:00
Jonathan Jenne
b5d8317d71 Version 2.4.0.2 2021-06-10 15:02:03 +02:00
Jonathan Jenne
5027cbf400 Fix LogErrorsOnly Checkbox 2021-06-10 14:59:11 +02:00
Jonathan Jenne
119e450c52 Add active Column for Profiles 2021-06-10 14:58:44 +02:00
Jonathan Jenne
5e4205ffe2 Version 2.4.0.1 2021-06-09 16:14:17 +02:00
Jonathan Jenne
86bdb0c545 Add Sequence Field, dont delete source files on error 2021-06-09 16:13:14 +02:00
Jonathan Jenne
d96469941b Version 2.4.0 2021-05-12 13:03:04 +02:00
Jonathan Jenne
6ca755de12 Version 2.3.9.17 2021-05-10 11:36:12 +02:00
Jonathan Jenne
763e45ef33 clean up variables 2021-05-10 11:35:23 +02:00
Jonathan Jenne
6e29c9f04b Version: 2.3.9.16 2021-05-07 16:22:56 +02:00
Jonathan Jenne
dfa0f58bc3 Version 2.3.9.15 2021-05-04 14:18:27 +02:00
Jonathan Jenne
e029c20ae9 Customize Msgbox title, handle minDate when file not found, show filename in msgbox 2021-05-04 14:06:08 +02:00
Jonathan Jenne
580597569d Version 2.3.9.14 2021-05-04 12:23:15 +02:00
Jonathan Jenne
d771895b43 Show Date in index confirmation, add new hash logic to all paths, fix hash empty when using folder watch #GI-12 2021-05-04 12:22:38 +02:00
Jonathan Jenne
0692d4e295 Version 2.3.9.12 2021-05-03 16:11:07 +02:00
Jonathan Jenne
f39b79e13c Check dropped files by hash instead of filename #GI-12 2021-05-03 16:04:50 +02:00
Jonathan Jenne
7a15ef9895 Version: 2.3.9.11 2021-04-30 11:56:47 +02:00
Jonathan Jenne
d5c6c17303 Handle error when restarting and frmIndex was open 2021-04-30 11:56:03 +02:00
Jonathan Jenne
c86402f389 Version 2.3.9.10 2021-04-29 12:33:25 +02:00
Jonathan Jenne
2a571a91ab Add Lookup Grid Localization 2021-04-29 12:33:21 +02:00
Jonathan Jenne
ccf8236d9f Version 2.3.9.9 2021-04-22 15:26:15 +02:00
Jonathan Jenne
01c6df6100 Turn on DPI Awareness mode 2021-04-22 15:25:48 +02:00
Jonathan Jenne
3ce46b2884 Version 2.3.9.8 2021-04-21 14:35:44 +02:00
Jonathan Jenne
114e459577 Fix Scaling Factor calculation 2021-04-21 14:35:33 +02:00
Jonathan Jenne
efc5ca8962 Version 2.3.9.7 2021-04-12 16:57:40 +02:00
Jonathan Jenne
9705922330 PrepareDependingControl: Check for depending controls only in the current profile 2021-04-12 16:57:24 +02:00
Jonathan Jenne
80654f97d6 Version 2.3.9.6 2021-04-09 16:38:52 +02:00
Jonathan Jenne
0f9ad5659b Fix Automatic Profile by Regex 2021-04-09 16:38:02 +02:00
Jonathan Jenne
a8531bc454 Version 2.3.9.5 2021-04-07 16:29:08 +02:00
Jonathan Jenne
645ca1b893 Improve error message for outlook error 2021-04-07 16:28:44 +02:00
Jonathan Jenne
37e61b91f0 Version 2.3.9.4 2021-04-07 13:51:12 +02:00
Jonathan Jenne
58c3e50c7f Version 2.3.9.3 2021-04-07 12:30:20 +02:00
Jonathan Jenne
f095914353 Add DPI Scaling to frmIndex, more logging in ClassFileDrop 2021-04-06 17:11:25 +02:00
Jonathan Jenne
03159797ab Version 2.3.9.2 2021-03-30 12:43:48 +02:00
Jonathan Jenne
2a3a30c4c6 Version 2.3.9.1 2021-03-26 16:44:53 +01:00
Jonathan Jenne
30a44aa6ca fix installer 2021-03-22 16:39:25 +01:00
Jonathan Jenne
aeee0d4077 Version 2.3.9 2021-03-22 16:17:06 +01:00
Jonathan Jenne
271d38bd05 use LookupControl3, fix double profile items in combobox, fix crashes 2021-03-22 16:13:49 +01:00
f53f83e403 Merge branch 'master' of http://dd-vmp07-com04:3000/SchreiberM/GlobalIndexer 2021-03-18 15:08:25 +01:00
71642ddf92 MS 2021-03-18 15:08:18 +01:00
Jonathan Jenne
d1efc91b45 DigitalData.GUIs.Globix added 2021-03-18 13:19:47 +01:00
65a7aed759 MS 2021-03-05 13:09:20 +01:00
Jonathan Jenne
25e56fe80f Version 2.3.8.0 2021-03-03 16:02:03 +01:00
Jonathan Jenne
2b88a16e53 fix: make CURRENT_NEWFILENAME for email indexing 2021-03-03 15:33:38 +01:00
Jonathan Jenne
ce6c55b448 Version 2.3.7 2021-03-02 10:32:50 +01:00
Jonathan Jenne
86a7a81e03 Version 2.3.6 2021-03-01 16:01:39 +01:00
Jonathan Jenne
de1ec47ab3 fix icon again 2021-03-01 16:01:09 +01:00
Jonathan Jenne
939b46acd7 Version 2.3.5 2021-03-01 15:34:27 +01:00
Jonathan Jenne
b6647ec66c include resources for lookupgrid 2021-03-01 15:33:54 +01:00
Jonathan Jenne
9b1a549f4e Version 2.3.4 2021-03-01 13:36:54 +01:00
Jonathan Jenne
c2426efd32 small frmStart changes 2021-03-01 13:36:14 +01:00
Jonathan Jenne
50204e6ad0 Version 2.3.3.0 2021-03-01 12:37:41 +01:00
Jonathan Jenne
d831fbc50d Fix Wix Path finally :D, Translate frmIndex to en 2021-03-01 12:33:41 +01:00
Jonathan Jenne
6042b7321d Version 2.3.2.0 2021-01-28 12:37:18 +01:00
Jonathan Jenne
17bdcb3af7 Fix duplicate profiles showing in index window 2021-01-28 12:36:50 +01:00
Jonathan Jenne
14b1347128 Version 2.3.1.0 2021-01-27 17:10:22 +01:00
Jonathan Jenne
fe6d75cbe4 Merge branch 'master' of http://dd-vmp07-com04:3000/SchreiberM/GlobalIndexer 2021-01-27 17:09:50 +01:00
Jonathan Jenne
6c58d91973 distinct at profile list 2021-01-27 17:09:11 +01:00
bcade3f031 Merge branch 'master' of http://dd-vmp07-com04:3000/SchreiberM/GlobalIndexer 2020-12-17 16:16:41 +01:00
059dd761a2 MS 2020-12-17 16:16:36 +01:00
Jonathan Jenne
fd4d35195c Version 2.3.0.3 2020-12-14 14:41:43 +01:00
Jonathan Jenne
49d2c70c33 fix replacing of user values in automatic index sql 2020-12-14 14:41:20 +01:00
Jonathan Jenne
5f17b614fb Version 2.3.0.2 2020-12-14 10:24:18 +01:00
Jonathan Jenne
b4c1524939 Replace user value placeholders for auto indicies 2020-12-14 10:23:52 +01:00
Jonathan Jenne
0728bb14bc Version 2.3.0.1 2020-12-11 13:12:58 +01:00
Jonathan Jenne
b02d87c2a4 Fix Icon in frm Start, Resources 2020-12-11 13:12:49 +01:00
Jonathan Jenne
158c043675 Reload Indicies when ObjectType changes 2020-12-11 11:43:34 +01:00
Jonathan Jenne
6ed90fa6c1 Version 2.3.0.0 2020-12-08 10:40:41 +01:00
Jonathan Jenne
706c15929b replace user/internal values for integer and varchar indexes 2020-12-07 12:15:10 +01:00
Jonathan Jenne
939b50e0c5 remove hotkey module 2020-12-07 11:17:55 +01:00
Jonathan Jenne
306566f374 Version 2.2.0.1 2020-07-30 10:48:23 +02:00
Jonathan Jenne
b8cc39a7c7 clean up getplaceholdervalue 2020-07-30 10:29:33 +02:00
Jonathan Jenne
33fa89bae9 rename NULL placeholder to $Null 2020-07-30 10:29:22 +02:00
Jonathan Jenne
d4852043ad use default values for datepicker 2020-07-28 16:26:37 +02:00
Jonathan Jenne
c078380139 Version 2.2.0.0 2020-07-28 13:38:33 +02:00
Jonathan Jenne
f393ba8886 fix resource folders, fix frmStart icon \o/ 2020-07-28 13:37:44 +02:00
Jonathan Jenne
d9fab01ce7 fix sql not being loaded by cleverly hiding the corresponding textboxes 2020-07-28 13:29:33 +02:00
Jonathan Jenne
0d0447d19a fix getplaceholdervalue 2020-07-28 13:28:59 +02:00
Jonathan Jenne
5e466cd802 improve handling of null as default value 2020-07-28 13:27:49 +02:00
Jonathan Jenne
071d65212c attempts to correctly show frmStart icon 2020-07-28 13:27:29 +02:00
Jonathan Jenne
cfa4927388 Version 2.1.0.19 2020-07-09 12:01:56 +02:00
Jonathan Jenne
b5708b851b Fix SQL Command being overwritten for auto indexes, allow placeholders for manual indexes default value 2020-07-09 12:01:10 +02:00
Jonathan Jenne
1dc95d862f Version 2.1.0.18 2020-07-07 10:59:10 +02:00
Jonathan Jenne
7abf9c99c7 fix big window being a fucking dick 2020-07-07 10:43:21 +02:00
Jonathan Jenne
65f37d16e0 Version 2.1.0.17 2020-07-03 11:56:04 +02:00
Jonathan Jenne
ebf08aa141 fix sql not being saved on new man index 2020-07-03 11:55:29 +02:00
Jonathan Jenne
8d2e5be621 Version 2.1.0.16 2020-06-08 15:36:07 +02:00
Jonathan Jenne
782093fd79 support NULL for date index defaultvalue 2020-06-08 15:34:27 +02:00
Jonathan Jenne
db96da42ed Version 2.1.0.15 2020-06-08 13:48:02 +02:00
Jonathan Jenne
0a1717220f rename default folder watch folder to GlobalIndexer, fix folder watch not working after first indexing 2020-06-08 13:47:32 +02:00
Jonathan Jenne
cc3ceed9e3 Version 2.1.0.14 2020-06-08 11:36:17 +02:00
Jonathan Jenne
4c7e6461d6 hide delete origin when message is dropped from outlook 2020-06-08 11:35:19 +02:00
Jonathan Jenne
65295dfe4c dont hide basic config ribbon page in admin 2020-06-08 10:41:57 +02:00
Jonathan Jenne
a140e7bc31 handle droptype FW_OUTLOOK_MESSAGE 2020-06-08 10:41:36 +02:00
Jonathan Jenne
b87ed6b9f3 Version 2.1.0.13 2020-06-05 15:17:02 +02:00
Jonathan Jenne
390e3e8e01 fix typos 2020-06-05 15:16:13 +02:00
Jonathan Jenne
43c94a84cb fix profile management icon, add sub tab icons 2020-06-05 13:46:17 +02:00
Jonathan Jenne
c5d118151c Version 2.1.0.12 2020-06-05 13:07:42 +02:00
Jonathan Jenne
c76c3d0deb dont show frmIndexFileList when only files from filesystem were dropped 2020-06-05 13:07:22 +02:00
Jonathan Jenne
539c8cd083 fix checking for deleting source file when windream is disabled 2020-06-05 12:42:25 +02:00
Jonathan Jenne
bef22dece2 add local logger for frmIndex, fix relative path when deleting files 2020-06-05 11:43:30 +02:00
Jonathan Jenne
9741449fc2 Version 2.1.0.11 2020-06-04 17:28:49 +02:00
Jonathan Jenne
78af7ff942 Version 2.1.0.10 2020-06-04 17:00:05 +02:00
Jonathan Jenne
dff3272b31 fix files not deleting when folderwatch is active 2020-06-04 16:58:49 +02:00
Jonathan Jenne
1bd5b7446b remove duplicate profile grid 2020-06-04 15:40:31 +02:00
Jonathan Jenne
b0aac98017 Version 2.1.0.9 2020-06-02 11:08:07 +02:00
Jonathan Jenne
5c25967e2e Include de resources in installer 2020-06-02 11:07:32 +02:00
Jonathan Jenne
cb7c4c285b Marke 2108 2020-05-29 16:01:54 +02:00
Jonathan Jenne
07ec954d55 Version 2.1.0.8 2020-05-29 15:57:52 +02:00
Jonathan Jenne
33cabaf35d fix trailing separator for optional index 2020-05-29 15:56:59 +02:00
Jonathan Jenne
bf45402819 Version 2.1.0.7 2020-05-29 15:19:37 +02:00
Jonathan Jenne
8c11a8170f fix admin layout, added who,etc textboxes, postprocessing inputs 2020-05-29 15:14:11 +02:00
Jonathan Jenne
71c05a0fba Version 2.1.0.6 2020-05-29 10:57:52 +02:00
Jonathan Jenne
80c143c160 remove obsolete code in name_generieren 2020-05-29 10:57:18 +02:00
Jonathan Jenne
6d0810d285 Version 2.1.0.5 2020-05-27 10:47:55 +02:00
Jonathan Jenne
b145508a3d fix: class patterns using textbox instead of textedit 2020-05-27 10:45:56 +02:00
Jonathan Jenne
575e7aed84 Version 2.1.0.4 2020-05-25 13:33:29 +02:00
Jonathan Jenne
1be142bb97 what? 2020-05-25 13:33:05 +02:00
Jonathan Jenne
cc8c3527c1 Version 2.1.0.3 2020-05-25 12:02:36 +02:00
Jonathan Jenne
9e27a8e8eb add missing validation for datetime picker, generalize validation massages, fix file deletion check 2020-05-25 12:01:40 +02:00
Jonathan Jenne
d4b4c2078b fix focus state for datepicker/lookup control 2020-05-25 12:00:01 +02:00
Jonathan Jenne
be834fae84 fix 2020-05-20 16:14:43 +02:00
Jonathan Jenne
79c8528cec Version 2.1.0.2 2020-05-20 16:12:45 +02:00
Jonathan Jenne
d3b7934988 actually respect sql suggestion setting for lookupgrid 2020-05-20 16:12:20 +02:00
Jonathan Jenne
d1950b0949 Version 2.1.0.1 2020-05-20 14:00:03 +02:00
Jonathan Jenne
fab1772bdd Use DateEdit control, add TopMost for email attachment indexing, use fixed lookupgrid, email indexing objecttype readonly 2020-05-20 13:59:35 +02:00
Jonathan Jenne
4c4b8429a1 Version 2.1.0.0 2020-05-19 15:53:29 +02:00
Jonathan Jenne
485e052213 only allow integers in INTEGER field 2020-05-19 15:45:56 +02:00
Jonathan Jenne
8313a21206 Version 2.0.0.38 2020-05-19 14:18:04 +02:00
Jonathan Jenne
6ed0d8086b fix email indexing form title, icon order in ribbon, and missing objecttypes and indicies 2020-05-19 14:13:56 +02:00
Jonathan Jenne
fa14812431 Version 2.0.0.37 2020-05-19 13:15:05 +02:00
Jonathan Jenne
7d3b393c70 Email Indexing in own window 2020-05-19 13:14:26 +02:00
Jonathan Jenne
61b32797fa Version 2.0.0.36 2020-05-19 11:43:21 +02:00
Jonathan Jenne
c9ff612595 fix them checkboxes 2020-05-19 11:40:14 +02:00
Jonathan Jenne
985ef68154 Version 2.0.0.35 2020-05-19 11:29:03 +02:00
Jonathan Jenne
4646fb710a check for successful export and existence of new file before deleting 2020-05-19 11:27:50 +02:00
Jonathan Jenne
14384b85c6 fix SetDependingControlResult. allow new inputs for lookupgrid when EITHER multiselect or sql is checked 2020-05-19 11:06:08 +02:00
Jonathan Jenne
c38a96abc9 version 2.0.0.34 2020-05-18 16:15:12 +02:00
Jonathan Jenne
c754da5584 make doctype_id unique for regex_doctype 2020-05-18 16:14:53 +02:00
Jonathan Jenne
09d499e546 Version 2.0.0.34 2020-05-18 14:47:12 +02:00
Jonathan Jenne
7dfa88ef0d add textbox mask for integer indexes 2020-05-18 11:26:25 +02:00
Jonathan Jenne
a00cc1a39e fix: depending controls in administration (multiselect, sql editor), save topmost to config 2020-05-18 11:12:22 +02:00
Jonathan Jenne
98663d3c4a Version 2.0.0.33 2020-05-15 16:13:35 +02:00
Jonathan Jenne
75d54ce33c fix: make the start form topmost again! yay 2020-05-15 16:08:31 +02:00
Jonathan Jenne
5b2e562ded Version 2.0.0.32 2020-05-15 15:40:09 +02:00
Jonathan Jenne
fe21ae8409 fix name generation for optional indexes 2020-05-15 15:39:43 +02:00
Jonathan Jenne
6983e4dac3 Version 2.0.0.31 2020-05-15 14:18:12 +02:00
Jonathan Jenne
3aa882b490 always use \\windream\objects for moving files 2020-05-15 14:17:48 +02:00
Jonathan Jenne
4d37be19b2 Version 2.0.0.30 2020-05-11 11:40:48 +02:00
Jonathan Jenne
7f329d9f0d improve man index settings 2020-05-11 11:38:35 +02:00
Jonathan Jenne
349671c2d3 cancel indexing when directory cannot be created 2020-05-11 11:31:03 +02:00
Jonathan Jenne
f2468be109 fix login error because of missing client id, fix pdf file not deleted 2020-05-07 11:43:39 +02:00
Jonathan Jenne
e621f63bb4 fix deleteoriginalfile not being saved 2020-05-05 15:56:09 +02:00
Jonathan Jenne
c0ea7c42c7 Version 2.0.0.29 2020-04-30 15:33:42 +02:00
Jonathan Jenne
56645fc3e8 Merge branch 'master' of http://dd-vmp07-com04:3000/SchreiberM/GlobalIndexer 2020-04-30 15:33:06 +02:00
Jonathan Jenne
3b81ecf6c8 Version 2.0.0.29 2020-04-30 15:31:58 +02:00
Jonathan Jenne
70694273f2 add distinct to regex doctype query, make on top button enabled by default 2020-04-30 15:31:19 +02:00
Jonathan Jenne
e5d3d37005 dont close viewer on missing input, show lookup control when multiselect is true 2020-04-30 14:43:13 +02:00
Jonathan Jenne
d8bb4e3caa allow backslash in dynamic folderpaths 2020-04-30 14:24:51 +02:00
Jonathan Jenne
491d76c842 allow dots in patterns 2020-04-30 14:23:16 +02:00
d899a65ed4 Merge branch 'master' of http://dd-vmp07-com04:3000/SchreiberM/GlobalIndexer 2020-04-30 08:49:21 +02:00
5e5382b2f4 MS 2020-04-30 08:49:02 +02:00
Jonathan Jenne
334dfc8037 Version 2.0.0.27 2020-04-29 12:10:34 +02:00
Jonathan Jenne
c03a75254b link multiselect to index type (is vector) 2020-04-29 12:10:05 +02:00
Jonathan Jenne
1404c42cda write droptype = empty to debug 2020-04-29 11:46:21 +02:00
Jonathan Jenne
bc6459e70a raise max order value to 999 2020-04-29 11:45:43 +02:00
Jonathan Jenne
358071d35c Version 2.0.0.26 2020-04-28 13:42:56 +02:00
Jonathan Jenne
94fa4c15a3 frmAdministration: Fix Index Loading (again), fix user/group assignments not loading when only 1 profile exists 2020-04-28 13:41:57 +02:00
Jonathan Jenne
59a44ae6fc fix modules.windream filename 2020-04-27 16:28:00 +02:00
Jonathan Jenne
f6889b3260 Version 2.0.0.25 2020-04-27 16:25:34 +02:00
Jonathan Jenne
53b069c46a fix double indexing for auto indexes 2020-04-27 16:24:59 +02:00
011c78c8aa MS 2020-04-27 15:10:00 +02:00
b2096b5fe7 MS WIndream Init 2020-04-27 14:17:05 +02:00
59afa60f7b MS 2020-04-27 10:46:10 +02:00
2c80dc196c MS 2020-04-27 10:40:02 +02:00
bc4567a628 MS IDB und WINDREAM 2020-04-27 10:35:43 +02:00
Jonathan Jenne
781a4c66db Version 2.0.0.23 2020-04-22 14:30:45 +02:00
Jonathan Jenne
0ef9397f73 really fix bool conversion 2020-04-22 14:30:06 +02:00
Jonathan Jenne
07a5c2748b Version 2.0.0.22 2020-04-22 13:57:10 +02:00
Jonathan Jenne
11f5af7e89 fix boolean conversion 2020-04-22 13:54:52 +02:00
Jonathan Jenne
7c3ae86d52 Version 2.0.0.21 2020-04-22 13:35:15 +02:00
Jonathan Jenne
e8f937e527 frmAdministration: Fix Index Loading 2020-04-22 13:34:28 +02:00
Jonathan Jenne
3235cca192 ClassWindream: Add Support for Vector Boolean 2020-04-22 13:34:12 +02:00
Jonathan Jenne
1768ce0add Version 2.0.0.20 2020-04-21 13:54:30 +02:00
Jonathan Jenne
437932c5b5 fix user/group loading 2020-04-21 13:50:33 +02:00
Jonathan Jenne
ef1f887489 Version 2.0.0.19 2020-04-21 12:24:47 +02:00
Jonathan Jenne
1e1067e29f Marlon: LASS DEN BUTTON BITTE DRIN 2020-04-21 12:24:22 +02:00
Jonathan Jenne
3fe20ec9da Merge branch 'master' of http://dd-vmp07-com04:3000/SchreiberM/GlobalIndexer 2020-04-21 12:10:11 +02:00
Jonathan Jenne
09bef5bbbd Version 2.0.0.18 2020-04-21 12:09:33 +02:00
Jonathan Jenne
6ba7bc27c1 load groups/users when only one profile exists, disable extra tabs when no profile exists 2020-04-21 12:09:06 +02:00
a2a2ef244f Merge 2020-04-16 15:01:15 +02:00
Jonathan Jenne
3f084d17a1 account for other windream drive letters than W 2020-04-06 13:59:08 +02:00
Jonathan Jenne
89c6ddaeed Version 2.0.0.17 2020-04-06 11:17:14 +02:00
Jonathan Jenne
8d53fdafae fix status messages, fix changed_who being set on insert, fix added_when being empty for postprocessing 2020-04-06 11:13:49 +02:00
Jonathan Jenne
322c3b0efd Load Auto Profile Regex on frmIndex Load 2020-04-06 10:32:49 +02:00
Jonathan Jenne
14c313af10 Version 2.0.0.16 2020-04-03 13:15:35 +02:00
Jonathan Jenne
88bd76c03a almost fix added_when changed_when problemes 2020-04-03 13:14:55 +02:00
Jonathan Jenne
650ebaaa7b Version 2.0.0.15 2020-04-02 13:22:11 +02:00
Jonathan Jenne
29b29059a9 remove scrollbar in frmIndex, fix multiple saved values in lookup control, remove version tag button, fix final messagebox filename, allow null for wd index, delete skipped files 2020-04-02 13:21:38 +02:00
Jonathan Jenne
b2c7299d2f Version 2.0.0.14 2020-04-01 16:19:42 +02:00
Jonathan Jenne
941be7adf4 rename duplizieren -> profil kopieren 2020-04-01 16:19:26 +02:00
Jonathan Jenne
d3c293ca29 remove wrapping values in lookup control 2020-04-01 15:59:12 +02:00
Jonathan Jenne
549880bd3b Version 2.0.0.13 2020-04-01 14:16:24 +02:00
Jonathan Jenne
92757c55d4 fix autoindexing not replacing new placeholders, fix skipping, fix damaged datatable, correct default value of nameconvention 2020-04-01 13:49:55 +02:00
Jonathan Jenne
825cc03f66 Version 2.0.0.12 2020-03-25 10:50:53 +01:00
Jonathan Jenne
2da647812a fix flackering lol, add msgbox for missing doctype-module assignment, check for missing guid 2020-03-25 10:49:58 +01:00
Jonathan Jenne
af4a126720 Version 2.0.0.11 2020-03-24 15:31:12 +01:00
Jonathan Jenne
f6a6626c37 fix handling embedded msg files without extension (looking at u, outlook) 2020-03-24 14:09:41 +01:00
Jonathan Jenne
0e737888f1 fix delete after indexing, fix unexpected error in check_dropped_files 2020-03-24 13:17:59 +01:00
Jonathan Jenne
ca0e115b4b Version 2.0.0.10 2020-03-20 14:36:50 +01:00
Jonathan Jenne
526157b016 prevent dropping on lnk files 2020-03-20 14:32:39 +01:00
Jonathan Jenne
13da51251d Version 2.0.0.9 2020-03-20 11:16:12 +01:00
Jonathan Jenne
003d34cf62 Don't allow null for manual index: windream index 2020-03-20 10:59:10 +01:00
Jonathan Jenne
b510c0c95d use new logger 2020-03-20 10:32:51 +01:00
Jonathan Jenne
6cb96dce52 clean up 2020-03-20 10:32:40 +01:00
Jonathan Jenne
a8e6d2acd9 Add correct duplicate handling for indexed files 2020-03-20 10:32:34 +01:00
ddb0cf7ff3 merge 2020-02-27 11:07:26 +01:00
348d50a578 MS 2020-02-27 11:05:00 +01:00
165 changed files with 20028 additions and 37762 deletions

4
.gitignore vendored
View File

@ -154,5 +154,5 @@ $RECYCLE.BIN/
# Mac desktop service store files
.DS_Store
/.vs/Global_Indexer/v15/Server/sqlite3
/.vs/Global_Indexer/v16/Server/sqlite3
.vs

View File

@ -1,3 +0,0 @@
{
"CurrentProjectSetting": null
}

View File

@ -1,7 +0,0 @@
{
"ExpandedNodes": [
""
],
"SelectedNode": "\\Global_Indexer.sln",
"PreviewInSolutionExplorer": false
}

Binary file not shown.

View File

@ -1,14 +1,14 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29728.190
# Visual Studio Version 17
VisualStudioVersion = 17.5.33516.290
MinimumVisualStudioVersion = 10.0.40219.1
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Global_Indexer", "Global_Indexer\Global_Indexer.vbproj", "{7474B1D2-49A4-4D12-B544-C8674D3F7231}"
EndProject
Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "SetupWix", "SetupWix\SetupWix.wixproj", "{5BF6646D-6F46-45E5-8806-8783F030F311}"
EndProject
Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "SetupVS19", "SetupVS19\SetupVS19.wixproj", "{54DBCFAE-14B1-4811-94AF-B59FFF61EA73}"
EndProject
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Global_Indexer.Test", "Global_Indexer.Test\Global_Indexer.Test.vbproj", "{8BFA2C72-1A8A-4B80-9666-483CF1CD21B1}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
CD_ROM|Any CPU = CD_ROM|Any CPU
@ -53,31 +53,6 @@ Global
{7474B1D2-49A4-4D12-B544-C8674D3F7231}.SingleImage|Mixed Platforms.ActiveCfg = Debug|Any CPU
{7474B1D2-49A4-4D12-B544-C8674D3F7231}.SingleImage|Mixed Platforms.Build.0 = Debug|Any CPU
{7474B1D2-49A4-4D12-B544-C8674D3F7231}.SingleImage|x86.ActiveCfg = Debug|Any CPU
{5BF6646D-6F46-45E5-8806-8783F030F311}.CD_ROM|Any CPU.ActiveCfg = Release|x86
{5BF6646D-6F46-45E5-8806-8783F030F311}.CD_ROM|Mixed Platforms.ActiveCfg = Release|x86
{5BF6646D-6F46-45E5-8806-8783F030F311}.CD_ROM|Mixed Platforms.Build.0 = Release|x86
{5BF6646D-6F46-45E5-8806-8783F030F311}.CD_ROM|x86.ActiveCfg = Release|x86
{5BF6646D-6F46-45E5-8806-8783F030F311}.CD_ROM|x86.Build.0 = Release|x86
{5BF6646D-6F46-45E5-8806-8783F030F311}.Debug|Any CPU.ActiveCfg = Debug|x86
{5BF6646D-6F46-45E5-8806-8783F030F311}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
{5BF6646D-6F46-45E5-8806-8783F030F311}.Debug|Mixed Platforms.Build.0 = Debug|x86
{5BF6646D-6F46-45E5-8806-8783F030F311}.Debug|x86.ActiveCfg = Debug|x86
{5BF6646D-6F46-45E5-8806-8783F030F311}.Debug|x86.Build.0 = Debug|x86
{5BF6646D-6F46-45E5-8806-8783F030F311}.DVD-5|Any CPU.ActiveCfg = Debug|x86
{5BF6646D-6F46-45E5-8806-8783F030F311}.DVD-5|Mixed Platforms.ActiveCfg = Debug|x86
{5BF6646D-6F46-45E5-8806-8783F030F311}.DVD-5|Mixed Platforms.Build.0 = Debug|x86
{5BF6646D-6F46-45E5-8806-8783F030F311}.DVD-5|x86.ActiveCfg = Debug|x86
{5BF6646D-6F46-45E5-8806-8783F030F311}.DVD-5|x86.Build.0 = Debug|x86
{5BF6646D-6F46-45E5-8806-8783F030F311}.Release|Any CPU.ActiveCfg = Release|x86
{5BF6646D-6F46-45E5-8806-8783F030F311}.Release|Mixed Platforms.ActiveCfg = Release|x86
{5BF6646D-6F46-45E5-8806-8783F030F311}.Release|Mixed Platforms.Build.0 = Release|x86
{5BF6646D-6F46-45E5-8806-8783F030F311}.Release|x86.ActiveCfg = Release|x86
{5BF6646D-6F46-45E5-8806-8783F030F311}.Release|x86.Build.0 = Release|x86
{5BF6646D-6F46-45E5-8806-8783F030F311}.SingleImage|Any CPU.ActiveCfg = Release|x86
{5BF6646D-6F46-45E5-8806-8783F030F311}.SingleImage|Mixed Platforms.ActiveCfg = Release|x86
{5BF6646D-6F46-45E5-8806-8783F030F311}.SingleImage|Mixed Platforms.Build.0 = Release|x86
{5BF6646D-6F46-45E5-8806-8783F030F311}.SingleImage|x86.ActiveCfg = Release|x86
{5BF6646D-6F46-45E5-8806-8783F030F311}.SingleImage|x86.Build.0 = Release|x86
{54DBCFAE-14B1-4811-94AF-B59FFF61EA73}.CD_ROM|Any CPU.ActiveCfg = Release|x86
{54DBCFAE-14B1-4811-94AF-B59FFF61EA73}.CD_ROM|Any CPU.Build.0 = Release|x86
{54DBCFAE-14B1-4811-94AF-B59FFF61EA73}.CD_ROM|Mixed Platforms.ActiveCfg = Release|x86
@ -106,6 +81,36 @@ Global
{54DBCFAE-14B1-4811-94AF-B59FFF61EA73}.SingleImage|Mixed Platforms.Build.0 = Release|x86
{54DBCFAE-14B1-4811-94AF-B59FFF61EA73}.SingleImage|x86.ActiveCfg = Release|x86
{54DBCFAE-14B1-4811-94AF-B59FFF61EA73}.SingleImage|x86.Build.0 = Release|x86
{8BFA2C72-1A8A-4B80-9666-483CF1CD21B1}.CD_ROM|Any CPU.ActiveCfg = Debug|Any CPU
{8BFA2C72-1A8A-4B80-9666-483CF1CD21B1}.CD_ROM|Any CPU.Build.0 = Debug|Any CPU
{8BFA2C72-1A8A-4B80-9666-483CF1CD21B1}.CD_ROM|Mixed Platforms.ActiveCfg = Debug|Any CPU
{8BFA2C72-1A8A-4B80-9666-483CF1CD21B1}.CD_ROM|Mixed Platforms.Build.0 = Debug|Any CPU
{8BFA2C72-1A8A-4B80-9666-483CF1CD21B1}.CD_ROM|x86.ActiveCfg = Debug|Any CPU
{8BFA2C72-1A8A-4B80-9666-483CF1CD21B1}.CD_ROM|x86.Build.0 = Debug|Any CPU
{8BFA2C72-1A8A-4B80-9666-483CF1CD21B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8BFA2C72-1A8A-4B80-9666-483CF1CD21B1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8BFA2C72-1A8A-4B80-9666-483CF1CD21B1}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{8BFA2C72-1A8A-4B80-9666-483CF1CD21B1}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{8BFA2C72-1A8A-4B80-9666-483CF1CD21B1}.Debug|x86.ActiveCfg = Debug|Any CPU
{8BFA2C72-1A8A-4B80-9666-483CF1CD21B1}.Debug|x86.Build.0 = Debug|Any CPU
{8BFA2C72-1A8A-4B80-9666-483CF1CD21B1}.DVD-5|Any CPU.ActiveCfg = Debug|Any CPU
{8BFA2C72-1A8A-4B80-9666-483CF1CD21B1}.DVD-5|Any CPU.Build.0 = Debug|Any CPU
{8BFA2C72-1A8A-4B80-9666-483CF1CD21B1}.DVD-5|Mixed Platforms.ActiveCfg = Debug|Any CPU
{8BFA2C72-1A8A-4B80-9666-483CF1CD21B1}.DVD-5|Mixed Platforms.Build.0 = Debug|Any CPU
{8BFA2C72-1A8A-4B80-9666-483CF1CD21B1}.DVD-5|x86.ActiveCfg = Debug|Any CPU
{8BFA2C72-1A8A-4B80-9666-483CF1CD21B1}.DVD-5|x86.Build.0 = Debug|Any CPU
{8BFA2C72-1A8A-4B80-9666-483CF1CD21B1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8BFA2C72-1A8A-4B80-9666-483CF1CD21B1}.Release|Any CPU.Build.0 = Release|Any CPU
{8BFA2C72-1A8A-4B80-9666-483CF1CD21B1}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{8BFA2C72-1A8A-4B80-9666-483CF1CD21B1}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{8BFA2C72-1A8A-4B80-9666-483CF1CD21B1}.Release|x86.ActiveCfg = Release|Any CPU
{8BFA2C72-1A8A-4B80-9666-483CF1CD21B1}.Release|x86.Build.0 = Release|Any CPU
{8BFA2C72-1A8A-4B80-9666-483CF1CD21B1}.SingleImage|Any CPU.ActiveCfg = Debug|Any CPU
{8BFA2C72-1A8A-4B80-9666-483CF1CD21B1}.SingleImage|Any CPU.Build.0 = Debug|Any CPU
{8BFA2C72-1A8A-4B80-9666-483CF1CD21B1}.SingleImage|Mixed Platforms.ActiveCfg = Debug|Any CPU
{8BFA2C72-1A8A-4B80-9666-483CF1CD21B1}.SingleImage|Mixed Platforms.Build.0 = Debug|Any CPU
{8BFA2C72-1A8A-4B80-9666-483CF1CD21B1}.SingleImage|x86.ActiveCfg = Debug|Any CPU
{8BFA2C72-1A8A-4B80-9666-483CF1CD21B1}.SingleImage|x86.Build.0 = Debug|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@ -0,0 +1,112 @@
Imports System.Data
Imports Microsoft.VisualStudio.TestTools.UnitTesting
Imports FluentAssertions
Imports DigitalData.Modules.Logging
Namespace Global_Indexer.Test
<TestClass>
Public Class ClassPostprocessingTest
Private LogConfig As LogConfig
Private PostProcessing As ClassPostprocessing
<TestInitialize()>
Sub Init()
LogConfig = New LogConfig(LogPath:=LogConfig.PathType.Temp)
PostProcessing = New ClassPostprocessing(LogConfig)
End Sub
<TestMethod>
Sub Get_Nachbearbeitung_Wert_VBSPLIT_INDEX_0()
Dim oTable = GetDataTable(ClassPostprocessing.VBSPLIT, ",", "0")
Dim oString = "1,2,3,4"
Dim oExpected = "1"
Dim rString = PostProcessing.Get_Nachbearbeitung_Wert(oString, oTable)
rString.Should.Be(oExpected)
End Sub
<TestMethod>
Sub Get_Nachbearbeitung_Wert_VBSPLIT_INDEX_3()
Dim oTable = GetDataTable(ClassPostprocessing.VBSPLIT, ",", "3")
Dim oString = "1,2,3,4"
Dim oExpected = "4"
Dim rString = PostProcessing.Get_Nachbearbeitung_Wert(oString, oTable)
rString.Should.Be(oExpected)
End Sub
<TestMethod>
Sub Get_Nachbearbeitung_Wert_VBSPLIT_INDEX_5()
Dim oTable = GetDataTable(ClassPostprocessing.VBSPLIT, ",", "5")
Dim oString = "1,2,3,4"
Dim oExpected = "1,2,3,4"
Dim rString = PostProcessing.Get_Nachbearbeitung_Wert(oString, oTable)
rString.Should.Be(oExpected)
End Sub
<TestMethod>
Sub Get_Nachbearbeitung_Wert_VBREPLACE()
Dim oTable = GetDataTable(ClassPostprocessing.VBREPLACE, ",", "_")
Dim oString = "1,2,3,4"
Dim oExpected = "1_2_3_4"
Dim rString = PostProcessing.Get_Nachbearbeitung_Wert(oString, oTable)
rString.Should.Be(oExpected)
End Sub
<TestMethod>
Sub Get_Nachbearbeitung_Wert_VBREPLACE_NOT_EXISTING()
Dim oTable = GetDataTable(ClassPostprocessing.VBREPLACE, ";", "_")
Dim oString = "1,2,3,4"
Dim oExpected = "1,2,3,4"
Dim rString = PostProcessing.Get_Nachbearbeitung_Wert(oString, oTable)
rString.Should.Be(oExpected)
End Sub
<TestMethod>
Sub Get_Nachbearbeitung_Wert_VBREPLACE_EMPTY_STRING()
Dim oTable = GetDataTable(ClassPostprocessing.VBREPLACE, "", "_")
Dim oString = "1,2,3,4"
Dim oExpected = "1,2,3,4"
Dim rString = PostProcessing.Get_Nachbearbeitung_Wert(oString, oTable)
rString.Should.Be(oExpected)
End Sub
<TestMethod>
Sub Get_Nachbearbeitung_Wert_VBREPLACE_NOTHING1()
Dim oTable = GetDataTable(ClassPostprocessing.VBREPLACE, ",", Nothing)
Dim oString = "1,2,3,4"
Dim oExpected = "1,2,3,4"
Dim rString = PostProcessing.Get_Nachbearbeitung_Wert(oString, oTable)
rString.Should.Be(oExpected)
End Sub
<TestMethod>
Sub Get_Nachbearbeitung_Wert_VBREPLACE_NOTHING2()
Dim oTable = GetDataTable(ClassPostprocessing.VBREPLACE, Nothing, "_")
Dim oString = "1,2,3,4"
Dim oExpected = "1,2,3,4"
Dim rString = PostProcessing.Get_Nachbearbeitung_Wert(oString, oTable)
rString.Should.Be(oExpected)
End Sub
Private Function GetDataTable(pType As String, pText1 As String, Optional pText2 As String = "") As DataTable
Dim oTable As New DataTable()
oTable.Columns.Add("TYPE", GetType(String))
oTable.Columns.Add("TEXT1", GetType(String))
oTable.Columns.Add("TEXT2", GetType(String))
oTable.Rows.Add(pType, pText1, pText2)
oTable.AcceptChanges()
Return oTable
End Function
End Class
End Namespace

View File

@ -0,0 +1,35 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<RootNamespace>Global_Indexer.Test</RootNamespace>
<TargetFramework>net6.0</TargetFramework>
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="FluentAssertions" Version="8.3.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
<PackageReference Include="MSTest.TestAdapter" Version="3.9.2" />
<PackageReference Include="MSTest.TestFramework" Version="3.9.2" />
<PackageReference Include="coverlet.collector" Version="6.0.4">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Global_Indexer\Global_Indexer.vbproj" />
</ItemGroup>
<ItemGroup>
<Reference Include="DigitalData.Modules.Base">
<HintPath>..\..\DDModules\Base\bin\Debug\DigitalData.Modules.Base.dll</HintPath>
</Reference>
<Reference Include="DigitalData.Modules.Logging">
<HintPath>..\..\DDModules\Logging\bin\Debug\DigitalData.Modules.Logging.dll</HintPath>
</Reference>
</ItemGroup>
</Project>

View File

@ -1,13 +1,168 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
<add name="Global_Indexer.My.MySettings.DD_ECMConnectionString"
connectionString="Data Source=SDD-VMP04-SQL17\DD_DEVELOP01;Initial Catalog=DD_ECM_TEST;Persist Security Info=True;User ID=sa;Password=dd"
providerName="System.Data.SqlClient" />
</connectionStrings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1"/>
</startup>
</configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System">
<section name="Global_Indexer.My.MySettings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<section name="DevExpress.LookAndFeel.Design.AppSettings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<applicationSettings>
<Global_Indexer.My.MySettings>
<setting name="GDPICTURE_VERSION" serializeAs="String">
<value>11.2024</value>
</setting>
<setting name="UseAppConfig" serializeAs="String">
<value>False</value>
</setting>
</Global_Indexer.My.MySettings>
<DevExpress.LookAndFeel.Design.AppSettings>
<setting name="DefaultAppSkin" serializeAs="String">
<value>Skin/Office 2019 White</value>
</setting>
<setting name="DefaultPalette" serializeAs="String">
<value>
</value>
</setting>
<setting name="TouchUI" serializeAs="String">
<value>
</value>
</setting>
<setting name="CompactUI" serializeAs="String">
<value>
</value>
</setting>
<setting name="TouchScaleFactor" serializeAs="String">
<value>
</value>
</setting>
<setting name="DirectX" serializeAs="String">
<value>
</value>
</setting>
<setting name="RegisterUserSkins" serializeAs="String">
<value>
</value>
</setting>
<setting name="RegisterBonusSkins" serializeAs="String">
<value>
</value>
</setting>
<setting name="FontBehavior" serializeAs="String">
<value>UseSegoeUI</value>
</setting>
<setting name="DefaultAppFont" serializeAs="String">
<value>
</value>
</setting>
<setting name="DPIAwarenessMode" serializeAs="String">
<value>System</value>
</setting>
<setting name="CustomPaletteCollection" serializeAs="Xml">
<value />
</setting>
</DevExpress.LookAndFeel.Design.AppSettings>
</applicationSettings>
<connectionStrings>
<add name="Global_Indexer.My.MySettings.DD_ECMConnectionString" connectionString="Data Source=SDD-VMP04-SQL17\DD_DEVELOP01;Initial Catalog=DD_ECM;Persist Security Info=True;User ID=sa;Password=dd" providerName="System.Data.SqlClient" />
</connectionStrings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="NLog" publicKeyToken="5120e14c03d0593c" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="GdPicture.NET.14" publicKeyToken="f52a2e60ad468dbb" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-14.3.3.0" newVersion="14.3.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="GdPicture.NET.14.Common" publicKeyToken="f52a2e60ad468dbb" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-14.3.3.0" newVersion="14.3.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="GdPicture.NET.14.Imaging" publicKeyToken="f52a2e60ad468dbb" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-14.3.3.0" newVersion="14.3.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
</dependentAssembly>
<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.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.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.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.6" newVersion="9.0.0.6" />
</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="System.Security.Cryptography.Pkcs" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.6" newVersion="9.0.0.6" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.IO.Packaging" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.6" newVersion="9.0.0.6" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Text.Json" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.6" newVersion="9.0.0.6" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="FirebirdSql.Data.FirebirdClient" publicKeyToken="3750abcc3150b00c" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-7.5.0.0" newVersion="7.5.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Identity.Client" publicKeyToken="0a613f4dd989e8ae" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.72.1.0" newVersion="4.72.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="DocumentFormat.OpenXml.Framework" publicKeyToken="8fb06cb64d019a17" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.3.0.0" newVersion="3.3.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="DocumentFormat.OpenXml" publicKeyToken="8fb06cb64d019a17" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.3.0.0" newVersion="3.3.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.5.0" newVersion="4.0.5.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.4.0" newVersion="4.2.4.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.IdentityModel.Abstractions" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-8.12.0.0" newVersion="8.12.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Diagnostics.DiagnosticSource" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.6" newVersion="9.0.0.6" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<entityFramework>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
<provider invariantName="FirebirdSql.Data.FirebirdClient" type="EntityFramework.Firebird.FbProviderServices, EntityFramework.Firebird" />
</providers>
<defaultConnectionFactory type="EntityFramework.Firebird.FbConnectionFactory, EntityFramework.Firebird" />
</entityFramework>
</configuration>

View File

@ -0,0 +1,12 @@
# Changelog
## 2.5.0
* Replace Mail Library
* Use DigitalData.Modules.Database for DB Access
* Use DigitalData.Modules.License for License Management
* Remove clsHotkey.vb
* Remove ClassLogger.vb
* Remove DDLLicenseManager
* Fix jumping selection when refreshing profiles, indicies, etc
* Fix crash when clicking add twice in admin

View File

@ -14,8 +14,10 @@ Public Class ClassConfig
Public Property ProfilePreselection As Boolean = False
Public Property ShowIndexResult As Boolean = True
Public Property DeleteOriginalFile As Boolean = False
Public Property TopMost As Boolean = True
' Misc Settings
Public Property LogErrorsOnly As Boolean = True
Public Property LogDEBUG As Boolean = True
Public Property WindreamSearchMaximized As Boolean = False
Public Property MyFormsDesign As String = ""
End Class

View File

@ -1,3 +1,7 @@
Public Class ClassConstants
Public Const VECTORSEPARATOR = ""
Public Const INDEX_TYPE_BOOLEAN = "BOOLEAN"
Public Const INDEX_TYPE_INTEGER = "INTEGER"
Public Const INDEX_TYPE_VARCHAR = "VARCHAR"
End Class

View File

@ -1,461 +0,0 @@
Imports System.Data.SqlClient
Imports Oracle.ManagedDataAccess.Client
Imports DigitalData.Controls.LookupGrid
Public Class ClassControls
Private Property Form As frmIndex
Private Property Panel As Panel
Public Class ControlMeta
Public Property IndexName As String
Public Property IndexType As String
Public Property MultipleValues As Boolean = False
End Class
Public Sub New(Panel As Panel, Form As frmIndex)
Me.Form = Form
Me.Panel = Panel
End Sub
Public Function AddCheckBox(indexname As String, y As Integer, vorbelegung As String, caption As String)
Try
Dim value As Boolean = False
Dim chk As New CheckBox
chk.Name = "chk" & indexname
chk.Size = New Size(100, 27)
chk.Location = New Point(11, y)
chk.Tag = New ControlMeta() With {
.IndexName = indexname,
.IndexType = "BOOLEAN"
}
If caption <> "" Then
chk.Text = caption
chk.Size = New Size(CInt(caption.Length * 15), 27)
End If
If Boolean.TryParse(vorbelegung, value) = False Then
If vorbelegung = "1" Or vorbelegung = "0" Then
chk.Checked = CBool(vorbelegung)
Else
chk.Checked = False
End If
Else
chk.Checked = value
End If
AddHandler chk.CheckedChanged, AddressOf Checkbox_CheckedChanged
Return chk
Catch ex As Exception
LOGGER.Info("Unhandled Exception in AddCheckBox: " & ex.Message)
LOGGER.Error(ex.message)
Return Nothing
End Try
End Function
Public Sub Checkbox_CheckedChanged(sender As CheckBox, e As EventArgs)
PrepareDependingControl(sender)
End Sub
Public Function AddVorschlag_ComboBox(indexname As String, y As Integer, conid As Integer, sql_Vorschlag As String, Multiselect As Boolean, DataType As String, Optional Vorgabe As String = "", Optional AddNewValues As Boolean = False, Optional PreventDuplicateValues As Boolean = False) As Control
Try
Dim oSql As String = sql_Vorschlag
Dim oConnectionString As String
Dim oControl As New DigitalData.Controls.LookupGrid.LookupControl2 With {
.MultiSelect = Multiselect,
.AllowAddNewValues = AddNewValues,
.PreventDuplicates = PreventDuplicateValues,
.Location = New Point(11, y),
.Size = New Size(300, 27),
.Name = "cmbMulti" & indexname,
.Tag = New ControlMeta() With {
.IndexName = indexname,
.IndexType = DataType
}
}
If Not String.IsNullOrEmpty(Vorgabe) Then
Dim oDefaultValues = Vorgabe.
Split(",").ToList().
Select(Function(item) item.Trim()).
ToList()
oControl.SelectedValues = oDefaultValues
End If
AddHandler oControl.SelectedValuesChanged, AddressOf Lookup_SelectedValuesChanged
oConnectionString = ClassFormFunctions.GetConnectionString(conid)
If oConnectionString IsNot Nothing Then
LOGGER.Debug("Connection String (redacted): [{0}]", oConnectionString.Substring(0, 30))
If ClassPatterns.HasComplexPatterns(oSql) Then
LOGGER.Debug(" >>sql enthält Platzhalter und wird erst während der Laufzeit gefüllt!", False)
Else
Dim oDatatable = ClassDatabase.Return_Datatable_Combined(oSql, oConnectionString, False)
oControl.DataSource = oDatatable
End If
Else
LOGGER.Warn("Connection String for control [{0}] is empty!", oControl.Name)
End If
Return oControl
Catch ex As Exception
LOGGER.Info(" - Unvorhergesehener Unexpected error in AddVorschlag_ComboBox - Indexname: " & indexname & " - Fehler: " & vbNewLine & ex.Message)
LOGGER.Error(ex.message)
MsgBox(ex.Message, MsgBoxStyle.Critical, "Unvorhergesehener Unexpected error in AddVorschlag_ComboBox:")
Return Nothing
End Try
End Function
Private Sub Lookup_SelectedValuesChanged(sender As LookupControl2, SelectedValues As List(Of String))
PrepareDependingControl(sender)
End Sub
Function AddCombobox(indexname As String, y As Integer)
Dim cmb As New ComboBox
cmb.Name = "cmb" & indexname
cmb.AutoSize = True
cmb.Size = New Size(300, 27)
cmb.Location = New Point(11, y)
cmb.Tag = New ControlMeta() With {
.IndexName = indexname
}
AddHandler cmb.SelectedIndexChanged, AddressOf OncmbSIndexChanged
AddHandler cmb.GotFocus, AddressOf OncmbGotFocus
AddHandler cmb.LostFocus, AddressOf OncmbLostFocus
AddHandler cmb.KeyDown, AddressOf OncmbKeyDown
Return cmb
End Function
Public Sub OncmbKeyDown(sender As System.Object, e As System.EventArgs)
Dim cmb As ComboBox = sender
' Verhindert, dass Auswahlliste und Autocompleteliste übereinander liegen
If cmb.DroppedDown = True Then
cmb.DroppedDown = False
End If
End Sub
Public Sub OncmbGotFocus(sender As System.Object, e As System.EventArgs)
Dim cmb As ComboBox = sender
cmb.BackColor = Color.Lime
End Sub
Public Sub OncmbLostFocus(sender As System.Object, e As System.EventArgs)
Dim cmb As ComboBox = sender
cmb.BackColor = Color.White
End Sub
Public Sub OncmbSIndexChanged(sender As System.Object, e As System.EventArgs)
If Form.FormLoaded = False Then
Exit Sub
End If
Dim cmb As ComboBox = sender
If cmb.SelectedIndex <> -1 Then
If cmb.Text.Length > 15 Then
Dim g As Graphics = cmb.CreateGraphics
cmb.Width = g.MeasureString(cmb.Text, cmb.Font).Width + 30
g.Dispose()
End If
Get_NextComboBoxResults(cmb)
SendKeys.Send("{TAB}")
End If
End Sub
Private Sub Get_NextComboBoxResults(cmb As ComboBox)
Try
Dim indexname = cmb.Name.Replace("cmb", "")
Dim sql = "SELECT GUID,NAME,SQL_RESULT FROM TBDD_INDEX_MAN where SUGGESTION = 1 AND SQL_RESULT like '%@" & indexname & "%' and DOK_ID = " & CURRENT_DOKART_ID & " ORDER BY SEQUENCE"
Dim DT As DataTable = ClassDatabase.Return_Datatable(sql, True)
If Not IsNothing(DT) Then
If DT.Rows.Count > 0 Then
Dim cmbname = "cmb" & DT.Rows(0).Item("NAME")
Renew_ComboboxResults(DT.Rows(0).Item("GUID"), indexname, cmb.Text)
End If
End If
Catch ex As Exception
MsgBox("Error in Get_NextComboBoxResults:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Private Sub Renew_ComboboxResults(INDEX_GUID As Integer, SearchString As String, Resultvalue As String)
Try
Dim connectionString As String
Dim sqlCnn As SqlConnection
Dim sqlCmd As SqlCommand
Dim adapter As New SqlDataAdapter
Dim oracleConn As OracleConnection
Dim oracleCmd As OracleCommand
Dim oracleadapter As New OracleDataAdapter
Dim NewDataset As New DataSet
Dim i As Integer
Dim DT_INDEX As DataTable = ClassDatabase.Return_Datatable("select * FROM TBDD_INDEX_MAN WHERE GUID = " & INDEX_GUID, True)
If IsNothing(DT_INDEX) Then
Exit Sub
End If
Dim conid = DT_INDEX.Rows(0).Item("CONNECTION_ID")
Dim sql_result = DT_INDEX.Rows(0).Item("SQL_RESULT")
Dim NAME = DT_INDEX.Rows(0).Item("NAME")
If Not IsNothing(conid) And Not IsNothing(sql_result) And Not IsNothing(NAME) Then
For Each ctrl As Control In Me.Panel.Controls
If ctrl.Name = "cmb" & NAME.ToString Then
Dim cmb As ComboBox = ctrl
Dim sql As String = sql_result.ToString.ToUpper.Replace("@" & SearchString.ToUpper, Resultvalue)
connectionString = ClassFormFunctions.GetConnectionString(conid)
If connectionString Is Nothing = False Then
'SQL Befehl füllt die Auswahlliste
If connectionString.Contains("Initial Catalog=") Then
sqlCnn = New SqlConnection(connectionString)
sqlCnn.Open()
sqlCmd = New SqlCommand(sql, sqlCnn)
adapter.SelectCommand = sqlCmd
adapter.Fill(NewDataset)
ElseIf connectionString.StartsWith("Data Source=") And connectionString.Contains("SERVICE_NAME") Then
oracleConn = New OracleConnection(connectionString)
' Try
oracleConn.Open()
oracleCmd = New OracleCommand(sql, oracleConn)
oracleadapter.SelectCommand = oracleCmd
oracleadapter.Fill(NewDataset)
End If
If NewDataset.Tables(0).Rows.Count > 0 Then
cmb.Items.Clear()
'Die Standargrösse definieren
Dim newWidth As Integer = 300
For i = 0 To NewDataset.Tables(0).Rows.Count - 1
'MsgBox(NewDataset.Tables(0).Rows(i).Item(0))
cmb.Items.Add(NewDataset.Tables(0).Rows(i).Item(0))
Try
Dim text As String = NewDataset.Tables(0).Rows(i).Item(0)
If text.Length > 15 Then
Dim g As Graphics = cmb.CreateGraphics
If g.MeasureString(text, cmb.Font).Width + 30 > newWidth Then
newWidth = g.MeasureString(text, cmb.Font).Width + 30
End If
g.Dispose()
End If
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Unexpected error in Anpassung Breite ComboBox:")
End Try
Next
cmb.Size = New Size(newWidth, 27)
cmb.AutoCompleteSource = AutoCompleteSource.ListItems
cmb.AutoCompleteMode = AutoCompleteMode.Suggest
End If
If connectionString.Contains("Initial Catalog=") Then
Try
adapter.Dispose()
sqlCmd.Dispose()
sqlCnn.Close()
Catch ex As Exception
End Try
Else
Try
oracleadapter.Dispose()
oracleCmd.Dispose()
oracleConn.Close()
Catch ex As Exception
End Try
End If
End If
End If
Next
End If
Catch ex As Exception
LOGGER.Info(" - Unvorhergesehener Unexpected error in Renew_ComboboxResults - Fehler: " & vbNewLine & ex.Message)
LOGGER.Error(ex.message)
MsgBox(ex.Message, MsgBoxStyle.Critical, "Unvorhergesehener Unexpected error in Renew_ComboboxResults:")
End Try
End Sub
Public Function AddTextBox(indexname As String, y As Integer, text As String, DataType As String) As TextBox
Dim txt As New TextBox With {
.Name = "txt" & indexname,
.Size = New Size(260, 27),
.Location = New Point(11, y),
.Tag = New ControlMeta() With {
.IndexName = indexname,
.IndexType = DataType
}
}
If text <> "" Then
txt.Text = text
txt.Size = New Size(CInt(text.Length * 15), 27)
txt.SelectAll()
End If
AddHandler txt.GotFocus, AddressOf OnTextBoxFocus
AddHandler txt.LostFocus, AddressOf OnTextBoxLostFocus
AddHandler txt.KeyUp, AddressOf OnTextBoxKeyUp
AddHandler txt.TextChanged, AddressOf OnTextBoxTextChanged
Return txt
End Function
Public Sub OnTextBoxFocus(sender As System.Object, e As System.EventArgs)
Dim oTextbox As TextBox = sender
oTextbox.BackColor = Color.Lime
oTextbox.SelectAll()
End Sub
Public Sub OnTextBoxTextChanged(sender As System.Object, e As System.EventArgs)
Dim oTextbox As TextBox = sender
Using oGraphics As Graphics = oTextbox.CreateGraphics()
oTextbox.Width = oGraphics.MeasureString(oTextbox.Text, oTextbox.Font).Width + 15
End Using
End Sub
Public Sub OnTextBoxLostFocus(sender As System.Object, e As System.EventArgs)
Dim oTextbox As TextBox = sender
oTextbox.BackColor = Color.White
End Sub
Public Sub OnTextBoxKeyUp(sender As System.Object, e As System.Windows.Forms.KeyEventArgs)
Dim oTextbox As TextBox = sender
If oTextbox.Text = String.Empty Then
Exit Sub
End If
If e.KeyCode = Keys.Return Or e.KeyCode = Keys.Enter Or e.KeyCode = Keys.Tab Then
PrepareDependingControl(oTextbox)
End If
If (e.KeyCode = Keys.Return) Then
SendKeys.Send("{TAB}")
End If
End Sub
Public Function AddDateTimePicker(indexname As String, y As Integer, DataType As String)
Dim dtp As New DateTimePicker With {
.Name = "dtp" & indexname,
.Format = DateTimePickerFormat.Short,
.Size = New Size(133, 27),
.Location = New Point(11, y),
.Tag = New ControlMeta() With {
.IndexName = indexname,
.IndexType = DataType
}
}
AddHandler dtp.ValueChanged, AddressOf OndtpChanged
Return dtp
End Function
Sub OndtpChanged()
'offen was hier zu tun ist
End Sub
Private Sub PrepareDependingControl(Control As Control)
If TypeOf Control Is Label Then
Exit Sub
End If
Try
Dim oMeta = DirectCast(Control.Tag, ClassControls.ControlMeta)
Dim oIndexName As String = oMeta.IndexName
Dim oSQL = $"SELECT * FROM TBDD_INDEX_MAN WHERE SQL_RESULT LIKE '%{oIndexName}%'"
Dim oDatatable As DataTable = ClassDatabase.Return_Datatable(oSQL)
If Not IsNothing(oDatatable) Then
LOGGER.Debug("Found [{0}] depending controls for [{1}]", oDatatable.Rows.Count, Control.Name)
For Each oRow As DataRow In oDatatable.Rows
Dim oControlName As String = NotNull(oRow.Item("NAME"), "")
Dim oConnectionId As Integer = NotNull(oRow.Item("CONNECTION_ID"), -1)
Dim oControlSql As String = NotNull(oRow.Item("SQL_RESULT"), "")
If oConnectionId = -1 Or oControlSql = String.Empty Then
LOGGER.Warn("Missing SQL Query or ConnectionId for Control [{0}]! Continuing.", oControlName)
Continue For
End If
oControlSql = ClassPatterns.ReplaceUserValues(oControlSql, USER_PRENAME, USER_SURNAME, USER_SHORT_NAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_DOKART_ID)
oControlSql = ClassPatterns.ReplaceInternalValues(oControlSql)
oControlSql = ClassPatterns.ReplaceControlValues(oControlSql, Panel)
LOGGER.Debug("SQL After Preparing: [{0}]", oControlSql)
LOGGER.Debug("Setting new value for [{0}]", oControlName)
SetDependingControlResult(oControlName, oControlSql, oConnectionId)
Next
End If
Catch ex As Exception
LOGGER.Error(ex)
End Try
End Sub
Private Sub SetDependingControlResult(IndexName As String, SqlCommand As String, SqlConnectionId As Integer)
Try
If SqlCommand Is Nothing OrElse SqlCommand = String.Empty Then
LOGGER.Warn("New Value for Index [{0}] could not be set. Supplied SQL is empty.")
Exit Sub
End If
Dim oConnectionString = ClassFormFunctions.GetConnectionString(SqlConnectionId)
Dim oDatatable As DataTable = ClassDatabase.Return_Datatable_CS(SqlCommand, oConnectionString)
Dim oFoundControl As Control = Nothing
For Each oControl As Control In Panel.Controls
If TypeOf oControl Is Label Then
Continue For
End If
Dim oMeta = DirectCast(oControl.Tag, ClassControls.ControlMeta)
Dim oIndex As String = oMeta.IndexName
If oIndex = IndexName Then
oFoundControl = oControl
Exit For
End If
Next
If oFoundControl Is Nothing Then
LOGGER.Warn("Depending Control for Index [{0}] not found!", IndexName)
End If
If oDatatable Is Nothing Then
LOGGER.Warn("Error in SQL Command: {0}", SqlCommand)
End If
If TypeOf oFoundControl Is TextBox Then
If oDatatable.Rows.Count > 0 Then
Dim oFirstRow As DataRow = oDatatable.Rows.Item(0)
If oFirstRow.ItemArray.Length > 0 Then
Dim oValue = oFirstRow.Item(0).ToString()
LOGGER.Debug("Setting Value for control [{0}]: [{1}]", oFoundControl.Name, oValue)
DirectCast(oFoundControl, TextBox).Text = oValue
End If
End If
ElseIf TypeOf oFoundControl Is LookupControl2 Then
LOGGER.Debug("Setting Value for control [{0}]: [{1}]", oFoundControl.Name, "DATATABLE")
DirectCast(oFoundControl, LookupControl2).DataSource = oDatatable
ElseIf TypeOf oFoundControl Is ComboBox Then
LOGGER.Debug("Setting Value for control [{0}]: [{1}]", oFoundControl.Name, "DATATABLE")
DirectCast(oFoundControl, ComboBox).DataSource = oDatatable
End If
Catch ex As Exception
LOGGER.Error(ex)
End Try
End Sub
End Class

View File

@ -1,312 +0,0 @@
Imports System.Data.SqlClient
Imports Oracle.ManagedDataAccess.Client
Public Class ClassDatabase
Private Const NETWORK_TIMEOUT As Integer = -1
Private Shared SQLSERVERConnectionString As String
Private Shared OracleConnectionString As String
Public Shared DatabaseConnectionTimeout As Boolean = False
Public Shared Function Init()
Try
SQLSERVERConnectionString = MyConnectionString
Dim SQLconnect As New SqlConnection
SQLconnect.ConnectionString = SQLSERVERConnectionString
SQLconnect.Open()
SQLconnect.Close()
Return True
Catch ex As Exception
LOGGER.Info("Unexpected error in Database-Init: " & ex.Message)
LOGGER.Error(ex.Message)
Return False
End Try
End Function
Public Shared Function Get_ConnectionString(id As Integer)
Dim connectionString As String = ""
Try
'Me.TBCONNECTIONTableAdapter.FillByID(Me.DD_DMSLiteDataSet.TBCONNECTION, id)
Dim DTConnection As DataTable = ClassDatabase.Return_Datatable("SELECT * FROM TBDD_CONNECTION WHERE GUID = " & id)
If DTConnection.Rows.Count = 1 Then
Select Case DTConnection.Rows(0).Item("SQL_PROVIDER").ToString.ToUpper
Case "MS-SQL"
If DTConnection.Rows(0).Item("USERNAME") = "WINAUTH" Then
connectionString = "Server=" & DTConnection.Rows(0).Item("SERVER") & ";Database=" & DTConnection.Rows(0).Item("DATENBANK") & ";Trusted_Connection=True;"
Else
connectionString = "Server=" & DTConnection.Rows(0).Item("SERVER") & ";Database=" & DTConnection.Rows(0).Item("DATENBANK") & ";User Id=" & DTConnection.Rows(0).Item("USERNAME") & ";Password=" & DTConnection.Rows(0).Item("USERNAME") & ";Password=" & DTConnection.Rows(0).Item("PASSWORD") & ";"
End If
' connectionString = "Server=" & DTConnection.Rows(0).Item("SERVER") & ";Database=" & DTConnection.Rows(0).Item("DATENBANK") & ";User Id=" & DTConnection.Rows(0).Item("USERNAME") & ";Password=" & DTConnection.Rows(0).Item("PASSWORD") & ";"
Case "Oracle"
If DTConnection.Rows(0).Item("BEMERKUNG").ToString.Contains("without tnsnames") Then
connectionString = "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=" & DTConnection.Rows(0).Item("SERVER") & ")(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=" &
DTConnection.Rows(0).Item("DATENBANK") & ")));User Id=" & DTConnection.Rows(0).Item("USERNAME") & ";Password=" & DTConnection.Rows(0).Item("PASSWORD") & ";"
Else
connectionString = "Data Source=" & DTConnection.Rows(0).Item("SERVER") & ";Persist Security Info=True;User Id=" & DTConnection.Rows(0).Item("USERNAME") & ";Password=" & DTConnection.Rows(0).Item("PASSWORD") & ";Unicode=True"
End If
'Case "ODBC"
' Dim conn As New OdbcConnection("dsn=" & DTConnection.Rows(0).Item("SERVER") & ";uid=" & DTConnection.Rows(0).Item("USERNAME") & ";pwd=" + DTConnection.Rows(0).Item("PASSWORD"))
' connectionString = conn.ConnectionString
Case Else
LOGGER.Info(" - ConnectionType nicht integriert")
MsgBox("ConnectionType nicht integriert", MsgBoxStyle.Critical, "Bitte Konfiguration Connection überprüfen!")
End Select
Else
LOGGER.Info(" No entry for Connection-ID: " & id.ToString)
End If
Catch ex As Exception
LOGGER.Error(ex)
LOGGER.Info(" - Error in bei Get ConnectionString - Fehler: " & vbNewLine & ex.Message)
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error in Get ConnectionString:")
End Try
Return connectionString
End Function
Public Shared Function Return_Datatable_Combined(SqlCommand As String, ConnectionString As String, Optional userInput As Boolean = False)
If ConnectionString.Contains("Initial Catalog=") Then
Return Return_Datatable_CS(SqlCommand, ConnectionString, userInput)
Else
Return Oracle_Return_Datatable(SqlCommand, ConnectionString, userInput)
End If
End Function
Public Shared Function Return_Datatable(sql_command As String, Optional userInput As Boolean = False) As DataTable
Try
Dim SQLconnect As New SqlConnection
Dim SQLcommand As SqlCommand
SQLconnect.ConnectionString = SQLSERVERConnectionString
SQLconnect.Open()
SQLcommand = SQLconnect.CreateCommand
SQLcommand.CommandText = sql_command
Dim adapter1 As SqlDataAdapter = New SqlDataAdapter(SQLcommand)
Dim dt As DataTable = New DataTable()
adapter1.Fill(dt)
SQLconnect.Close()
' Reset timeout counter when query was sucessful
DatabaseConnectionTimeout = False
Return dt
Catch ex As SqlException
Dim handled = CatchDatabaseTimeout(ex, sql_command)
If Not handled Then
If userInput = True Then
MsgBox("Error in Return_Datatable - Error-Message:" & vbNewLine & ex.Message & vbNewLine & "SQL-Command:" & vbNewLine & sql_command, MsgBoxStyle.Critical)
End If
LOGGER.Info("Unexpected error in Return_Datatable: " & ex.Message)
LOGGER.Info("#SQL: " & sql_command)
End If
Return Nothing
Catch ex As Exception
If userInput = True Then
MsgBox("Error in Return Datatable - Error-Message:" & vbNewLine & ex.Message & vbNewLine & "SQL-Command:" & vbNewLine & sql_command, MsgBoxStyle.Critical)
End If
LOGGER.Info("Unexpected error in Return_Datatable: " & ex.Message)
LOGGER.Info("#SQL: " & sql_command)
Return Nothing
End Try
End Function
Public Shared Function Return_Datatable_CS(sql_command As String, ConString As String, Optional userInput As Boolean = False)
Try
Dim SQLconnect As New SqlConnection
Dim SQLcommand As SqlCommand
SQLconnect.ConnectionString = ConString
SQLconnect.Open()
SQLcommand = SQLconnect.CreateCommand
SQLcommand.CommandText = sql_command
Dim adapter1 As SqlDataAdapter = New SqlDataAdapter(SQLcommand)
Dim dt As DataTable = New DataTable()
adapter1.Fill(dt)
SQLconnect.Close()
' Reset timeout counter when query was sucessful
DatabaseConnectionTimeout = False
Return dt
Catch ex As SqlException
Dim handled = CatchDatabaseTimeout(ex, sql_command)
If Not handled Then
If userInput = True Then
MsgBox("Error in Return_Datatable_CS - Error-Message:" & vbNewLine & ex.Message & vbNewLine & "SQL-Command:" & vbNewLine & sql_command, MsgBoxStyle.Critical)
End If
LOGGER.Info("Unexpected error in Return_Datatable_CS: " & ex.Message)
LOGGER.Info("#SQL: " & sql_command)
End If
Return False
Catch ex As Exception
If userInput = True Then
MsgBox("Error in Return_Datatable_CS - Error-Message:" & vbNewLine & ex.Message & vbNewLine & "SQL-Command:" & vbNewLine & sql_command, MsgBoxStyle.Critical)
End If
LOGGER.Info("Unexpected error in Return_Datatable_CS: " & ex.Message)
LOGGER.Info("#SQL: " & sql_command)
Return Nothing
End Try
End Function
Public Shared Function Execute_non_Query(sql_command As String, Optional userInput As Boolean = False) As Boolean
Try
Dim SQLconnect As New SqlConnection
Dim SQLcommand As SqlCommand
SQLconnect.ConnectionString = SQLSERVERConnectionString
SQLconnect.Open()
SQLcommand = SQLconnect.CreateCommand
'Update Last Created Record in Foo
SQLcommand.CommandText = sql_command
SQLcommand.ExecuteNonQuery()
SQLcommand.Dispose()
SQLconnect.Close()
' Reset timeout counter when query was sucessful
DatabaseConnectionTimeout = False
Return True
Catch ex As SqlException
Dim handled = CatchDatabaseTimeout(ex, sql_command)
If Not handled Then
If userInput = True Then
MsgBox("Error in Execute non query - Error-Message:" & vbNewLine & ex.Message & vbNewLine & "SQL-Command:" & vbNewLine & sql_command, MsgBoxStyle.Critical)
End If
LOGGER.Info("Unexpected error in Execute_non_Query: " & ex.Message)
LOGGER.Info("#SQL: " & sql_command)
End If
Return False
Catch ex As Exception
If userInput = True Then
MsgBox("Error in Execute non query - Error-Message:" & vbNewLine & ex.Message & vbNewLine & "SQL-Command:" & vbNewLine & sql_command, MsgBoxStyle.Critical)
End If
LOGGER.Info("Unexpected error in Execute_non_Query: " & ex.Message)
LOGGER.Info("#SQL: " & sql_command)
Return False
End Try
End Function
Public Shared Function Execute_Scalar(sql_command As String, ConString As String, Optional userInput As Boolean = False)
Dim result
Try
Dim SQLconnect As New SqlConnection
Dim SQLcommand As SqlCommand
SQLconnect.ConnectionString = ConString
SQLconnect.Open()
SQLcommand = SQLconnect.CreateCommand
'Update Last Created Record in Foo
SQLcommand.CommandText = sql_command
result = SQLcommand.ExecuteScalar()
SQLcommand.Dispose()
SQLconnect.Close()
' Reset timeout counter when query was sucessful
DatabaseConnectionTimeout = False
Return result
Catch ex As SqlException
Dim handled = CatchDatabaseTimeout(ex, sql_command)
If Not handled Then
If userInput = True Then
MsgBox("Error in Execute non query - Error-Message:" & vbNewLine & ex.Message & vbNewLine & "SQL-Command:" & vbNewLine & sql_command, MsgBoxStyle.Critical)
End If
LOGGER.Info("Unexpected error in Execute_non_Query: " & ex.Message)
LOGGER.Info("#SQL: " & sql_command)
End If
Return False
Catch ex As Exception
If userInput = True Then
MsgBox("Error in Execute Scalar - Error-Message:" & vbNewLine & ex.Message & vbNewLine & "SQL-Command:" & vbNewLine & sql_command, MsgBoxStyle.Critical)
End If
LOGGER.Info("Unexpected error in Execute_Scalar: " & ex.Message)
LOGGER.Info("#SQL: " & sql_command)
Return Nothing
End Try
End Function
Public Shared Function OracleExecute_Scalar(cmdscalar As String, OracleConnection As String)
Dim result
Try
Dim SQLconnect As New OracleConnection
Dim SQLcommand As New OracleCommand
SQLconnect.ConnectionString = OracleConnection
SQLconnect.Open()
SQLcommand = SQLconnect.CreateCommand
'Update Last Created Record in Foo
SQLcommand.CommandText = cmdscalar
result = SQLcommand.ExecuteScalar()
SQLcommand.Dispose()
SQLconnect.Close()
Return result
Catch ex As Exception
LOGGER.Info("Unexpected error in OracleExecute_Scalar: " & ex.Message)
LOGGER.Error(ex.Message)
LOGGER.Info("#SQL: " & cmdscalar)
Return Nothing
End Try
End Function
Public Shared Function OracleExecute_non_Query(ExecuteCMD As String, OracleConnection As String, Optional userInput As Boolean = False)
Try
Dim SQLconnect As New OracleConnection
Dim SQLcommand As OracleCommand
SQLconnect.ConnectionString = OracleConnection
SQLconnect.Open()
SQLcommand = SQLconnect.CreateCommand
'Update Last Created Record in Foo
SQLcommand.CommandText = ExecuteCMD
SQLcommand.ExecuteNonQuery()
SQLcommand.Dispose()
SQLconnect.Close()
Return True
Catch ex As Exception
If userInput = True Then
MsgBox("Error in OracleExecute_non_Query - Error-Message:" & vbNewLine & ex.Message & vbNewLine & "SQL-Command:" & vbNewLine & ExecuteCMD, MsgBoxStyle.Critical)
End If
LOGGER.Info("Unexpected error in OracleExecute_non_Query: " & ex.Message)
LOGGER.Info("#SQL: " & ExecuteCMD)
Return False
End Try
End Function
Public Shared Function Oracle_Return_Datatable(Select_anweisung As String, OracleConnection As String, Optional userInput As Boolean = False)
Try
Dim SQLconnect As New OracleConnection
Dim SQLcommand As OracleCommand
SQLconnect.ConnectionString = OracleConnection
SQLconnect.Open()
SQLcommand = SQLconnect.CreateCommand
SQLcommand.CommandText = Select_anweisung
Dim adapter1 As OracleDataAdapter = New OracleDataAdapter(SQLcommand)
Dim dt As DataTable = New DataTable()
adapter1.Fill(dt)
SQLconnect.Close()
Return dt
Catch ex As Exception
If userInput = True Then
MsgBox("Error in Oracle Return Datatable - Error-Message:" & vbNewLine & ex.Message & vbNewLine & "SQL-Command:" & vbNewLine & Select_anweisung, MsgBoxStyle.Critical)
End If
LOGGER.Info("Unexpected error in Oracle_Return_Datatable: " & ex.Message)
LOGGER.Info("#SQL: " & Select_anweisung)
Return Nothing
End Try
End Function
Public Shared Function CatchDatabaseTimeout(ex As SqlException, sql_command As String)
Dim FatalErrors As New List(Of Integer) From {-1, -2, 121}
If FatalErrors.Contains(ex.Number) Then
DatabaseConnectionTimeout = True
LOGGER.Info("Network timeout error in Return_Datatable: " & ex.Message)
LOGGER.Info("#SQL: " & sql_command)
Return True
Else
Return False
End If
End Function
End Class

View File

@ -8,7 +8,7 @@
(DOCTYPE_ID, GROUP_ID, ADDED_WHO)
VALUES ({ProfileId}, {GroupId}, '{Environment.UserName}')
"
Return ClassDatabase.Execute_non_Query(oSQL, True)
Return DATABASE_ECM.ExecuteNonQuery(oSQL)
Catch ex As Exception
LOGGER.Error(ex)
Return False
@ -18,7 +18,7 @@
Public Shared Function RemoveGroupFromProfile(GroupId As Integer, ProfileId As Integer) As Boolean
Try
Dim oSQL = $"DELETE FROM TBDD_USRGRP_DOKTYPE WHERE DOCTYPE_ID = {ProfileId} AND GROUP_ID = {GroupId}"
Return ClassDatabase.Execute_non_Query(oSQL, True)
Return DATABASE_ECM.ExecuteNonQuery(oSQL)
Catch ex As Exception
LOGGER.Error(ex)
Return False
@ -36,7 +36,7 @@
WHERE DOCTYPE_ID = {ProfileId}
)
"
Dim oDatatable As DataTable = ClassDatabase.Return_Datatable(oSQL)
Dim oDatatable As DataTable = DATABASE_ECM.GetDatatable(oSQL)
Return oDatatable
Catch ex As Exception
@ -56,7 +56,7 @@
WHERE DOCTYPE_ID = {ProfileId}
)
"
Dim oDatatable As DataTable = ClassDatabase.Return_Datatable(oSQL)
Dim oDatatable As DataTable = DATABASE_ECM.GetDatatable(oSQL)
Return oDatatable
Catch ex As Exception
@ -75,7 +75,7 @@
(DOCTYPE_ID, USER_ID, ADDED_WHO)
VALUES ({ProfileId}, {UserId}, '{Environment.UserName}')
"
Return ClassDatabase.Execute_non_Query(oSQL, True)
Return DATABASE_ECM.ExecuteNonQuery(oSQL)
Catch ex As Exception
LOGGER.Error(ex)
Return False
@ -85,7 +85,7 @@
Public Shared Function RemoveUserFromProfile(UserId As Integer, ProfileId As Integer) As Boolean
Try
Dim oSQL = $"DELETE FROM TBDD_USER_DOKTYPE WHERE DOCTYPE_ID = {ProfileId} AND USER_ID = {UserId}"
Return ClassDatabase.Execute_non_Query(oSQL, True)
Return DATABASE_ECM.ExecuteNonQuery(oSQL)
Catch ex As Exception
LOGGER.Error(ex)
Return False
@ -102,7 +102,7 @@
WHERE DOCTYPE_ID = {ProfileId}
)
"
Dim oDatatable As DataTable = ClassDatabase.Return_Datatable(oSQL)
Dim oDatatable As DataTable = DATABASE_ECM.GetDatatable(oSQL)
Return oDatatable
Catch ex As Exception
@ -120,9 +120,9 @@
FROM TBDD_USER_DOKTYPE
WHERE DOCTYPE_ID = {ProfileId}
)
AND GUID IN (SELECT USER_ID FROM [dbo].[FNDD_GET_USER_FOR_MODULE] ('GLOBIX', 1))
AND GUID IN (SELECT USER_ID FROM [dbo].[FNDD_GET_USER_FOR_MODULE] ('fileFLOW', 1))
"
Dim oDatatable As DataTable = ClassDatabase.Return_Datatable(oSQL)
Dim oDatatable As DataTable = DATABASE_ECM.GetDatatable(oSQL)
Return oDatatable
Catch ex As Exception

View File

@ -1,74 +0,0 @@
Imports System.Net.Mail
Public Class ClassEmail
Public Shared Function Send_Log_Mail(ByVal vBody As String, ByVal vBetreff As String, ByVal emailfrom As String, ByVal emailsmtp As String, ByVal emailuser As String, ByVal emailpw As String, ByVal email_empf As String, Optional test As Boolean = False, Optional Log As Boolean = False)
'#### E-MAIL NACHRICHT VERSENDEN
Try
Dim empfaenger As String()
If email_empf.Contains(";") Then
empfaenger = email_empf.Split(";")
Else
ReDim Preserve empfaenger(0)
empfaenger(0) = email_empf
End If
'Für jeden Empfänger eine Neue Mail erzeugen
For Each _mailempfaenger As String In empfaenger
' Neue Nachricht erzeugen:
Dim message As New MailMessage(emailfrom, _mailempfaenger, vBetreff & " - Domain: " & Environment.UserDomainName,
"<font face=""Arial"">" & vBody & "<br>>> Version: " & My.Application.Info.Version.ToString & "<br>>> Maschine: " & Environment.MachineName & "<br>" & "<br>>> Domain-Name: " & Environment.UserDomainName & "<br>" &
"<br>>> Gesendet am: " & My.Computer.Clock.LocalTime.ToShortDateString & " " &
My.Computer.Clock.LocalTime.ToLongTimeString & "</font>")
If test = False Then
If Log = True Then
' create and add the attachment(s) */
If ClassLogger.logDateiname.Contains("\\") Then
ClassLogger.logDateiname = ClassLogger.logDateiname.Replace("\\", "\")
End If
If IO.File.Exists(ClassLogger.logDateiname) Then
Dim Attachment As Attachment = New Attachment(ClassLogger.logDateiname)
message.Attachments.Add(Attachment)
End If
End If
End If
With message
.IsBodyHtml = True
.Priority = MailPriority.High
End With
'Einen SMTP Client erzeugen und Anmeldungsinformationen hinterlegen
Dim emailClient As New SmtpClient(emailsmtp)
'Email mit Authentifizierung
Dim SMTPUserInfo As New System.Net.NetworkCredential(emailuser, emailpw)
emailClient.UseDefaultCredentials = False
emailClient.Credentials = SMTPUserInfo
emailClient.Port = 25
'*Send the message */
emailClient.Send(message)
If USER_LANGUAGE = "de-DE" Then
If test = True Then
MsgBox("Die Test-Email wurde erfolgreich versendet!", MsgBoxStyle.Information, "Erfolgsmeldung:")
End If
If Log = True Then
MsgBox("Die Support-Email wurde erfolgreich versendet!", MsgBoxStyle.Information, "Erfolgsmeldung:")
End If
Else
If test = True Then
MsgBox("Test-Email sucessfully sent!", MsgBoxStyle.Information, "Success:")
End If
If Log = True Then
MsgBox("Support-Email sucessfully sent!", MsgBoxStyle.Information, "Success:")
End If
End If
'LOGGER.Info(">> Support/Log Email erfolgreich an " & _mailempfaenger & " versendet!")
Next
Return True
Catch ex As Exception
LOGGER.Info("### Fehler im Mailversand: " & ex.Message)
LOGGER.Error(ex.message)
Return False
End Try
End Function
End Class

View File

@ -1,112 +0,0 @@
Imports Independentsoft
Imports System.Text.RegularExpressions
Public Class ClassEmailHeaderExtractor
''' <summary>
''' Extrahiert die Headerinformationen aus einer .msg Datei mithilfe der MSG.NET Klasse
''' </summary>
''' <param name="path">Der Pfad einer .msg Datei</param>
''' <returns>Headerinformationen als String oder Nothing wenn ein Fehler aufgetreten ist.</returns>
Public Shared Function getMessageHeaders(path As String)
Try
Dim msg As New Msg.Message(path)
Dim headers = msg.TransportMessageHeaders.Replace(vbCrLf, " ")
Return headers
Catch ex As Exception
Return Nothing
End Try
End Function
''' <summary>
''' Extrahiert die Headerinformationen aus einem msg Objekt mithilfe der MSG.NET Klasse
''' </summary>
''' <param name="msg">Eine Email vom Typ Msg.Message</param>
''' <returns>Headerinformationen als String oder Nothing wenn ein Fehler aufgetreten ist.</returns>
Public Shared Function getMessageHeaders(msg As Msg.Message)
Try
Dim headers = msg.TransportMessageHeaders.Replace(vbCrLf, " ")
Return headers
Catch ex As Exception
Return Nothing
End Try
End Function
''' <summary>
''' Extrahiert aus den Headerinformationen anhand einer Liste von Regular Expressions eine Absenderadresse.
''' </summary>
''' <param name="messageHeaders">Headerinformationen die von getMessageHeaders erzeugt wurden.</param>
''' <param name="RegexList">Eine Liste von Regular Expressions</param>
''' <param name="RegexGroup">Die Ergebnisgruppe, die die Adresse enthält</param>
''' <returns>Eine Emailadresse oder Nothing, wenn keine der Regular Expressions ein Ergebnis lieferte.</returns>
Public Shared Function extractFromAddress(messageHeaders As String, RegexList As List(Of Regex), Optional RegexGroup As Integer = 1)
If IsNothing(messageHeaders) Then
Return Nothing
End If
For Each rx In RegexList
Dim match As Match = rx.Match(messageHeaders)
Dim email As String = match.Groups(RegexGroup).Value
If Not String.IsNullOrWhiteSpace(email) Then
Return email
End If
Next
Return Nothing
End Function
Public Shared Function extractFromHeader(messageHeaders As String, Regex As String)
Try
Dim result
Dim i As Integer = 0
If IsNothing(messageHeaders) Then
Return Nothing
End If
' einen Regulären Ausdruck laden
Dim strRegex As String = Regex
Dim myRegex As New Regex(strRegex, RegexOptions.IgnorePatternWhitespace)
Dim strTargetString As String = messageHeaders.Trim
' die Vorkommen im String auslesen
For Each myMatch As Match In myRegex.Matches(strTargetString)
If myMatch.Success Then
If myMatch.Value <> "" Then
If i = 0 Then
result = myMatch.Value.ToString
Else
result = result & ";" & myMatch.Value.ToString
End If
i += 1
End If
End If
Next
Return result
Catch ex As Exception
MsgBox("Unexpected Error in extractFromHeader: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return Nothing
End Try
End Function
''' <summary>
''' Extrahiert aus den Headerinformationen anhand einer Liste von Regular Expressions eine Empfängeradresse.
''' </summary>
''' <param name="messageHeaders">Headerinformationen die von getMessageHeaders erzeugt wurden.</param>
''' <param name="RegexList">Eine Liste von Regular Expressions</param>
''' <param name="RegexGroup">Die Ergebnisgruppe, die die Adresse enthält</param>
''' <returns>Eine Emailadresse oder Nothing, wenn keine der Regular Expressions ein Ergebnis lieferte.</returns>
Public Shared Function extractToAddress(messageHeaders As String, RegexList As List(Of Regex), Optional RegexGroup As Integer = 1)
If IsNothing(messageHeaders) Then
Return Nothing
End If
For Each rx In RegexList
Dim match As Match = rx.Match(messageHeaders)
Dim email As String = match.Groups(RegexGroup).Value
If Not String.IsNullOrWhiteSpace(email) Then
Return email
End If
Next
Return Nothing
End Function
End Class

View File

@ -1,284 +0,0 @@
Imports System.IO
Imports Microsoft.Office.Interop
Public Class ClassFileDrop
Public Shared files_dropped As String()
' Tobit David Drag Drop: https://www.david-forum.de/thread/12671-drag-and-drop-von-faxen-und-mails-in-net-anwendung/
'Private Declare Function DVEmlFromMailItem Lib "DvApi32" (ByVal oMailItem As MailItem, ByVal strFileName As String) As Long
Public Shared Function Drop_File(e As DragEventArgs)
Try
LOGGER.Info("Available Drop Formats:")
For Each oFormat As String In e.Data.GetFormats()
LOGGER.Info(oFormat)
Next
LOGGER.Info(">> Drop_File")
files_dropped = Nothing
If e.Data.GetDataPresent(DataFormats.FileDrop) Then
Dim MyFiles() As String
Dim i As Integer
' Assign the files to an array.
MyFiles = e.Data.GetData(DataFormats.FileDrop)
' Loop through the array and add the files to the list.
For i = 0 To MyFiles.Length - 1
LOGGER.Info(">> Simple FileDrop - File: " & MyFiles(i))
ReDim Preserve files_dropped(i)
files_dropped(i) = "|DROPFROMFSYSTEM|" & MyFiles(i)
' ListBox1.Items.Add(MyFiles(i))
Next
Return True
ElseIf (e.Data.GetDataPresent("FileGroupDescriptor")) AndAlso (e.Data.GetDataPresent("FileContents")) Then
'// the first step here is to get the stbFileName
'// of the attachment and
'// build a full-path name so we can store it
'// in the temporary folder
'//
'// set up to obtain the aryFileGroupDescriptor
'// and extract the file name
Dim stmInput As IO.Stream = CType(e.Data.GetData("FileGroupDescriptor"), IO.Stream)
Dim aryFileGroupDescriptor(512) As Byte ' = new byte[512]
stmInput.Read(aryFileGroupDescriptor, 0, 512)
'// used to build the stbFileName from the aryFileGroupDescriptor block
Dim stbFileName As System.Text.StringBuilder = New System.Text.StringBuilder("")
'// this trick gets the stbFileName of the passed attached file
Dim intCnt As Integer = 76
Do While aryFileGroupDescriptor(intCnt) <> 0
stbFileName.Append(Convert.ToChar(aryFileGroupDescriptor(intCnt), System.Globalization.CultureInfo.CreateSpecificCulture("de-DE")))
intCnt += 1
Loop
stmInput.Close()
'Sonderzeichen entfernen
Dim Tempfilename = ClassFilehandle.InvalidCharacters(stbFileName.ToString)
Dim anhaenge = e.Data.GetDataPresent("FileContents")
'Dim path As String = "C:\VBProjekte\Dateien"
'// put the zip file into the temp directory
Dim strOutFile As String = Path.GetTempPath() & Tempfilename
'// create the full-path name
'//
'// Second step: we have the file name.
'// Now we need to get the actual raw
'// data for the attached file and copy it to disk so we work on it.
'//
'// get the actual raw file into memory
Dim msInput As IO.MemoryStream = CType(e.Data.GetData("FileContents", True), IO.MemoryStream) 'This returns nothing for an Email
If msInput Is Nothing = False Then
'// allocate enough bytes to hold the raw date
Dim aryFileBytes(CType(msInput.Length, Int32)) As Byte
'// set starting position at first byte and read in the raw data
msInput.Position = 0
msInput.Read(aryFileBytes, 0, CType(msInput.Length, Int32))
'// create a file and save the raw zip file to it
Dim fsOutput As IO.FileStream = New IO.FileStream(strOutFile, IO.FileMode.Create) ';
fsOutput.Write(aryFileBytes, 0, aryFileBytes.Length)
fsOutput.Close() ' // close the file
Dim resultVersion = ClassFilehandle.Versionierung_Datei(strOutFile)
If resultVersion <> "" Then
strOutFile = resultVersion
End If
Dim finTemp As IO.FileInfo = New IO.FileInfo(strOutFile)
'// always good to make sure we actually created the file
If (finTemp.Exists = True) Then
ReDim Preserve files_dropped(0)
files_dropped(0) = "|OUTLOOK_ATTACHMENT|" & strOutFile
LOGGER.Info(">> Drop an Attachment - File: " & strOutFile)
Return True
Else
LOGGER.Info(">> Attachment File from Outlook could not be created")
End If
End If
End If
If e.Data.GetDataPresent("FileGroupDescriptor") Then
Dim oApp
Try
oApp = New Outlook.Application()
Catch ex As Exception
MsgBox("Unexpected error in Initialisieren von Outlook-API:" & vbNewLine & ex.Message & vbNewLine & vbNewLine & "Evtl ist Outlook nicht in der dafür vorgesehenen For")
End Try
LOGGER.Info(">> Drop of msg")
'supports a drop of a Outlook message
Dim myobj As Object
For i As Integer = 1 To oApp.ActiveExplorer.Selection.Count
myobj = oApp.ActiveExplorer.Selection.Item(i)
Dim subj As String = myobj.Subject
If subj = "" Then
subj = "NO_SUBJECT"
End If
If subj.Contains("\") Then
subj = subj.Replace("\", "-")
End If
If subj.Contains("/") Then
subj = subj.Replace("/", "-")
End If
'Sonderzeichen entfernen
subj = ClassFilehandle.InvalidCharacters(subj)
'hardcode a destination path for testing
Dim strFile As String = IO.Path.Combine(Path.GetTempPath, subj + ".msg")
strFile = strFile.Replace("?", "")
strFile = strFile.Replace("!", "")
strFile = strFile.Replace("%", "")
strFile = strFile.Replace("$", "")
LOGGER.Info(">> Drop of msg - File:" & strFile)
Try
myobj.SaveAs(strFile)
Catch ex As Exception
MsgBox("Error in Save Email2Tempfile" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
ReDim Preserve files_dropped(i)
files_dropped(i) = "|OUTLOOK_MESSAGE|" & strFile
Next
Return True
'Drop eines Outlook Attachments
End If
Catch ex As Exception
MsgBox("Error in Drop-File" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
'Private Sub DragDrop_HandleTobit(e As DragEventArgs)
' If e.Data.GetDataPresent("#TobitMsgData") Then
' Dim Quellpfad As String = ""
' Dim Dateinamen As String()
' 'Quellpfad zu den David Dateien auslesen
' Using ms As MemoryStream = e.Data.GetData("#TobitMsgData")
' Dim bytes As Byte() = ms.ToArray()
' Dim n As Integer = 0
' Dim c As Char
' Do While True
' c = Convert.ToChar(bytes(n))
' If bytes(n) <> 0 Then
' Quellpfad &= c
' n += 1
' Else
' Exit Do
' End If
' Loop
' End Using
' 'Dateinamen der gedroppten Emails auslesen
' Using ms As MemoryStream = e.Data.GetData("FileGroupDescriptor")
' 'Header sind 4B
' 'Jeder Datensatz ist 332B
' 'Bei Index 72 des Datensatzes beginnt das "Dateiname.eml"
' Dim bytes As Byte() = ms.ToArray()
' ReDim Dateinamen(Int(bytes.Count / 332) - 1)
' ' Array mit so vielen Elementen wie Datensätze im FileGroupDescriptor sind
' Dim AnzahlMails As Integer = bytes(0)
' Dim Dateiname As String
' Dim n As Integer
' For i = 0 To AnzahlMails - 1
' Dateiname = ""
' n = 0
' Do While True
' 'Solange die Bytes auslesen, bis man einen vbNullChar liest
' If bytes(i * 332 + 4 + 72 + n) <> 0 Then
' Dateiname = Dateiname & Convert.ToChar(bytes(i * 332 + 4 + 72 + n))
' n += 1
' Else
' Exit Do
' End If
' Loop
' Dateinamen(i) = Dateiname
' Next
' End Using
' Using EntryDataEx As MemoryStream = e.Data.GetData("#TobitEntryDataEx")
' Dim bytes As Byte() = EntryDataEx.ToArray()
' 'Die Größe des Headers steht im ersten Byte
' Dim HeadExSize As Integer = bytes(0)
' 'Die Anzahl der Datensätze steht im 8. - 11. Byte
' Dim nCountEntries As Integer = BitConverter.ToInt32(bytes, 8)
' Dim nPositions(nCountEntries - 1) As Integer
' For i = 0 To nCountEntries - 1
' 'Datensätze in der #TobitEntryDataEx sind 269 Byte groß.
' 'In den ersten 4 Bytes steht die QID aus der archive.dat
' nPositions(i) = BitConverter.ToInt32(bytes, HeadExSize + i * 269)
' Next
' Using fs As New FileStream(Quellpfad & "\archive.dat", FileMode.Open, FileAccess.Read)
' 'archive.dat als MemoryStream kopieren
' Using ms As New MemoryStream
' fs.CopyTo(ms)
' 'MemoryStream in ein Byte-Array konvertieren
' Dim archiveBytes As Byte() = ms.ToArray()
' 'Datensätze in der archive.dat sind 430 Byte groß
' For i = 16 To archiveBytes.Length - 1 Step 430
' 'Das 17.-20. Byte ist die QID die wir suchen
' Dim QID As Integer = BitConverter.ToInt32(archiveBytes, i)
' 'Wenn die QID übereinstimmt mit einer der David-Mails, dann lies den Dateinamen im Archiv aus
' If nPositions.Contains(QID) Then
' 'Der Index der QID (0, ..., nCountEntries - 1)
' Dim nPosIndex As Integer = -1
' For j = 0 To nPositions.Length - 1
' If QID = nPositions(j) Then
' nPosIndex = j
' Exit For
' End If
' Next
' 'Alle Bytes ab dem 17. bis zum Ende des Datensatzes aus der archive.bat auslesen und als String konvertieren
' Dim byteString As String = ""
' For j = 0 To 429 - 17
' byteString &= Convert.ToChar(archiveBytes(i + j))
' Next
' 'Index der Id herausfinden (Index des Quellpfads im byteString + Länge des Quellpfads + 1 "\")
' Dim IdIndex As Integer = byteString.IndexOf(Quellpfad, StringComparison.OrdinalIgnoreCase) + Quellpfad.Length + 1
' 'Die Id sind dann die 8 Zeichen ab dem IdIndex
' Dim Id As String = byteString.Substring(IdIndex, 8)
' 'EML speichern
' DavidEmlSpeichern(Quellpfad, Dateinamen(nPosIndex), QID, Id)
' End If
' Next
' End Using
' End Using
' End Using
' End If
'End Sub
'Private Sub DavidEmlSpeichern(ArchivePfad As String, Dateiname As String, ID As String, FaxID As String)
' Dim oApp As DavidAPIClass
' Dim oAcc As Account
' Dim oArchive As Archive
' Dim oMessageItems As MessageItems
' Dim oMailItem As MailItem
' oApp = New DavidAPIClass()
' oApp.LoginOptions = DvLoginOptions.DvLoginForceAsyncDuplicate
' oAcc = oApp.Logon("DavidServer", "", "", "", "", "NOAUTH")
' oArchive = oAcc.ArchiveFromID(ArchivePfad)
' If FaxID.First() = "M" Then
' 'Faxe beginnen mit M
' 'Bei Faxen kann man einfach die .001 Datei kopieren und als TIF speichern
' File.Copy(ArchivePfad & "\" & FaxID & ".001", "C:\Temp\" & Dateiname, True)
' ListeAktualisieren()
' ElseIf FaxID.First() = "I" Then
' 'Emails beginnen mit I
' 'Bei Emails muss man die DVEmlFromMailItem mit dem richtigen oMailItem aufrufen
' oMessageItems = oArchive.MailItems
' For Each oMailItem In oMessageItems
' If oMailItem._ID = ID Then
' Dim fileName As String = Space(260)
' If DVEmlFromMailItem(oMailItem, fileName) <> 0 Then
' fileName = Trim(fileName)
' fileName = fileName.Substring(0, fileName.Length - 1)
' File.Copy(fileName, "C:\Temp\" & Dateiname, True)
' ListeAktualisieren()
' End If
' Exit For
' End If
' Next
' End If
'End Sub
End Class

View File

@ -0,0 +1,390 @@
Imports System.IO
Imports System.Guid
Imports System.Text.RegularExpressions
Imports Limilabs.Mail
Imports DigitalData.Modules.Base
Imports DigitalData.Modules.Logging
Public Class ClassFileHandler
Inherits BaseClass
Public Sub New(pLogConfig As LogConfig)
MyBase.New(pLogConfig)
End Sub
Public Property TempFiles As New List(Of String)
Private Function GetTempPath(pSourceFilePath As String, pNewFileName As String, pSubfolder As String) As String
Try
Dim oTempDirectory = Path.GetTempPath()
Dim oTempSubDirectory As String = Path.Combine(oTempDirectory, pSubfolder)
' Try to create a subdirectory for all temp files so it will be easier to clean up
' these files by just deleting the whole fucking folder. 🤬
If Not Directory.Exists(oTempSubDirectory) Then
Try
Directory.CreateDirectory(oTempSubDirectory)
Catch ex As Exception
Logger.Error(ex)
' We could not create a subfolder
' Set the final directory to the default temp
oTempSubDirectory = oTempDirectory
End Try
End If
' Copy the file to the new location
Dim oNewPath = Path.Combine(oTempSubDirectory, pNewFileName)
File.Copy(pSourceFilePath, oNewPath)
Return oNewPath
Catch ex As Exception
Return Nothing
End Try
End Function
Public Sub Clear_Tempfiles()
For Each oFile In TempFiles
Try
System.IO.File.Delete(oFile)
Catch ex As Exception
Logger.Error(ex)
End Try
Next
TempFiles.Clear()
End Sub
Public Function Decide_FileHandle(pFilepath As String, pHandletype As String) As Boolean
Try
Logger.Info($"Decide_FileHandle - pFilepath: {pFilepath} - pHandletype: {pHandletype}")
''TODO: Before doing anything, clean the filename
'Dim oFilename = IO.Path.GetFileName(pFilepath)
'Dim oCleanFileName = Utils.RemoveInvalidCharacters(oFilename)
'Dim oTempDirectory = IO.Path.GetTempPath()
'Dim oTempFilePath = IO.Path.Combine(oTempDirectory, oCleanFileName)
'Try
' TEMP_FILES.Add(oTempFilePath)
' LOGGER.Debug("Copying file")
' LOGGER.Debug(pFilepath)
' LOGGER.Debug(oTempFilePath)
' IO.File.Copy(pFilepath, oTempFilePath, True)
'Catch ex As Exception
' LOGGER.Error(ex)
' Throw ex
'End Try
Dim oTempFilePath = pFilepath
Dim oInboxRegex As New Regex("\.INBOX\d+$")
If oInboxRegex.IsMatch(oTempFilePath) Then
Logger.Info("Renaming INBOX file to EML")
Try
Dim oInfo As New FileInfo(oTempFilePath)
Logger.Info("Old Name: {0}", oInfo.Name)
Dim oNewName = $"{oInfo.Name}.eml"
Logger.Info("New Name: {0}", oNewName)
Dim oTempDirectory = IO.Path.GetTempPath()
Dim oNewPath = IO.Path.Combine(oTempDirectory, oNewName)
IO.File.Copy(oInfo.FullName, oNewPath)
'TEMP_FILES.Add(oNewPath)
TempFiles.Add(oNewPath)
oTempFilePath = oNewPath
Catch ex As Exception
Logger.Error(ex)
End Try
End If
If oTempFilePath.ToUpper.EndsWith(".MSG") Or oTempFilePath.ToUpper.EndsWith(".EML") Then
CURRENT_MESSAGEID = ""
Dim oMail As IMail = EMAIL.Load_Email(oTempFilePath)
If oMail.Attachments.Count > 0 Then
Dim oTitle As String
Dim oMessage As String
If USER_LANGUAGE = "de-DE" Then
oTitle = "Nachfrage zur Indexierung:"
oMessage = "Achtung: Die Email enthält Anhänge!" & vbNewLine & "Wollen Sie die Anhänge separat indexieren und herauslösen?"
Else
oTitle = "Question about Indexing:"
oMessage = "Attention: This Email contains Attachments!" & vbNewLine & "Do you want to extract the attachments and index them seperately?"
End If
Dim oResult As DialogResult
' Weird hack to force messagebox to be topmost
' https://stackoverflow.com/questions/1220882/keep-messagebox-show-on-top-of-other-application-using-c-sharp
oResult = MessageBox.Show(oMessage, oTitle, MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly)
If oResult = MsgBoxResult.Yes Then
Dim oIsFolderWatch = pHandletype.StartsWith("|FW")
Return Save_EmailAndAttachmentsToDisk(oTempFilePath, oIsFolderWatch)
End If
End If
End If
If oTempFilePath.ToUpper.EndsWith(".LNK") Then
If USER_LANGUAGE = "de-DE" Then
MsgBox("Verknüpfungen können nicht abgelegt werden!", MsgBoxStyle.Critical, "fileFLOW")
Else
MsgBox("Shortcuts cannot be droppped!", MsgBoxStyle.Critical, "fileFLOW")
End If
Return False
End If
Return Insert_GI_File(oTempFilePath, pHandletype)
Catch ex As Exception
MsgBox("Unexpected Error in Decide_FileHandle: " & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
Private Function Save_EmailAndAttachmentsToDisk(pEmailFilePath As String, Optional pFolderWatch As Boolean = False) As Boolean
Try
Dim oMessageOnlyMarker As String = "|MSGONLY|"
Dim oExtractedAttachmentMarker As String = "|ATTMNTEXTRACTED|"
If pFolderWatch = True Then
oMessageOnlyMarker = "|FW_MSGONLY|"
oExtractedAttachmentMarker = "|FW_ATTMNTEXTRACTED|"
End If
Dim oSuccess As Boolean = False
Logger.Info("Converting file to Eml if needed: [{0}]", pEmailFilePath)
Dim oEmail As IMail = EMAIL.Load_Email(pEmailFilePath)
If oEmail.MessageID IsNot Nothing Then
CURRENT_MESSAGEID = oEmail.MessageID
Else
Logger.Info("Es konnte keine Message-ID gelesen werden. Eine GUID wird erzeugt!")
CURRENT_MESSAGEID = NewGuid.ToString()
End If
Dim oEmailFilePathWithoutAttachments = EMAIL.Remove_AttachmentsFromEmail(pEmailFilePath, "_excl_attachments")
TempFiles.Add(oEmailFilePathWithoutAttachments)
'TEMP_FILES.Add(oEmailFilePathWithoutAttachments)
If Insert_GI_File(oEmailFilePathWithoutAttachments, oMessageOnlyMarker) = True Then
oSuccess = True
Dim oAttachments As List(Of String) = EMAIL.Save_AttachmentsToDisk(pEmailFilePath)
Logger.Debug("Saved [{0}] attachments to disk.", oAttachments.Count)
For Each oAttachment In oAttachments
'TEMP_FILES.Add(oAttachment)
TempFiles.Add(oAttachment)
Logger.Debug("Saved attachment [{0}].", oAttachment)
oSuccess = Insert_GI_File(oAttachment, oExtractedAttachmentMarker)
If oSuccess = False Then
Logger.Warn("Saving attachment to disk failed: [{0}]", oAttachment)
Exit For
End If
Next
End If
Return oSuccess
Catch ex As Exception
Logger.Warn("Saving email to disk failed (Email_Decay)")
Logger.Error(ex)
Return False
End Try
End Function
'Private Shared Function Email_Decay(msgname As String, Optional FW As Boolean = False)
' Try
' Dim msgonly As String = "|MSGONLY|"
' Dim ATT_EXTR As String = "|ATTMNTEXTRACTED|"
' If FW = True Then
' msgonly = "|FW_MSGONLY|"
' ATT_EXTR = "|FW_ATTMNTEXTRACTED|"
' End If
' Dim erfolgreich As Boolean = False
' Dim msg As New MSG.Message(msgname)
' If msg.InternetMessageId IsNot Nothing Then
' CURRENT_MESSAGEID = msg.InternetMessageId
' Else
' LOGGER.Info("Es konnte keine Message-ID gelesen werden. Eine GUID wird erzeugt!")
' Dim sGUID As String
' sGUID = System.Guid.NewGuid.ToString()
' CURRENT_MESSAGEID = sGUID
' End If
' 'Nur die MSGDatei ablegen
' Dim tempfile As String = Path.Combine(Path.GetTempPath, Path.GetFileNameWithoutExtension(msgname) & "_excl_att.msg")
' If File.Exists(tempfile) Then
' File.Delete(tempfile)
' End If
' Dim _msgEXAtt As New Msg.Message(msgname)
' _msgEXAtt.Attachments.Clear()
' _msgEXAtt.Save(tempfile)
' 'Datei in Array zum Templöschen speichern
' TEMP_FILES.Add(tempfile)
' If Insert_GI_File(tempfile, msgonly) = True Then
' erfolgreich = True
' 'Hier nun die Anhänge herauslösen
' Dim _msg As New Msg.Message(msgname)
' Dim i1 As Integer = 1
' LOGGER.Info(">> Anzahl der Attachments: " & _msg.Attachments.Count)
' For Each attachment As Independentsoft.Msg.Attachment In _msg.Attachments
' If erfolgreich = False Then
' Exit For
' End If
' Dim attachment_name As String
' If attachment.LongFileName Is Nothing Then
' attachment_name = attachment.DisplayName
' Else
' attachment_name = attachment.LongFileName
' End If
' If attachment.EmbeddedMessage IsNot Nothing Then
' attachment_name = Utils.RemoveInvalidCharacters(attachment_name)
' tempfile = Path.Combine(Path.GetTempPath, attachment_name & ".msg")
' tempfile = ClassFilehandle.Versionierung_Datei(tempfile)
' If tempfile <> String.Empty Then
' Dim oMessage = attachment.EmbeddedMessage
' oMessage.IsEmbedded = False
' oMessage.Save(tempfile)
' TEMP_FILES.Add(tempfile)
' LOGGER.Info(">> Attachment (" & i1 & "):" & tempfile)
' erfolgreich = Insert_GI_File(tempfile, ATT_EXTR)
' i1 += 1
' End If
' ElseIf Not attachment_name.Contains("inline") Then
' 'Sonderzeichen entfernen
' attachment_name = Utils.RemoveInvalidCharacters(attachment_name)
' tempfile = Path.Combine(Path.GetTempPath, attachment_name)
' tempfile = ClassFilehandle.Versionierung_Datei(tempfile)
' If tempfile <> "" Then
' attachment.Save(tempfile)
' 'Datei in Array zum Templöschen speichern
' TEMP_FILES.Add(tempfile)
' LOGGER.Info(">> Attachment (" & i1 & "):" & tempfile)
' 'nun der Insert des Anhanges
' erfolgreich = Insert_GI_File(tempfile, ATT_EXTR)
' i1 += 1
' End If
' End If
' Next
' End If
' Return erfolgreich
' Catch ex As Exception
' MsgBox("Error in Email_Decay: " & ex.Message, MsgBoxStyle.Critical)
' End Try
'End Function
Private Function Insert_GI_File(filename As String, handleType As String)
Try
filename = filename.Replace("'", "''")
Dim oHash As String = String.Empty
If File.Exists(filename) Then
If (filename.ToUpper.EndsWith(".MSG") Or filename.ToUpper.EndsWith(".EML")) And (handleType = "|OUTLOOK_MESSAGE|" Or handleType = "|MSGONLY|") Then
oHash = FILESYSTEM.GetChecksumFromString(filename)
Else
oHash = FILESYSTEM.GetChecksum(filename)
End If
End If
Dim filename_only As String = Path.GetFileName(filename)
Dim ins As String = $"INSERT INTO TBGI_FILES_USER (FILENAME2WORK, USER@WORK, HANDLE_TYPE, FILENAME_ONLY, FILE_HASH) VALUES ('{filename}','{Environment.UserName}','{handleType}','{filename_only}', '{oHash}')"
Return DATABASE_ECM.ExecuteNonQuery(ins)
Catch ex As Exception
Return False
End Try
End Function
Public Function IsFileInUse(ByVal fullFilePath As String) As Boolean
' Gibt zurück, ob die übergebene Datei momentan exklusiv zu haben ist.
' Prüft, ob die angegeben Datei aktuell durch eine
' andere Anwendung in Benutzung ist
Dim ff As Integer = FreeFile()
If File.Exists(fullFilePath) Then
Try
' Versuchen, die Datei mit *exklusiven* Lese- und
' Schreibrechten zu öffnen
FileOpen(ff, fullFilePath, OpenMode.Binary, OpenAccess.ReadWrite, OpenShare.LockReadWrite)
Catch ex As Exception
' Ist ein Fehler aufgetreten, so wird nach außen hin generell
' davon ausgegangen, dass die Datei in Benutzung ist (obwohl
' auch andere Ursachen, etwa Rechteprobleme, möglich sind).
Logger.Info(">> FileInUse Message: " & ex.Message)
IsFileInUse = True
Finally
' Die eventuell geöffnete Datei schließen
FileClose(ff)
End Try
Return False
End If
End Function
Public Function Versionierung_Datei(Dateiname As String)
Dim extension
Dim _NewFileString
Try
Dim version As Integer = 1
Dim Stammname As String = Path.GetDirectoryName(Dateiname) & "\" & Path.GetFileNameWithoutExtension(Dateiname).Trim()
extension = Path.GetExtension(Dateiname)
Dim _neuername As String = Stammname
'Dim MoveFilename As String = DATEINAME.Replace(element.Value, "")
'Überprüfen ob File existiert
If File.Exists(_neuername & extension) = False Then
_NewFileString = _neuername
Else
Do While File.Exists(_neuername & extension)
version += 1
_neuername = Stammname & "~" & version
_NewFileString = _neuername
Loop
End If
Return _NewFileString & extension
Catch ex As Exception
Logger.Info(" - Error in versioning file - error: " & vbNewLine & ex.Message)
Logger.Error(ex)
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error in versioning file:")
Return ""
End Try
End Function
'' <summary>
''' Ersetzt alle nicht zulässigen Zeichen im angegebenen Dateinamen
''' </summary>
''' <param name="sFilename">Dateiname ohne Pfadangabe</param>
''' <param name="sChar">Ersatzzeichen für alle unzulässigen Zeichen
''' im Dateinamen</param>
Public Function CleanFilename(ByVal sFilename As String, Optional ByVal REPLACEChar As String = "") As String
Logger.Info(" >> Filename before CleanFilename: '" & sFilename & "'")
If sFilename.Contains(".\") Then
sFilename = sFilename.Replace(".\", "\")
End If
'If sFilename.Contains("'") Then
' sFilename = sFilename.Replace("'", "")
'End If
'If sFilename.Contains("..") Then
' sFilename = sFilename.Replace("..", ".")
'End If
' alle nicht zulässigen Zeichen ersetzen
sFilename = System.Text.RegularExpressions.Regex.Replace(sFilename, REGEX_CLEAN_FILENAME, REPLACEChar)
sFilename = System.Text.RegularExpressions.Regex.Replace(sFilename, "[\\/:*?""<>|\r\n]", "", System.Text.RegularExpressions.RegexOptions.Singleline)
'Dim oCleanFileName As String = String.Join(REPLACEChar, sFilename.Split(Path.GetInvalidFileNameChars()))
Dim oCleanFileName As New System.IO.FileInfo(System.Text.RegularExpressions.Regex.Replace(sFilename, String.Format("[{0}]", String.Join(String.Empty, Path.GetInvalidFileNameChars)), REPLACEChar))
Logger.Info(" >> Filename after CleanFilename: '" & sFilename & "'")
Return sFilename
End Function
End Class

View File

@ -1,211 +0,0 @@
Imports System.IO
Imports System.Text.RegularExpressions
Imports Independentsoft
Public Class ClassFilehandle
''' <summary>
''' Diese Funktion entfernt alle Zeichen aus dem übergebenen String
''' die in Dateinamen nicht erlaubt sind.
''' </summary>
''' <param name="Input">Der zu prüfende String</param>
''' <returns>String ohne nichterlaubte Zeichen</returns>
Public Shared Function InvalidCharacters(Input As String) As String
Dim replacement = ""
'Return System.Text.RegularExpressions.Regex.Replace(Input, "[\\/:*?""<>|\r\n]", "", System.Text.RegularExpressions.RegexOptions.Singleline)
Dim regexSearch = New String(Path.GetInvalidFileNameChars()) & New String(Path.GetInvalidPathChars())
Dim r = New Regex(String.Format("[{0}]", Regex.Escape(regexSearch)))
Return r.Replace(Input, replacement)
End Function
Public Shared Function Decide_FileHandle(filename As String, handletype As String)
Try
If filename.EndsWith(".msg") Then
CURRENT_MESSAGEID = ""
Dim _msg As New Msg.Message(filename)
If _msg.Attachments.Count > 0 Then
Dim result As MsgBoxResult
If USER_LANGUAGE = "de-DE" Then
result = MessageBox.Show("Achtung: Die Email enthält Anhänge!" & vbNewLine & "Wollen Sie die Anhänge separat indexieren und herauslösen?", "Nachfrage zur Indexierung:", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
Else
result = MessageBox.Show("Attention: This Email contains Attachments!" & vbNewLine & "Do you want to extract the attachments and index them seperately?", "Question about Indexing:", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
End If
If result = MsgBoxResult.Yes Then
If handletype.StartsWith("|FW") Then
Return Email_Decay(filename, True)
Else
Return Email_Decay(filename)
End If
End If
End If
End If
Return Insert_GI_File(filename, handletype)
Catch ex As Exception
MsgBox("Unexpected Error in Decide_FileHandle: " & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
Private Shared Function Email_Decay(msgname As String, Optional FW As Boolean = False)
Try
Dim msgonly As String = "|MSGONLY|"
Dim ATT_EXTR As String = "|ATTMNTEXTRACTED|"
If FW = True Then
msgonly = "|FW_MSGONLY|"
ATT_EXTR = "|FW_ATTMNTEXTRACTED|"
End If
Dim erfolgreich As Boolean = False
Dim msg As New Msg.Message(msgname)
If Not msg.InternetMessageId Is Nothing Then
CURRENT_MESSAGEID = msg.InternetMessageId
Else
LOGGER.Info(">> Email_Decay: Es konnte keine Message-ID gelesen werden. Eine GUID wird erzeugt!")
Dim sGUID As String
sGUID = System.Guid.NewGuid.ToString()
CURRENT_MESSAGEID = sGUID
End If
'Nur die MSGDatei ablegen
Dim tempfile As String = Path.Combine(Path.GetTempPath, Path.GetFileNameWithoutExtension(msgname) & "_excl_att.msg")
If File.Exists(tempfile) Then
File.Delete(tempfile)
End If
Dim _msgEXAtt As New Msg.Message(msgname)
_msgEXAtt.Attachments.Clear()
_msgEXAtt.Save(tempfile)
'Datei in Array zum Templöschen speichern
TEMP_FILES.Add(tempfile)
If Insert_GI_File(tempfile, msgonly) = True Then
erfolgreich = True
'Hier nun die Anhänge herauslösen
Dim _msg As New Msg.Message(msgname)
Dim i1 As Integer = 1
LOGGER.Info(">> Anzahl der Attachments: " & _msg.Attachments.Count)
For Each attachment As Independentsoft.Msg.Attachment In _msg.Attachments
If erfolgreich = False Then
Exit For
End If
Dim attachment_name As String
If attachment.LongFileName Is Nothing Then
attachment_name = attachment.DisplayName
Else
attachment_name = attachment.LongFileName
End If
If Not attachment_name.Contains("inline") Then
'Sonderzeichen entfernen
attachment_name = ClassFilehandle.InvalidCharacters(attachment_name)
tempfile = Path.Combine(Path.GetTempPath, attachment_name)
tempfile = ClassFilehandle.Versionierung_Datei(tempfile)
If tempfile <> "" Then
attachment.Save(tempfile)
'Datei in Array zum Templöschen speichern
TEMP_FILES.Add(tempfile)
LOGGER.Info(">> Attachment (" & i1 & "):" & tempfile)
'nun der Insert des Anhanges
erfolgreich = Insert_GI_File(tempfile, ATT_EXTR)
i1 += 1
End If
End If
Next
End If
Return erfolgreich
Catch ex As Exception
MsgBox("Error in Email_Decay: " & ex.Message, MsgBoxStyle.Critical)
End Try
End Function
Private Shared Function Insert_GI_File(filename As String, handleType As String)
Try
filename = filename.Replace("'", "''")
Dim filename_only As String = Path.GetFileName(filename)
Dim ins As String = "INSERT INTO TBGI_FILES_USER (FILENAME2WORK, USER@WORK,HANDLE_TYPE,FILENAME_ONLY) VALUES ('" & filename & "','" & Environment.UserName & "','" & handleType & "','" & filename_only & "')"
Return ClassDatabase.Execute_non_Query(ins, True)
Catch ex As Exception
Return False
End Try
End Function
Public Shared Function IsFileInUse(ByVal fullFilePath As String) As Boolean
' Gibt zurück, ob die übergebene Datei momentan exklusiv zu haben ist.
' Prüft, ob die angegeben Datei aktuell durch eine
' andere Anwendung in Benutzung ist
Dim ff As Integer = FreeFile()
If System.IO.File.Exists(fullFilePath) Then
Try
' Versuchen, die Datei mit *exklusiven* Lese- und
' Schreibrechten zu öffnen
FileOpen(ff, fullFilePath, OpenMode.Binary, OpenAccess.ReadWrite, OpenShare.LockReadWrite)
Catch ex As Exception
' Ist ein Fehler aufgetreten, so wird nach außen hin generell
' davon ausgegangen, dass die Datei in Benutzung ist (obwohl
' auch andere Ursachen, etwa Rechteprobleme, möglich sind).
LOGGER.Info(">> FileInUse Message: " & ex.Message)
IsFileInUse = True
Finally
' Die eventuell geöffnete Datei schließen
FileClose(ff)
End Try
Return False
End If
End Function
Public Shared Function Versionierung_Datei(Dateiname As String)
Dim extension
Dim _NewFileString
Try
Dim version As Integer = 1
Dim Stammname As String = Path.GetDirectoryName(Dateiname) & "\" & Path.GetFileNameWithoutExtension(Dateiname)
extension = Path.GetExtension(Dateiname)
Dim _neuername As String = Stammname
'Dim MoveFilename As String = DATEINAME.Replace(element.Value, "")
'Überprüfen ob File existiert
If File.Exists(_neuername & extension) = False Then
_NewFileString = _neuername
Else
Do While File.Exists(_neuername & extension)
version = version + 1
_neuername = Stammname & "~" & version
_NewFileString = _neuername
Loop
End If
Return _NewFileString & extension
Catch ex As Exception
LOGGER.Info(" - Error in versioning file - error: " & vbNewLine & ex.Message)
LOGGER.Error(ex.Message)
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error in versioning file:")
Return ""
End Try
End Function
'' <summary>
''' Ersetzt alle nicht zulässigen Zeichen im angegebenen Dateinamen
''' </summary>
''' <param name="sFilename">Dateiname ohne Pfadangabe</param>
''' <param name="sChar">Ersatzzeichen für alle unzulässigen Zeichen
''' im Dateinamen</param>
Public Shared Function CleanFilename(ByVal sFilename As String, Optional ByVal REPLACEChar As String = "") As String
LOGGER.Info(" >> Filename before CleanFilename: '" & sFilename & "'")
If sFilename.Contains(".\") Then
sFilename = sFilename.Replace(".\", "\")
End If
'If sFilename.Contains("'") Then
' sFilename = sFilename.Replace("'", "")
'End If
'If sFilename.Contains("..") Then
' sFilename = sFilename.Replace("..", ".")
'End If
' alle nicht zulässigen Zeichen ersetzen
sFilename = System.Text.RegularExpressions.Regex.Replace(sFilename, REGEX_CLEAN_FILENAME, REPLACEChar)
sFilename = System.Text.RegularExpressions.Regex.Replace(sFilename, "[\\/:*?""<>|\r\n]", "", System.Text.RegularExpressions.RegexOptions.Singleline)
'Dim oCleanFileName As String = String.Join(REPLACEChar, sFilename.Split(Path.GetInvalidFileNameChars()))
Dim oCleanFileName As New System.IO.FileInfo(System.Text.RegularExpressions.Regex.Replace(sFilename, String.Format("[{0}]", String.Join(String.Empty, Path.GetInvalidFileNameChars)), REPLACEChar))
LOGGER.Info(" >> Filename after CleanFilename: '" & sFilename & "'")
Return sFilename
End Function
End Class

View File

@ -1,11 +1,25 @@
Imports System.IO
Imports Independentsoft
Imports System.Threading
Imports DigitalData.Modules.Base
Imports DigitalData.Modules.Logging
Public Class ClassFolderWatcher
Public Shared FolderWatcher As FileSystemWatcher
Public Shared FolderWatcher_SCAN As FileSystemWatcher
Public Shared Function Restart_FolderWatch()
Inherits BaseClass
Public FolderWatcher As FileSystemWatcher
Public FolderWatcher_SCAN As FileSystemWatcher
Public Event FileCreated As EventHandler(Of FileSystemEventArgs)
Public Sub New(pLogConfig As LogConfig)
MyBase.New(pLogConfig)
End Sub
Private Sub OnCreated(source As Object, e As IO.FileSystemEventArgs)
RaiseEvent FileCreated(source, e)
End Sub
Public Sub Restart_FolderWatch()
Try
If FolderWatcher.EnableRaisingEvents = True Then
'Gestartet also Stoppen
@ -13,41 +27,40 @@ Public Class ClassFolderWatcher
FW_started = False
'FolderWatch neu instanzieren
FolderWatcher = New System.IO.FileSystemWatcher(CURRENT_FOLDERWATCH, "*.*")
LOGGER.Info(" >> FolderWatch neu instanziert")
Logger.Info(" >> FolderWatch neu instanziert")
FolderWatcher.IncludeSubdirectories = False
FolderWatcher.EnableRaisingEvents = True
AddHandler FolderWatcher.Created, AddressOf OnCreated
FW_started = True
'SaveConfigValue("FW_started", "True")
CONFIG.Config.FolderWatchStarted = True
CONFIG.Save()
End If
Catch ex As Exception
LOGGER.Info($"Error in Restart_FolderWatch: {ex.Message}")
LOGGER.Error(ex.Message)
Logger.Info($"Error in Restart_FolderWatch: {ex.Message}")
Logger.Error(ex)
End Try
End Function
Public Shared Function Restart_FolderWatchSCAN()
End Sub
Public Sub Restart_FolderWatchSCAN()
Try
If FolderWatcher_SCAN.EnableRaisingEvents = True Then
'Gestartet also Stoppen
FolderWatcher_SCAN.EnableRaisingEvents = False
'FolderWatch neu instanzieren
FolderWatcher_SCAN = New System.IO.FileSystemWatcher(CURRENT_SCAN_FOLDERWATCH, "*.*")
LOGGER.Info(" >> FolderWatchScan neu instanziert")
Logger.Info(" >> FolderWatchScan neu instanziert")
FolderWatcher_SCAN.IncludeSubdirectories = False
FolderWatcher_SCAN.EnableRaisingEvents = True
AddHandler FolderWatcher_SCAN.Created, AddressOf OnCreated
'SaveConfigValue("FWSCAN_started", "True")
CONFIG.Config.FolderWatchScanStarted = True
CONFIG.Save()
End If
Catch ex As Exception
LOGGER.Info($"Error in Restart_FolderWatchSCAN: {ex.Message}")
LOGGER.Error(ex.Message)
Logger.Info($"Error in Restart_FolderWatchSCAN: {ex.Message}")
Logger.Error(ex)
End Try
End Function
Public Shared Function StartStop_FolderWatch()
End Sub
Public Function StartStop_FolderWatch() As Integer
Try
If CURRENT_FOLDERWATCH = "" Then
'MsgBox("Bitte definieren Sie einen Überwachungsordner:", MsgBoxStyle.Exclamation)
@ -55,12 +68,11 @@ Public Class ClassFolderWatcher
End If
If FolderWatcher Is Nothing Then
FolderWatcher = New System.IO.FileSystemWatcher(CURRENT_FOLDERWATCH, "*.*")
LOGGER.Info(" >> FolderWatch Gestartet")
Logger.Info(" >> FolderWatch Gestartet")
FolderWatcher.IncludeSubdirectories = False
FolderWatcher.EnableRaisingEvents = True
AddHandler FolderWatcher.Created, AddressOf OnCreated
FW_started = True
'SaveConfigValue("FW_started", "True")
CONFIG.Config.FolderWatchStarted = True
CONFIG.Save()
Return 1
@ -69,12 +81,11 @@ Public Class ClassFolderWatcher
' Dim watcher As New FileSystemWatcher()
' watcher.Path = CURRENT_FOLDERWATCH
FolderWatcher = New System.IO.FileSystemWatcher(CURRENT_FOLDERWATCH, "*.*")
LOGGER.Info(" >> FolderWatch Gestartet")
Logger.Info(" >> FolderWatch Gestartet")
FolderWatcher.IncludeSubdirectories = False
FolderWatcher.EnableRaisingEvents = True
AddHandler FolderWatcher.Created, AddressOf OnCreated
FW_started = True
'SaveConfigValue("FW_started", "True")
CONFIG.Config.FolderWatchStarted = True
CONFIG.Save()
Return 1
@ -82,30 +93,17 @@ Public Class ClassFolderWatcher
'Gestartet also Stoppen
FolderWatcher.EnableRaisingEvents = False
FW_started = False
LOGGER.Info(" >> FolderWatch gestoppt")
'SaveConfigValue("FW_started", "False")
Logger.Info(" >> FolderWatch gestoppt")
CONFIG.Config.FolderWatchStarted = False
CONFIG.Save()
Return 0
End If
'If watcher.EnableRaisingEvents = False Then
' watcher = New System.IO.FileSystemWatcher(CURRENT_FOLDERWATCH, "*.*")
' LOGGER.Info(" - vFolderWatch.Gestartet")
' watcher.IncludeSubdirectories = False
' watcher.EnableRaisingEvents = True
' AddHandler watcher.Created, AddressOf OnCreated
' Return 1
'Else
' 'Gestartet also Stoppen
' watcher.EnableRaisingEvents = False
' Return 0
'End If
Catch ex As Exception
MsgBox("Error in StartStop_FolderWatch:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return 99
End Try
End Function
Public Shared Function StartStop_FolderWatchSCAN()
Public Function StartStop_FolderWatchSCAN() As Integer
Try
If CURRENT_SCAN_FOLDERWATCH = "" Then
If FolderWatcher.EnableRaisingEvents = True Then
@ -122,8 +120,8 @@ Public Class ClassFolderWatcher
End If
End If
If FolderWatcher_SCAN Is Nothing Then
FolderWatcher_SCAN = New System.IO.FileSystemWatcher(CURRENT_SCAN_FOLDERWATCH, "*.*")
LOGGER.Info(" >> FolderWatch Scan Gestartet")
FolderWatcher_SCAN = New FileSystemWatcher(CURRENT_SCAN_FOLDERWATCH, "*.*")
Logger.Info(" >> FolderWatch Scan Gestartet")
FolderWatcher_SCAN.IncludeSubdirectories = False
FolderWatcher_SCAN.EnableRaisingEvents = True
AddHandler FolderWatcher_SCAN.Created, AddressOf OnCreated
@ -134,8 +132,8 @@ Public Class ClassFolderWatcher
If FolderWatcher_SCAN.EnableRaisingEvents = False Then
' Dim watcher As New FileSystemWatcher()
' watcher.Path = CURRENT_FOLDERWATCH
FolderWatcher_SCAN = New System.IO.FileSystemWatcher(CURRENT_SCAN_FOLDERWATCH, "*.*")
LOGGER.Info(" >> FolderWatch Scan Gestartet")
FolderWatcher_SCAN = New FileSystemWatcher(CURRENT_SCAN_FOLDERWATCH, "*.*")
Logger.Info(" >> FolderWatch Scan Gestartet")
FolderWatcher_SCAN.IncludeSubdirectories = False
FolderWatcher_SCAN.EnableRaisingEvents = True
AddHandler FolderWatcher_SCAN.Created, AddressOf OnCreated
@ -145,8 +143,7 @@ Public Class ClassFolderWatcher
Else
'Gestartet also Stoppen
FolderWatcher_SCAN.EnableRaisingEvents = False
LOGGER.Info(" >> FolderWatch Scan gestoppt")
'SaveConfigValue("FWSCAN_started", "False")
Logger.Info(" >> FolderWatch Scan gestoppt")
CONFIG.Config.FolderWatchScanStarted = False
CONFIG.Save()
Return 0
@ -157,12 +154,12 @@ Public Class ClassFolderWatcher
Return 99
End Try
End Function
Public Shared Function Stop_FWSCAN()
Public Function Stop_FWSCAN() As Boolean
If FolderWatcher.EnableRaisingEvents = True Then
'Gestartet also Stoppen
FolderWatcher.EnableRaisingEvents = False
FW_started = False
LOGGER.Info(" >> FolderWatch gestoppt")
Logger.Info(" >> FolderWatch gestoppt")
'SaveConfigValue("FW_started", "False")
CONFIG.Config.FolderWatchStarted = True
CONFIG.Save()
@ -171,38 +168,31 @@ Public Class ClassFolderWatcher
Return False
End If
End Function
Private Shared Sub OnCreated(source As Object, e As FileSystemEventArgs)
If ClassDatabase.DatabaseConnectionTimeout = True Then
LOGGER.Info(">> File handling aborted because of database timeout error!")
Exit Sub
End If
'Private Sub OnCreated(source As Object, e As FileSystemEventArgs)
' Try
' For Each row As DataRow In DTEXCLUDE_FILES.Rows
' Dim content As String = row.Item(0).ToString.ToLower
' If e.FullPath.ToLower.Contains(content) Then
' Exit Sub
' End If
' Next
Try
For Each row As DataRow In DTEXCLUDE_FILES.Rows
Dim content As String = row.Item(0).ToString.ToLower
If e.FullPath.ToLower.Contains(content) Then
Exit Sub
End If
Next
' Dim oHandleType As String
' If e.FullPath.ToLower.EndsWith(".msg") Then
' oHandleType = "|FW_OUTLOOK_MESSAGE|"
' Else
' oHandleType = "|FW_SIMPLEINDEXER|"
' End If
' 'Die Datei übergeben
' Logger.Info(">> OnCreated-File:" & e.FullPath)
Dim handleType As String
If e.FullPath.ToLower.EndsWith(".msg") Then
handleType = "|FW_OUTLOOK_MESSAGE|"
Else
handleType = "|FW_SIMPLEINDEXER|"
End If
'Die Datei übergeben
LOGGER.Info(">> OnCreated-File:" & e.FullPath)
If ClassIndexFunctions.FileExistsinDropTable(e.FullPath) = False Then
ClassFilehandle.Decide_FileHandle(e.FullPath, handleType)
Else
LOGGER.Info(">> Folderwatcher: File already exists:" & e.FullPath)
End If
' If ClassIndexFunctions.CheckDuplicateFiles(e.FullPath, "FolderWatch/Scan") Then
' FileHandler.Decide_FileHandle(e.FullPath, oHandleType)
' End If
' Catch ex As Exception
' MsgBox(ex.Message, MsgBoxStyle.Critical, "Error in folder_watch_Created")
' End Try
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error in folder_watch_Created")
End Try
End Sub
'End Sub
End Class

View File

@ -1,74 +0,0 @@
Imports System.Text.RegularExpressions
Public Class ClassFormFunctions
Public Shared Function GetConnectionString(id As Integer)
Dim connectionString As String = ""
Try
'Me.TBCONNECTIONTableAdapter.FillByID(Me.DD_DMSLiteDataSet.TBCONNECTION, id)
Dim DTConnection As DataTable = ClassDatabase.Return_Datatable("SELECT * FROM TBDD_CONNECTION WHERE GUID = " & id)
If DTConnection.Rows.Count = 1 Then
Dim CSType = DTConnection.Rows(0).Item("SQL_PROVIDER").ToString.ToUpper
Select Case CSType
Case "MS-SQL".ToUpper
If DTConnection.Rows(0).Item("USERNAME").ToString.ToLower = "winauth" Then
connectionString = "Data Source=" & DTConnection.Rows(0).Item("SERVER") & ";Initial Catalog= " & DTConnection.Rows(0).Item("DATENBANK") & ";Trusted_Connection=True;"
Else
connectionString = "Data Source=" & DTConnection.Rows(0).Item("SERVER") & ";Initial Catalog= " & DTConnection.Rows(0).Item("DATENBANK") & ";User Id=" & DTConnection.Rows(0).Item("USERNAME") & ";Password=" & DTConnection.Rows(0).Item("PASSWORD") & ";"
End If
Case "MS-SQLServer".ToUpper
If DTConnection.Rows(0).Item("USERNAME").ToString.ToLower = "winauth" Then
connectionString = "Data Source=" & DTConnection.Rows(0).Item("SERVER") & ";Initial Catalog= " & DTConnection.Rows(0).Item("DATENBANK") & ";Trusted_Connection=True;"
Else
connectionString = "Data Source=" & DTConnection.Rows(0).Item("SERVER") & ";Initial Catalog= " & DTConnection.Rows(0).Item("DATENBANK") & ";User Id=" & DTConnection.Rows(0).Item("USERNAME") & ";Password=" & DTConnection.Rows(0).Item("PASSWORD") & ";"
End If
Case "Oracle".ToUpper
If DTConnection.Rows(0).Item("BEMERKUNG").ToString.Contains("without tnsnames") Then
connectionString = "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=" & DTConnection.Rows(0).Item("SERVER") & ")(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=" &
DTConnection.Rows(0).Item("DATENBANK") & ")));User Id=" & DTConnection.Rows(0).Item("USERNAME") & ";Password=" & DTConnection.Rows(0).Item("PASSWORD") & ";"
Else
connectionString = "Data Source=" & DTConnection.Rows(0).Item("SERVER") & ";Persist Security Info=True;User Id=" & DTConnection.Rows(0).Item("USERNAME") & ";Password=" & DTConnection.Rows(0).Item("PASSWORD") & ";Unicode=True"
End If
'Dim conn As New OracleConnectionStringBuilder
'If chkOR_ohne_TNS.Checked Then
' connstr = "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=" & SERVERTextBox.Text & ")(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=" & _
' DATENBANKTextBox.Text & ")));User Id=" & USERNAMETextBox.Text & ";Password=" & PASSWORDTextBox.Text & ";"
'Else
' conn.DataSource = DATENBANKTextBox.Text
' conn.UserID = USERNAMETextBox.Text
' conn.Password = PASSWORDTextBox.Text
' conn.PersistSecurityInfo = True
' conn.ConnectionTimeout = 120
' connstr = conn.ConnectionString
'End If
'Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;Integrated Security=no;
Case Else
LOGGER.Info(" - ConnectionType not integrated")
MsgBox("ConnectionType not integrated", MsgBoxStyle.Critical, "Please check connection:")
End Select
End If
Catch ex As Exception
LOGGER.Info(" - Unexpected Error in GetConnectionString:" & vbNewLine & ex.Message)
LOGGER.Error(ex.message)
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error in GetConnectionString:")
End Try
Return connectionString
End Function
Public Shared Function CleanInput(strIn As String) As String
' Replace invalid characters with empty strings.
Try
Return Regex.Replace(strIn, "[^\w\.@-]", "")
' If we timeout when replacing invalid characters,
' we should return String.Empty.
Catch e As RegexMatchTimeoutException
Return String.Empty
End Try
End Function
End Class

View File

@ -1,65 +0,0 @@
Imports System.Text
Imports System.Text.RegularExpressions
Public Class ClassHelper
Public Shared Function encode_utf8(ByVal str As String) As String
Try
'supply True as the construction parameter to indicate
'that you wanted the class to emit BOM (Byte Order Mark)
'NOTE: this BOM value is the indicator of a UTF-8 string
Dim utf8Encoding As New System.Text.UTF8Encoding(True)
Dim encodedString() As Byte
encodedString = utf8Encoding.GetBytes(str)
LOGGER.Info(String.Format(" >> String {0} was encoded via utf8 to {1}", str, utf8Encoding.GetString(encodedString)))
Return utf8Encoding.GetString(encodedString)
Catch ex As Exception
LOGGER.Info("Unexpected error in encode_utf8: " & ex.Message)
LOGGER.Error(ex.message)
Return Nothing
End Try
End Function
Public Shared Function StringAsUtf8Bytes(ByVal strData As String) As Byte()
Try
Dim bytes() As Byte
' get unicode string as bytes
bytes = Encoding.UTF8.GetBytes(strData)
' return byte data
Return bytes
Catch ex As Exception
LOGGER.Info("Unexpected error in StringAsUtf8Bytes: " & ex.Message)
LOGGER.Error(ex.message)
Return Nothing
End Try
End Function
Public Shared Function CheckSpecialSigns(ByVal str As String)
Try
Dim pattern As String = "[!""#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~\s]"
Dim matches As MatchCollection = Regex.Matches(str, pattern)
Return matches.Count
Catch ex As Exception
LOGGER.Info("Unexpected error in CheckSpecialSigns: " & ex.Message)
LOGGER.Error(ex.message)
Return 0
End Try
End Function
Public Shared Sub Refresh_RegexTable()
CURRENT_DT_REGEX = ClassDatabase.Return_Datatable("SELECT * FROM TBGI_FUNCTION_REGEX")
End Sub
''' <summary>
''' Überprüft einen Wert auf verschiedene Arten von "Null" und gibt einen Standard-Wert zurück, wenn der Wert "Null" ist.
''' </summary>
''' <param name="value">Der zu überprüfende Wert</param>
''' <param name="defaultValue">Der Standard Wert</param>
''' <returns>value oder wenn dieser "Null" ist, defaultValue</returns>
Public Shared Function NotNull(Of T)(ByVal value As T, ByVal defaultValue As T) As T
If IsNothing(value) OrElse String.IsNullOrEmpty(value.ToString) OrElse IsDBNull(value) Then
Return defaultValue
Else
Return value
End If
End Function
End Class

View File

@ -1,341 +0,0 @@
Imports System.IO
Imports System.Text
Public Class ClassHotkey_Windream
Private Declare Function GetForegroundWindow Lib "user32" Alias "GetForegroundWindow" () As IntPtr
Private Declare Auto Function GetWindowText Lib "user32" (ByVal hWnd As System.IntPtr, ByVal lpString As System.Text.StringBuilder, ByVal cch As Integer) As Integer
Private Declare Function ShowWindow Lib "user32" (ByVal handle As IntPtr, ByVal nCmdShow As Integer) As Integer
Private Declare Function SetForeGroundWindow Lib "user32" (ByVal Hwnd As IntPtr) As Integer
Private makel As String
Public Shared Function GetCaption() As String
Dim Caption As New System.Text.StringBuilder(256)
Dim hWnd As IntPtr = GetForegroundWindow()
GetWindowText(hWnd, Caption, Caption.Capacity)
Return Caption.ToString()
End Function
Private Shared fileContents As String
Private Shared Function IsRelevantWindow(windowname As String, myControlNo As Integer, Value As String)
Try
Dim Control_Sequence As Integer = 0
Dim enumerator1 As New ClassWindowAPI
'Jedes Formularwindow durchlaufen
For Each top As ClassWindowAPI.ApiWindow In enumerator1.GetTopLevelWindows()
LOGGER.Info(" ... top-window Name: " & top.MainWindowTitle)
If top.MainWindowTitle.Contains(windowname) Or top.MainWindowTitle.ToLower = windowname.ToLower Then
Control_Sequence = 0
For Each vControl As ClassWindowAPI.ApiWindow In enumerator1.GetChildWindows(top.hWnd)
If vControl.MainWindowTitle <> "" Then
If Control_Sequence = myControlNo Then
If Value.ToUpper = vControl.MainWindowTitle.ToUpper Then
Return True
Else
LOGGER.Info(" ... Control-Sequence: " & myControlNo.ToString & " entspricht nicht dem Matchvalue.")
Return False
End If
End If
End If
Control_Sequence += 1
Next vControl
Return False
End If
Next top
Catch ex As Exception
MsgBox("Error in IsRelevantWindowt:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
LOGGER.Info(">> Error in IsRelevantWindow:" & ex.Message)
Return False
End Try
End Function
Private Shared Function Get_windowContent(windowname As String, myControlID As Integer)
Try
Dim Control_Sequence As Integer = 0
Dim enumerator1 As New ClassWindowAPI
'Jedes Formularwindow durchlaufen
For Each top As ClassWindowAPI.ApiWindow In enumerator1.GetTopLevelWindows()
If top.MainWindowTitle.Contains(windowname) Or top.MainWindowTitle.ToLower = windowname.ToLower Then
Control_Sequence = 0
For Each vControl As ClassWindowAPI.ApiWindow In enumerator1.GetChildWindows(top.hWnd)
If vControl.MainWindowTitle <> "" Then
If Control_Sequence = myControlID Then
LOGGER.Info(" ... Control-Sequence: " & myControlID.ToString & " - Gelesener Wert: " & vControl.MainWindowTitle)
Return vControl.MainWindowTitle.ToString
End If
End If
Control_Sequence += 1
Next vControl
Return Nothing
End If
Next top
Catch ex As Exception
MsgBox("Error in Get_windowContent:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
LOGGER.Info(">> Error in Get_windowContent:" & ex.Message)
Return Nothing
End Try
End Function
'Fenster position ermitteln/auslesen
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer
Private Declare Function GetWindowRect Lib "user32.dll" (ByVal hWnd As IntPtr, ByRef lpRect As RECT) As Int32
Private Structure RECT
Dim Left As Integer
Dim Top As Integer
Dim Right As Integer
Dim Bottom As Integer
End Structure
Private Shared Sub GetWindowClientSize(ByVal hWnd As Long)
Dim rc As RECT
GetWindowRect(hWnd, rc)
'Left = rc.Right - rc.Left
'Height = rc.Bottom - rc.Top
End Sub
Public Shared Function RUN_WD_SEARCH(HK_USR_PROFILE_ID As Integer)
Try
LOGGER.Info(" ...RUN_WD_SEARCH with HK_USR_PROFILE_ID '" & HK_USR_PROFILE_ID & "'")
Dim DTWD As DataTable
Dim Objecttype As String
Dim windowname As String
Dim HKPROFILE_ID As Integer
Dim type As String
Dim _sql = "SELECT WD_SEARCH,HKPROFILE_ID FROM TBHOTKEY_USER_PROFILE WHERE GUID = " & HK_USR_PROFILE_ID
DTWD = ClassDatabase.Return_Datatable(_sql)
If DTWD.Rows.Count = 0 Then
LOGGER.Info(" ...KEINE USER_PROFILES hinterlegt")
Return "Uncexpected Error in Hotkey - Check Log for Hotkey"
End If
If DTWD.Rows.Count > 1 Then
LOGGER.Info("Das Ergebnis von '" & _sql & "' liefert mehr als eine Zeile zurück!")
Return "Uncexpected Error in Hotkey - Check Log for Hotkey"
End If
If DTWD.Rows(0).Item(0) = "" Then
LOGGER.Info(">> KEINE Windream-Suche hinterlegt!")
Return "Error in Hotkey - KEINE Windream-Suche hinterlegt - Check Logkey"
End If
Dim BaseSearch = DTWD.Rows(0).Item(0)
Dim extension = Path.GetExtension(BaseSearch)
HKPROFILE_ID = DTWD.Rows(0).Item("HKPROFILE_ID")
Dim windream_temp_search As String = ""
If IO.File.Exists(BaseSearch) = False Then
LOGGER.Info("Die Windream-Suche existiert nicht oder ist nicht zugreifbar!")
If USER_LANGUAGE = "de-DE" Then
MsgBox("Die Windream-Suche existiert nicht oder ist nicht zugreifbar!", MsgBoxStyle.Critical)
Else
MsgBox("Windream-Search does not exist or is not accessible", MsgBoxStyle.Critical)
End If
Return Nothing
End If
windowname = ClassDatabase.Execute_Scalar("SELECT WINDOW_NAME FROM TBHOTKEY_PROFILE WHERE GUID = " & HKPROFILE_ID, MyConnectionString, True)
type = ClassDatabase.Execute_Scalar("SELECT OBJECTTYPE FROM TBHOTKEY_PROFILE WHERE GUID = " & HKPROFILE_ID, MyConnectionString, True)
fileContents = ""
'Eine tempfile generieren
Dim tempFilename1 = My.Computer.FileSystem.GetTempFileName()
'Nur den Filenamen ohne Erweiterung
Dim tempName = Path.GetFileNameWithoutExtension(tempFilename1)
'tempfile löschen
If My.Computer.FileSystem.FileExists(tempFilename1) Then
My.Computer.FileSystem.DeleteFile(tempFilename1)
End If
Dim temppath = Path.GetTempPath
Dim EncodingFormat As Encoding
Dim WDUnicode = ClassDatabase.Execute_Scalar("SELECT WD_UNICODE FROM TBGI_CONFIGURATION WHERE GUID = 1", MyConnectionString, True)
If WDUnicode = True Then
EncodingFormat = Encoding.GetEncoding(1252) '1252
LOGGER.Info(" ...Unicode is used (Encoding.GetEncoding(1252))")
Else
LOGGER.Info(" ...UTF8 (Encoding.GetEncoding(65001))")
EncodingFormat = Encoding.GetEncoding(65001)
End If
Dim DT_HOOKS As DataTable = ClassDatabase.Return_Datatable("select * from TBHOTKEY_WINDOW_HOOK where HKPROFILE_ID = " & HKPROFILE_ID, True)
If DT_HOOKS.Rows.Count > 0 Then
Dim RelevantWindow As Boolean = False
For Each row As DataRow In DT_HOOKS.Rows
RelevantWindow = IsRelevantWindow(windowname, row.Item("SEQUENCE_NUMBER"), row.Item("CONTROL_VALUE"))
If RelevantWindow = False Then
LOGGER.Info(" ...Not the relevant window")
Return "Not the Relevant window......"
End If
Next
End If
LOGGER.Info(" ...ReadAlltext: " & BaseSearch)
fileContents = My.Computer.FileSystem.ReadAllText(BaseSearch, EncodingFormat) ', System.Text.Encoding.Unicode
LOGGER.Info(" ...fileContents geladen")
fileContents = fileContents.Replace("Í", "Ö")
'Das Array für die PAtterns anpassen
_sql = "select * from TBHOTKEY_PATTERNS WHERE HKPROFILE_ID = " & HKPROFILE_ID
Dim DT_PATTERNS As DataTable = ClassDatabase.Return_Datatable(_sql, True)
If DT_PATTERNS.Rows.Count > 0 Then
Dim i As Integer = 0
For Each row As DataRow In DT_PATTERNS.Rows
If type = "COPYPASTE" Then
_sql = "select window_control from TBHOTKEY_PATTERNS where HKPROFILE_ID = " & HKPROFILE_ID
Dim copytype = ClassDatabase.Execute_Scalar(_sql, MyConnectionString, True)
Dim clipbrd
Dim theHandle As IntPtr = FindWindow(Nothing, CURRENT_FOCUSES_WINDOWNAME)
If theHandle <> IntPtr.Zero Then
Dim theForegroundWindow As Boolean = SetForeGroundWindow(theHandle)
If theForegroundWindow = True Then
Select Case copytype
Case "strgC"
' SetForeGroundWindow(HWND)
SendKeys.Send("^{c}") 'for Ctrl-C
Case "strA and strgC"
SendKeys.Send("^{A}")
'AppActivate(CURRENT_FOCUSES_WINDOWNAME)
SendKeys.Send("^{c}") 'for Ctrl-C
End Select
End If
End If
clipbrd = Clipboard.GetText
Console.WriteLine(clipbrd.ToString)
If Not clipbrd Is Nothing Then
If clipbrd <> "" Then
_sql = "select PATTERN_WDSEARCH from TBHOTKEY_PATTERNS where HKPROFILE_ID = " & HKPROFILE_ID
Dim _pattern = ClassDatabase.Execute_Scalar(_sql, MyConnectionString, True)
fileContents = fileContents.Replace(_pattern, clipbrd.ToString)
End If
End If
Else
LOGGER.Info(" ...Get Value for Control# '" & row.Item("SEQUENCE_NUMBER").ToString & "'")
Dim foundresult = Get_windowContent(windowname, row.Item("SEQUENCE_NUMBER").ToString)
If Not IsNothing(foundresult) Then
'Die Nachbearbeitungsschritte laden
Dim DTNB As DataTable = ClassDatabase.Return_Datatable("SELECT * FROM TBHOTKEY_PATTERNS_REWORK WHERE HKPATTERN_ID = " & row.Item("GUID") & " ORDER BY SEQUENCE")
If DTNB Is Nothing = False Then
If DTNB.Rows.Count > 0 Then
foundresult = ClassPostprocessing.Get_Nachbearbeitung_Wert(foundresult, DTNB)
End If
End If
End If
If Not IsNothing(foundresult) Then
If foundresult.ToString = "<" Or foundresult.ToString = ">" Then
LOGGER.Info(">> Hot Key received an irregular value.")
Return "Hotkey konnte nur einen irregulären Wert auswerten."
End If
LOGGER.Info(" ...fileContents.length: " & fileContents.Length)
LOGGER.Info(" ...Replace pattern '" & row.Item(2).ToString & "' with '" & foundresult & "'")
fileContents = fileContents.Replace(row.Item(2).ToString, foundresult)
LOGGER.Info(" ...fileContents.length: " & fileContents.Length)
Else
LOGGER.Info(">> Hot Key could not read any value.")
Return "Hotkey konnte keinen Wert auswerten - Evtl. ist das konfigurierte Fenster nicht geöffnet?"
End If
End If
Next
End If
Try
'Die windream File zusammensetzen
windream_temp_search = temppath & tempName & extension
Try
'Die File schreiben
My.Computer.FileSystem.WriteAllText(windream_temp_search, fileContents, False, EncodingFormat)
LOGGER.Info(" ...wrote Text to windream_temp_search: " & windream_temp_search)
' XML-Datei öffnen und laden
Dim Stream As New IO.StreamReader(CStr(windream_temp_search), EncodingFormat)
Dim Reader As New System.Xml.XmlTextReader(Stream)
' XML-Datei initialisieren
Dim xml As New System.Xml.XmlDocument()
' XML-Datei öffnen und laden
xml.Load(Reader)
Reader.Close()
xml.Save(windream_temp_search)
LOGGER.Info(" ...Xml Generiert: " & windream_temp_search)
Catch ex As Exception
LOGGER.Info("TempFile could not be created: " & ex.Message)
LOGGER.Error(ex.Message)
MsgBox(ex.Message, MsgBoxStyle.Critical, "Unexpected Error in Write XmlSearch:")
End Try
CURRENT_WD_TEMPSEARCH = windream_temp_search
TEMP_FILES.Add(CURRENT_WD_TEMPSEARCH)
Try
Dim myhWnd As IntPtr
Dim p As New Process()
p.StartInfo.FileName = windream_temp_search
If CONFIG.Config.WindreamSearchMaximized Then
p.StartInfo.WindowStyle = ProcessWindowStyle.Maximized
Else
p.StartInfo.WindowStyle = ProcessWindowStyle.Normal
End If
p.Start()
myhWnd = p.MainWindowHandle
Threading.Thread.Sleep(1000)
Dim rctMain As RECT
GetWindowRect(p.MainWindowHandle, rctMain)
If LogErrorsOnly = False Then
LOGGER.Info(" ...Top-Position: " & rctMain.Top.ToString)
LOGGER.Info(" ...Left-Position: " & rctMain.Left.ToString)
LOGGER.Info(" ...Right-Position: " & rctMain.Right.ToString)
LOGGER.Info(" ...Bottom-Position: " & rctMain.Bottom.ToString)
End If
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Unexpected error while executing windream-Search:")
LOGGER.Info("Unexpected error while executing search: " & ex.Message)
Return "Unexpected error while executing search"
End Try
Dim psList() As Process
Try
psList = Process.GetProcesses()
For Each p As Process In psList
Console.WriteLine(p.Id.ToString() + " " + p.ProcessName)
If p.ProcessName.Contains("indream.Find") Then
AppActivate(p.Id)
If CONFIG.Config.WindreamSearchMaximized = False Then
Dim rctMain As RECT
GetWindowRect(p.MainWindowHandle, rctMain)
If rctMain.Left = 0 Or rctMain.Right = 0 Then
ShowWindow(p.MainWindowHandle, 3) ' SW_MAXIMIZE
End If
End If
' SetForeGroundWindow( p.MainWindowHandle)
End If
Next p
Catch ex As Exception
LOGGER.Info("Unexpected error while Setting foreground: " & ex.Message)
LOGGER.Error(ex.Message)
End Try
Return ""
Catch ex As Exception
LOGGER.Info("Unexpected error in Create Search: " & ex.Message)
LOGGER.Error(ex.Message)
MsgBox("Error in Create Search:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return "Unexpected error in Create Search"
End Try
Catch ex As Exception
LOGGER.Info("Unexpected error in RUN_WD_SEARCH: " & ex.Message)
LOGGER.Error(ex.message)
MsgBox("Error in RUN_WD_SEARCH:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return "Unerwarteter Unexpected error in RUN_WD_SEARCH"
End Try
End Function
End Class

View File

@ -0,0 +1,241 @@
Public Class ClassIDBData
Public DTVWIDB_BE_ATTRIBUTE As DataTable
''' <summary>
''' Gets all indices by BusinessEntity.
''' </summary>
''' <param name="BusinessEntity">Title of Business Entity</param>
''' <returns>Array with all Indices</returns>
''' <remarks></remarks>
'''
Public Function Init()
Dim oSQL = $"SELECT * FROM VWIDB_BE_ATTRIBUTE"
'DTVWIDB_BE_ATTRIBUTE = ClassDatabase.Return_Datatable_CS(oSQL, CONNECTION_STRING_IDB)
DTVWIDB_BE_ATTRIBUTE = DATABASE_IDB.GetDatatable(oSQL)
Return True
End Function
Public IDBSystemIndices As List(Of String)
Public Function GetIndicesByBE(ByVal BusinessEntity As String) As String()
Try
Dim aNames(4) As String
aNames(0) = "ObjectID"
aNames(1) = "IDBCreatedWhen"
aNames(2) = "IDBCreatedWho"
aNames(3) = "IDBChangedWhen"
aNames(4) = "IDBChangedWho"
IDBSystemIndices = aNames.ToList
' Array für Indizes vorbereiten
Dim aIndexNames(DTVWIDB_BE_ATTRIBUTE.Rows.Count + 4) As String
Dim oCount As Integer = 0
aIndexNames(oCount) = "ObjectID"
oCount += 1
aIndexNames(oCount) = "IDBCreatedWhen"
oCount += 1
aIndexNames(oCount) = "IDBCreatedWho"
oCount += 1
aIndexNames(oCount) = "IDBChangedWhen"
oCount += 1
aIndexNames(oCount) = "IDBChangedWho"
For Each oRow As DataRow In DTVWIDB_BE_ATTRIBUTE.Rows
oCount += 1
aIndexNames(oCount) = oRow.Item("ATTR_TITLE")
Next
' Indexarray sortiert zurückgeben
Array.Sort(aIndexNames)
' Indexarray zurückgeben
Return aIndexNames
Catch ex As Exception
LOGGER.Error(ex)
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error getting the IDB Indicies")
Return Nothing
End Try
End Function
Public Function GetTypeOfIndex(ByVal indexname As String) As Integer
Try
For Each oRow As DataRow In DTVWIDB_BE_ATTRIBUTE.Rows
If oRow.Item("ATTR_TITLE") = indexname Then
Dim oType = oRow.Item("TYP_ID")
Return oType
End If
Next
Catch ex As Exception
LOGGER.Error(ex)
Return Nothing
End Try
End Function
Public Function GetVariableValue(oAttributeName As String, Optional oIDBTyp As Integer = 0, Optional FromIDB As Boolean = False) As Object
Try
Dim oSingleAttribute As Boolean = True
Select Case oIDBTyp
Case 8
oSingleAttribute = False
Case 9
oSingleAttribute = False
End Select
Dim oAttributeValue
If oSingleAttribute = True And IDB_DT_DOC_DATA.Rows.Count = 1 And FromIDB = False Then
Try
If oAttributeName = "IDBCreatedWhen" Then
oAttributeName = "ADDED_WHEN"
ElseIf oAttributeName = "IDBCreatedWho" Then
oAttributeName = "ADDED_WHO"
ElseIf oAttributeName = "IDBChangedWhen" Then
oAttributeName = "CHANGED_WHEN"
ElseIf oAttributeName = "IDBChangedWho" Then
oAttributeName = "CHANGED_WHO"
End If
oAttributeValue = IDB_DT_DOC_DATA.Rows(0).Item(oAttributeName)
Catch ex As Exception
LOGGER.Debug($"Error getting Attribute from IDB_DT_DOC_DATA: {ex.Message}")
End Try
End If
If Not IsNothing(oAttributeValue) Then
Return oAttributeValue
Else
LOGGER.Debug($"oAttributeValue for Attribute [{oAttributeName}] is so far nothing..Now trying FNIDB_PM_GET_VARIABLE_VALUE ")
End If
Dim oFNSQL = $"SELECT * FROM [dbo].[FNIDB_PM_GET_VARIABLE_VALUE] ({IDB_DOC_ID},'{oAttributeName}','{USER_LANGUAGE}',CONVERT(BIT,'{IDB_USES_WMFILESTORE}'))"
'oAttributeValue = ClassDatabase.Return_Datatable_CS(oFNSQL, CONNECTION_STRING_IDB)
oAttributeValue = DATABASE_IDB.GetDatatable(oFNSQL)
Dim odt As DataTable = oAttributeValue
If odt.Rows.Count = 1 Then
oAttributeValue = odt.Rows(0).Item(0)
End If
Return oAttributeValue
Catch ex As Exception
LOGGER.Error(ex)
Return Nothing
End Try
End Function
Public Function Delete_Term_Object_From_Metadata(oAttributeName As String, oTerm2Delete As String) As Object
Try
Dim oAttributeValue
Dim oID_IS_FOREIGN As Integer
oID_IS_FOREIGN = 0
If IDB_USES_WMFILESTORE Then
oID_IS_FOREIGN = 1
End If
Dim oDELSQL = $"EXEC PRIDB_DELETE_TERM_OBJECT_METADATA {IDB_DOC_ID},'{oAttributeName}','{oTerm2Delete}','{USER_USERNAME}','{USER_LANGUAGE}',{oID_IS_FOREIGN}"
'DATABASE_ECM.ExecuteNonQuery_ConStr(oDELSQL, CONNECTION_STRING_IDB)
DATABASE_IDB.ExecuteNonQuery(oDELSQL)
Catch ex As Exception
LOGGER.Error(ex)
Return Nothing
End Try
End Function
Public Function Delete_AttributeData(pIDB_OBJID As Int64, pAttributeName As String) As Object
Try
Dim oDELSQL = $"EXEC PRIDB_DELETE_ATTRIBUTE_DATA {pIDB_OBJID},'{pAttributeName}','{USER_USERNAME}'"
'DATABASE_ECM.ExecuteNonQuery_ConStr(oDELSQL, CONNECTION_STRING_IDB)
DATABASE_IDB.ExecuteNonQuery(oDELSQL)
Catch ex As Exception
LOGGER.Error(ex)
Return Nothing
End Try
End Function
Public Function SetVariableValue(oAttributeName As String, oNewValue As Object, Optional CheckDeleted As Boolean = False, Optional oIDBTyp As Integer = 0)
Try
Dim omytype = oNewValue.GetType.ToString
If omytype = "System.Data.DataTable" Then
Dim oDTMyNewValues As DataTable = oNewValue
Dim oOldAttributeResult
Dim oTypeOldResult
If CheckDeleted = True Then
oOldAttributeResult = GetVariableValue(oAttributeName, oIDBTyp)
oTypeOldResult = oOldAttributeResult.GetType.ToString
If oTypeOldResult = "System.Data.DataTable" Then
Dim myOldValues As DataTable = oOldAttributeResult
If myOldValues.Rows.Count > 1 Then
'now Checking whether the old row still remains in Vector? If not it will be deleted as it cannot be replaced in multivalues
For Each oOldValueRow As DataRow In myOldValues.Rows
Dim oExists As Boolean = False
For Each oNewValueRow As DataRow In oDTMyNewValues.Rows
Dim oInfo1 = $"Checking oldValue[{oOldValueRow.Item(0)}] vs NewValue [{oNewValueRow.Item(1)}]"
If oNewValueRow.Item(1).ToString.ToUpper = oOldValueRow.Item(0).ToString.ToUpper Then
oExists = True
Exit For
End If
Next
If oExists = False Then
Dim oInfo = $"Value [{oOldValueRow.Item(0)}] no longer existing in Vector-Attribute [{oAttributeName}] - will be deleted!"
LOGGER.Info(oInfo)
SetVariableValue(IDB_LOG_INDEX, oInfo)
Delete_Term_Object_From_Metadata(oAttributeName, oOldValueRow.Item(0))
End If
Next
End If
Else
If oDTMyNewValues.Rows.Count > 1 Then
Dim oExists As Boolean = False
For Each oNewValueRow As DataRow In oDTMyNewValues.Rows
Dim oInfo1 = $"Checking oldValue[{oOldAttributeResult}] vs NewValue [{oNewValueRow.Item(1)}]"
If oNewValueRow.Item(1).ToString.ToUpper = oOldAttributeResult.ToString.ToUpper Then
oExists = True
Exit For
End If
Next
If oExists = False Then
Dim oInfo2 = $"Value [{oOldAttributeResult}] no longer existing in Vector-Attribute [{oAttributeName}] - will be deleted!"
LOGGER.Info(oInfo2)
SetVariableValue(IDB_LOG_INDEX, oInfo2)
Delete_Term_Object_From_Metadata(oAttributeName, oOldAttributeResult)
End If
Else
Dim oInfo = $"Value [{oOldAttributeResult}] of Attribute [{oAttributeName}] obviously was updated during runtime - will be deleted!"
LOGGER.Info(oInfo)
SetVariableValue(IDB_LOG_INDEX, oInfo)
Delete_Term_Object_From_Metadata(oAttributeName, oOldAttributeResult)
End If
End If
End If
For Each oNewValueRow As DataRow In oDTMyNewValues.Rows
Dim oSuccess As Boolean = False
Dim oFNSQL = $"DECLARE @NEW_OBJ_MD_ID BIGINT " & vbNewLine & $"EXEC PRIDB_NEW_OBJ_DATA {IDB_DOC_ID},'{oAttributeName}','{USER_USERNAME}','{oNewValueRow.Item(1)}','{USER_LANGUAGE}',{IDB_DOC_ID},@OMD_ID = @NEW_OBJ_MD_ID OUTPUT"
'oSuccess = DATABASE_ECM.ExecuteNonQuery_ConStr(oFNSQL, CONNECTION_STRING_IDB)
oSuccess = DATABASE_IDB.ExecuteNonQuery(oFNSQL)
If oSuccess = False Then
Return False
End If
Next
Return True
Else
Dim oFNSQL = $"DECLARE @NEW_OBJ_MD_ID BIGINT " & vbNewLine & $"EXEC PRIDB_NEW_OBJ_DATA {IDB_DOC_ID},'{oAttributeName}','{USER_USERNAME}','{oNewValue}','{USER_LANGUAGE}',{IDB_DOC_ID},@OMD_ID = @NEW_OBJ_MD_ID OUTPUT"
'Return DATABASE_ECM.ExecuteNonQuery_ConStr(oFNSQL, CONNECTION_STRING_IDB)
Return DATABASE_IDB.ExecuteNonQuery(oFNSQL)
End If
Catch ex As Exception
LOGGER.Error(ex)
Return False
End Try
End Function
End Class

View File

@ -1,19 +1,91 @@

Imports System.IO
Imports DigitalData.GUIs.Common
Public Class ClassIndexFunctions
Public Shared Function FileExistsinDropTable(Filename As String)
Dim check As String
Public Shared Function FileExistsinDropTable(pFilename As String, pHandleType As String) As Date
Dim oSQL As String
Dim oHash As String
Try
If Filename.Contains("'") Then
Filename = Filename.Replace("'", "''")
If pFilename.Contains("'") Then
pFilename = pFilename.Replace("'", "''")
End If
check = "SELECT COUNT(*) FROM TBGI_FILES_USER WHERE UPPER(FILENAME2WORK) = UPPER('" & Filename & "') AND WORKED = 0"
Dim result = ClassDatabase.Execute_Scalar(check, MyConnectionString, True)
Return result
If pFilename.ToUpper.EndsWith(".MSG") And (pHandleType = "|OUTLOOK_MESSAGE|" Or pHandleType = "|MSGONLY|") Then
' MSG Files cannot be hashed based on filecontents, so we use the filename instead
oHash = FILESYSTEM.GetChecksumFromString(pFilename)
Else
' If file cannot be accessed, checksum cannot be generated
' In this case, the file should be treated as not yet existing
oHash = FILESYSTEM.GetChecksum(pFilename)
End If
If oHash Is Nothing Then
LOGGER.Warn("Checksum for file {0} could not be generated. Treating as new file.", pFilename)
Return Nothing
End If
'oSQL = "SELECT * FROM TBGI_FILES_USER WHERE UPPER(FILE_HASH) = UPPER('" & oHash & "') AND WORKED = 0 ORDER BY ADDED_WHEN"
'Dim oResult As DataTable = ClassDatabase.Return_Datatable_CS(oSQL, MyConnectionString, True)
'If oResult Is Nothing Then
'Return Nothing
'End If
'If oResult.Rows.Count = 0 Then
oSQL = "SELECT * FROM TBGI_HISTORY WHERE UPPER(FILE_HASH) = UPPER('" & oHash & "') ORDER BY ADDED_WHEN"
'Dim oResult = ClassDatabase.Return_Datatable_CS(oSQL, MyConnectionString, True)
Dim oResult = DATABASE_ECM.GetDatatable(oSQL)
If oResult Is Nothing Then
Return Nothing
End If
If oResult.Rows.Count = 0 Then
Return Nothing
Else
Dim oFirstRow As DataRow = oResult.Rows.Item(0)
Return oFirstRow.Item("ADDED_WHEN")
End If
'Else
'Dim oFirstRow As DataRow = oResult.Rows.Item(0)
'Return oFirstRow.Item("ADDED_WHEN")
'End If
Catch ex As Exception
MsgBox("Error in FileExistsinDropTable - Error-Message:" & vbNewLine & ex.Message & vbNewLine & "SQL-Command:" & vbNewLine & check, MsgBoxStyle.Critical)
MsgBox("Error in FileExistsinDropTable - Error-Message:" & vbNewLine & ex.Message & vbNewLine & "SQL-Command:" & vbNewLine & oSQL, MsgBoxStyle.Critical)
Return Nothing
End Try
End Function
Public Shared Function CheckDuplicateFiles(pForm As Form, pFilepath As String, pModuleTitle As String, Optional pHandleType As String = "")
Dim oFileInfo As New FileInfo(pFilepath)
Dim oFormHelper As New FormHelper(LOGCONFIG, pForm)
Dim oFilename As String = oFileInfo.Name
Dim oFileExists As Date = FileExistsinDropTable(pFilepath, pHandleType)
If oFileExists.Equals(Date.MinValue) Then
Return True
Else
Dim oResult As DialogResult
Dim oDate As String = oFileExists.ToString("d")
Dim oBoxTitle = $"fileFLOW - {pModuleTitle}"
Dim oMessage As String
If USER_LANGUAGE = "de-DE" Then
oMessage = $"Die Datei [{oFilename}] wurde bereits am [{oDate}] verarbeitet.{vbNewLine}{vbNewLine}Wollen Sie die gleiche Datei noch einmal verarbeiten?"
Else
oMessage = $"The file [{oFilename}] has already been processed at [{oDate}].{vbNewLine}{vbNewLine}Do you want to process the same file again?"
End If
oResult = oFormHelper.ShowQuestionMessage(oMessage, oBoxTitle)
'oResult = MessageBox.Show(oMessage, oBoxTitle, MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly)
If oResult = DialogResult.Yes Then
Return True
End If
End If
Return False
End Function
End Class

View File

@ -1,28 +1,43 @@
Imports System.ComponentModel
Imports DLLLicenseManager
Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.Config
Imports DigitalData.Modules.Windream
Imports DigitalData.Modules.Messaging
Imports DigitalData.Modules.Database
Imports DigitalData.Modules.Base
Public Class ClassInit
Public _lizenzManager As ClassLicenseManager
Public Sub New()
Private Form As Form
Public Sub New(pForm As Form)
Form = pForm
End Sub
Public Sub InitLogger()
ClassLogger.Init("", Environment.UserName)
LOGCONFIG = New LogConfig(LogConfig.PathType.AppData)
LOGGER = LOGCONFIG.GetLogger("Globix")
LOGCONFIG = New LogConfig(LogConfig.PathType.AppData, Nothing, Nothing,
CompanyName:=My.Application.Info.CompanyName,
ProductName:=My.Application.Info.ProductName)
LOGGER = LOGCONFIG.GetLogger("fileFLOW")
LOGGER.Info("Programmstart: " & Now)
LOGGER.Info("Username: {0}", Environment.UserName)
End Sub
Public Sub InitConfig()
CONFIG = New ConfigManager(Of ClassConfig)(LOGCONFIG, Application.UserAppDataPath, Application.CommonAppDataPath)
LOGCONFIG.Debug = Not CONFIG.Config.LogErrorsOnly
Dim oUtils = New ConfigUtils(LOGCONFIG)
oUtils.MigrateUserAppDataConfig(Application.UserAppDataPath, Application.ProductName, "fileFLOW")
oUtils.MigrateCommonAppDataConfig(Application.CommonAppDataPath, Application.ProductName, "fileFLOW")
Dim oCommonAppDataPath = Application.CommonAppDataPath
Dim oStartupPath = Application.StartupPath
If My.Settings.UseAppConfig = True Then
LOGGER.Info("Achtung: Anstatt ComputerConfig wird AppConfig benutzt! (UseAppConfig in Appdata)")
oCommonAppDataPath = oStartupPath
End If
CONFIG = New ConfigManager(Of ClassConfig)(LOGCONFIG, Application.UserAppDataPath, oCommonAppDataPath, Application.StartupPath)
LOGCONFIG.Debug = CONFIG.Config.LogDEBUG
LOGGER.Info("Debug log set to: [{0}]", LOGCONFIG.Debug)
MyConnectionString = DecryptConnectionString(CONFIG.Config.ConnectionString)
LogErrorsOnly = CONFIG.Config.LogErrorsOnly
LogErrorsOnly = CONFIG.Config.LogDEBUG
'myPreviewActive = CONFIG.Config.FilePreview
FW_started = CONFIG.Config.FolderWatchStarted
@ -42,17 +57,28 @@ Public Class ClassInit
End If
If MyConnectionString <> String.Empty Then
dbResult = ClassDatabase.Init()
' === NEW ===
DATABASE_ECM = New MSSQLServer(LOGCONFIG, MyConnectionString)
dbResult = DATABASE_ECM.DBInitialized
' === OLD ===
'dbResult = ClassDatabase.Init()
Else
MsgBox("No Databaseconnection configured. (First Start or Appdata not accessible)" & vbNewLine & "Basic-Config will be loaded.", MsgBoxStyle.Information)
ERROR_STATE = "NO DB-CONNECTION"
frmConfig_Basic.ShowDialog()
dbResult = ClassDatabase.Init()
' === NEW ===
DATABASE_ECM = New MSSQLServer(LOGCONFIG, MyConnectionString)
dbResult = DATABASE_ECM.DBInitialized
' === OLD ===
'dbResult = ClassDatabase.Init()
End If
If dbResult = False Then
ERROR_STATE = "FAILED DBCONNECTION"
' Fehler wird in frmSplash abgehandelt
'Fehler wird in frmSplash abgehandelt
'MsgBox("Error in init database. (Connection failed) More information in the logfile.", MsgBoxStyle.Critical)
Return False
Else
@ -64,25 +90,58 @@ Public Class ClassInit
Dim configResult As Boolean
configResult = Load_BasicConfig()
EMAIL = New Email2(LOGCONFIG)
FILESYSTEM = New FilesystemEx(LOGCONFIG)
If configResult = False Then
If USER_LANGUAGE = "de-DE" Then
Throw New Exception("Unerwarteter Fehler beim Initialisieren der Basis-Einstellungen. Weitere Informationen finden Sie in der Logdatei.")
Else
Throw New Exception("Unexpected error while initializing basic-settings. More info in the log.")
End If
Else
If IDB_ACTIVE = False Then
Try
WINDREAM = New Windream(LOGCONFIG, False, WMDrive, WINDREAM_BASEPATH, True, "", "", "", "")
If Not IsNothing(WINDREAM) Then
If WINDREAM.SessionLoggedin = True Then
LOGGER.Debug("windream initialisiert")
Else
Throw New Exception("Could not create a windream session")
End If
End If
Catch ex As Exception
LOGGER.Warn("CHECKING WMConnectivity: " & ex.Message)
Throw New Exception("Unexpected error in CHECKING WMConnectivity")
End Try
End If
End If
End Sub
Public Function Load_BasicConfig()
Try
ClassDatabase.Init()
Dim oSql As String = "select * from tbdd_Modules where NAME = 'Global-Indexer'"
Dim DT As DataTable = ClassDatabase.Return_Datatable(oSql)
'ClassDatabase.Init()
Dim oSql As String = "SELECT * FROM TBDD_MODULES WHERE NAME = 'fileFLOW'"
Dim DT As DataTable = DATABASE_ECM.GetDatatable(oSql)
If DT.Rows.Count = 1 Then
GI_withWindream = DT.Rows(0).Item("BIT1")
vWLaufwerk = DT.Rows(0).Item("STRING1")
DTTBGI_REGEX_DOCTYPE = ClassDatabase.Return_Datatable("SELECT T1.DOCTYPE as DocType, T.* FROM TBGI_REGEX_DOCTYPE T, VWGI_DOCTYPE T1 WHERE T.DOCTYPE_ID = T1.DOCTYPE_ID")
'vWLaufwerk = DT.Rows(0).Item("STRING1")
End If
oSql = "SELECT * FROM TBDD_CATALOG"
DT = DATABASE_ECM.GetDatatable(oSql)
For Each oROW As DataRow In DT.Rows
If oROW.Item("CAT_TITLE") = "WM_DB_SERVER" Then
WM_DB_SERVER = oROW.Item("CAT_STRING")
End If
Next
VIEWER_LICENSE = DATABASE_ECM.GetScalarValue($"SELECT LICENSE FROM TBDD_3RD_PARTY_MODULES WHERE
NAME = 'GDPICTURE_FILEFLOW' AND ACTIVE = 1")
oSql = "SELECT * FROM TBDD_BASECONFIG"
DT = DATABASE_ECM.GetDatatable(oSql)
If DT.Rows.Count = 1 Then
WMDrive = DT.Rows(0).Item("WM_DRIVE")
Return True
Else
Return False
@ -96,8 +155,12 @@ Public Class ClassInit
Public Sub Init_Folderwatch()
Try
FILE_HANDLER = New ClassFileHandler(LOGCONFIG)
FOLDER_WATCHER = New ClassFolderWatcher(LOGCONFIG)
AddHandler FOLDER_WATCHER.FileCreated, AddressOf OnCreated
Dim sql As String = "SELECT FOLDER_PATH FROM TBGI_FOLDERWATCH_USER WHERE FOLDER_TYPE = 'DEFAULT' AND USER_ID = " & USER_ID
Dim folderwatchPath = ClassDatabase.Execute_Scalar(sql, MyConnectionString, True)
Dim folderwatchPath = DATABASE_ECM.GetScalarValue(sql)
folderwatchPath = IIf(IsDBNull(folderwatchPath), "", folderwatchPath)
@ -123,7 +186,7 @@ Public Class ClassInit
FW_started = True
FWFunction_STARTED = True
ClassFolderWatcher.StartStop_FolderWatch()
FOLDER_WATCHER.StartStop_FolderWatch()
Catch ex As Exception
MsgBox($"Init_Folderwatch: Unexpected error while starting FolderWatch: {ex.Message}", MsgBoxStyle.Critical)
LOGGER.Info($"Init_Folderwatch: Unexpected error: {ex.Message}")
@ -132,7 +195,7 @@ Public Class ClassInit
Try
Dim sql As String = "SELECT FOLDER_PATH FROM TBGI_FOLDERWATCH_USER WHERE FOLDER_TYPE = 'SCAN' AND USER_ID = " & USER_ID
Dim folderwatchScanPath = ClassDatabase.Execute_Scalar(sql, MyConnectionString, True)
Dim folderwatchScanPath = DATABASE_ECM.GetScalarValue(sql)
folderwatchScanPath = IIf(IsDBNull(folderwatchScanPath), "", folderwatchScanPath)
@ -154,82 +217,46 @@ Public Class ClassInit
FWFunction_STARTED = True
ClassFolderWatcher.StartStop_FolderWatchSCAN()
FOLDER_WATCHER.StartStop_FolderWatchSCAN()
Catch ex As Exception
MsgBox($"Init_Folderwatch: Unexpected error while starting FolderWatchScan: {ex.Message}", MsgBoxStyle.Critical)
LOGGER.Info($"Init_Folderwatch: Unexpected error: {ex.Message}")
START_INCOMPLETE = True
End Try
'Try
' 'Die FolderWatch starten
'Dim sql1 = "SELECT FOLDER_PATH FROM TBGI_FOLDERWATCH_USER WHERE FOLDER_TYPE = 'DEFAULT' AND USER_ID = " & CURRENT_USER_ID
' Dim folderwatch = ClassDatabase.Execute_Scalar(sql1, MyConnectionString, True)
' sql1 = "SELECT FOLDER_PATH FROM TBGI_FOLDERWATCH_USER WHERE FOLDER_TYPE = 'SCAN' AND USER_ID = " & CURRENT_USER_ID
' Dim folderwatch_SCAN = ClassDatabase.Execute_Scalar(sql1, MyConnectionString, True)
' If Not folderwatch Is Nothing Then
' CURRENT_FOLDERWATCH = folderwatch
' If FW_started = True Then
' If CURRENT_FOLDERWATCH = "" Then
' FW_started = False
' SaveConfigValue("FW_started", "False")
' Else
' FW_ISSTARTED = True
' ClassFolderWatcher.StartStop_FolderWatch()
' End If
' End If
' Else
' LOGGER.Info("Init_Folderwatch: folderwatch path is nothing!")
' End If
' If Not folderwatch_SCAN Is Nothing Then
' CURRENT_SCAN_FOLDERWATCH = folderwatch_SCAN
' If FWSCAN_started = True Then
' FW_ISSTARTED = True
' ClassFolderWatcher.StartStop_FolderWatchSCAN()
' End If
' Else
' LOGGER.Info("Init_Folderwatch: folderwatch_SCAN path is nothing!")
' End If
'Catch ex As Exception
' LOGGER.Info("Unexpected Error in Init_Folderwatch: " & ex.Message)
' START_INCOMPLETE = True
'End Try
End Sub
Private Sub OnCreated(source As Object, e As IO.FileSystemEventArgs)
Try
For Each row As DataRow In DTEXCLUDE_FILES.Rows
Dim content As String = row.Item(0).ToString.ToLower
If e.FullPath.ToLower.Contains(content) Then
Exit Sub
End If
Next
Dim oHandleType As String
If e.FullPath.ToLower.EndsWith(".msg") Then
oHandleType = "|FW_OUTLOOK_MESSAGE|"
Else
oHandleType = "|FW_SIMPLEINDEXER|"
End If
'Die Datei übergeben
LOGGER.Info(">> Adding file from Hotfolder (OnCreated):" & e.FullPath)
If ClassIndexFunctions.CheckDuplicateFiles(Form, e.FullPath, "FolderWatch/Scan") Then
FILE_HANDLER.Decide_FileHandle(e.FullPath, oHandleType)
End If
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error in folder_watch_Created")
End Try
End Sub
Public Sub InitUserLogin()
Try
Dim sql = "SELECT MAX(GUID) FROM TBDD_USER WHERE (LOWER(USERNAME) = LOWER('@user'))"
sql = sql.Replace("@user", Environment.UserName)
' LOGGER.Info(">> Username: " & Environment.UserName)
Dim oSql As String
USER_ID = ClassDatabase.Execute_Scalar(sql, MyConnectionString, True)
Try
Dim USERID = CInt(USER_ID)
Catch ex As Exception
LOGGER.Info("User '" & Environment.UserName & "' not configured in Useradministration! (DBNull)")
LOGGER.Error(ex.Message)
'MsgBox("Achtung: Sie sind nicht in der Userverwaltung hinterlegt." & vbNewLine & "Bitte setzen Sie sich mit dem Systembetreuer in Verbindung!", MsgBoxStyle.Critical, "Achtung:")
'Me.Close()
START_INCOMPLETE = True
Throw New Exception("You are not configured in the Useradministration." & vbNewLine & "Please contact the system administrator!")
Exit Sub
End Try
Dim oUserDatatable As DataTable = ClassDatabase.Return_Datatable($"SELECT * FROM TBDD_USER WHERE GUID = {USER_ID}")
If Not IsNothing(oUserDatatable) AndAlso Not IsDBNull(oUserDatatable.Rows.Item(0)) Then
Dim oRow As DataRow = oUserDatatable.Rows.Item(0)
USER_SHORT_NAME = NotNull(oRow.Item("SHORTNAME"), String.Empty)
USER_PRENAME = NotNull(oRow.Item("PRENAME"), String.Empty)
USER_SURNAME = NotNull(oRow.Item("NAME"), String.Empty)
USER_EMAIL = NotNull(oRow.Item("EMAIL"), String.Empty)
USER_USERNAME = NotNull(oRow.Item("USERNAME"), String.Empty)
End If
'Check_User_Exists_in_GIGroups()
sql = String.Format("SELECT * FROM [dbo].[FNDD_CHECK_USER_MODULE] ('{0}','GLOBIX',{1})", Environment.UserName, 1)
Dim DT_CHECKUSER_MODULE As DataTable = ClassDatabase.Return_Datatable(sql)
oSql = String.Format($"SELECT * FROM [dbo].[FNDD_LOGIN_USER_MODULE] ('{Environment.UserName}','fileFLOW',{1})")
Dim DT_CHECKUSER_MODULE As DataTable = DATABASE_ECM.GetDatatable(oSql)
If DT_CHECKUSER_MODULE.Rows.Count = 0 Then
LOGGER.Info("DT_CHECKUSER_MODULE.Rows.Count = 0")
START_INCOMPLETE = True
@ -238,7 +265,26 @@ Public Class ClassInit
Exit Sub
End If
If DT_CHECKUSER_MODULE.Rows.Count = 1 Then
USER_IN_MODULE = DT_CHECKUSER_MODULE.Rows(0).Item("MODULE_ACCESS")
Dim oRow As DataRow = DT_CHECKUSER_MODULE.Rows(0)
If oRow.Item("USER_ID") = 0 And IsDBNull(oRow.Item("USER_SURNAME")) Then
LOGGER.Info("User '" & Environment.UserName & "' not configured in Useradministration!")
START_INCOMPLETE = True
Throw New Exception("You are not configured in the Useradministration." & vbNewLine & "Please contact the system administrator!")
Exit Sub
End If
USER_IN_MODULE = oRow.Item("MODULE_ACCESS")
USER_ID = oRow.Item("USER_ID")
USER_SURNAME = IIf(IsDBNull(oRow.Item("USER_SURNAME")), "", oRow.Item("USER_SURNAME"))
USER_PRENAME = IIf(IsDBNull(oRow.Item("USER_PRENAME")), "", oRow.Item("USER_PRENAME"))
USER_SHORTNAME = IIf(IsDBNull(oRow.Item("USER_SHORTNAME")), "", oRow.Item("USER_SHORTNAME"))
USER_EMAIL = IIf(IsDBNull(oRow.Item("USER_EMAIL")), "", oRow.Item("USER_EMAIL"))
USER_LANGUAGE = oRow.Item("USER_LANGUAGE")
USER_IN_MODULE = oRow.Item("MODULE_ACCESS")
USER_IS_ADMIN = oRow.Item("IS_ADMIN")
USERCOUNT_LOGGED_IN = oRow.Item("USERCOUNT_LOGGED_IN")
ClassParamRefresh.Refresh_Params(DT_CHECKUSER_MODULE)
If USER_IN_MODULE = False Then
LOGGER.Info(" - User: " & Environment.UserName & " nicht für Modul freigegben!")
START_INCOMPLETE = True
@ -247,12 +293,12 @@ Public Class ClassInit
Exit Sub
End If
USER_IS_ADMIN = DT_CHECKUSER_MODULE.Rows(0).Item("IS_ADMIN")
USER_IS_ADMIN = oRow.Item("IS_ADMIN")
ClassLicence.Refresh_Licence()
Dim sql1 = "SELECT COUNT(T.GUID) FROM TBDD_DOKUMENTART T, TBDD_DOKUMENTART_MODULE T1 WHERE T.AKTIV = 1 AND T.GUID = T1.DOKART_ID AND T1.MODULE_ID = 1"
DOCTYPE_COUNT_ACTUAL = ClassDatabase.Execute_Scalar(sql1, MyConnectionString, True)
DOCTYPE_COUNT_ACTUAL = DATABASE_ECM.GetScalarValue(sql1)
If DOCTYPE_COUNT_ACTUAL > LICENSE_DOCTYPE_COUNT Then
If USER_LANGUAGE = "de-DE" Then
MsgBox("Ihre Anzahl von konfigurierbaren Dokumentarten ist limitiert auf: '" & LICENSE_DOCTYPE_COUNT.ToString & "'." & vbNewLine & "Bitte kontaktieren Sie Digital Data für weitere Details.", MsgBoxStyle.Information)
@ -260,24 +306,21 @@ Public Class ClassInit
MsgBox("Your amount of configurable documenttypes is limited to " & LICENSE_DOCTYPE_COUNT.ToString & " doctypes. You can not add more doctypes!" & vbNewLine & "Please contact Digital Data for further licensedetails", MsgBoxStyle.Information)
End If
End If
USER_LANGUAGE = DT_CHECKUSER_MODULE.Rows(0).Item("USER_LANGUAGE")
USER_LANGUAGE = oRow.Item("USER_LANGUAGE")
sql = "DELETE FROM TBDD_USER_MODULE_LOG_IN WHERE USER_ID = " & USER_ID & " AND UPPER(MODULE) = UPPER('Global-Indexer')"
ClassDatabase.Execute_non_Query(sql, True)
sql = "INSERT INTO TBDD_USER_MODULE_LOG_IN (USER_ID,MODULE) VALUES (" & USER_ID & ",'Global-Indexer')"
ClassDatabase.Execute_non_Query(sql)
sql = "SELECT COUNT(*) AS Expr1 FROM TBDD_USER_MODULE_LOG_IN WHERE Upper(MODULE) = UPPER('Global-Indexer')"
Dim anzahl = ClassDatabase.Execute_Scalar(sql, MyConnectionString, True)
LOGGER.Info(" >> Anzahl Angemeldete User: " & anzahl.ToString)
UserLoggedin = CInt(anzahl)
UserLoggedin += 1
If LICENSE_COUNT < UserLoggedin And LICENSE_EXPIRED = False Then
MsgBox("Die Anzahl der aktuell angemeldeten User (" & UserLoggedin.ToString & ") überschreitet die Anzahl der aktuellen Lizenzen!" & vbNewLine & "Anzahl der Lizenzen: " & LICENSE_COUNT.ToString & vbNewLine & "Bitte setzen Sie sich mit dem Systembetreuer in Verbindung!", MsgBoxStyle.Critical, "Achtung:")
LOGGER.Info(" >> Die Anzahl der aktuell angemeldeten User (" & UserLoggedin.ToString & ") überschreitet die Anzahl der Lizenzen (" & LICENSE_COUNT & ") für Global Indexer!")
oSql = "DELETE FROM TBDD_USER_MODULE_LOG_IN WHERE USER_ID = " & USER_ID & " AND MODULE = 'fileFLOW'"
DATABASE_ECM.ExecuteNonQuery(oSql)
oSql = "INSERT INTO TBDD_USER_MODULE_LOG_IN (USER_ID,MODULE, CLIENT_ID) VALUES (" & USER_ID & ",'fileFLOW', 1)"
DATABASE_ECM.ExecuteNonQuery(oSql)
oSql = "SELECT COUNT(*) AS Expr1 FROM TBDD_USER_MODULE_LOG_IN WHERE MODULE = 'fileFLOW'"
If LICENSE_COUNT < USERCOUNT_LOGGED_IN And LICENSE_EXPIRED = False Then
MsgBox("Die Anzahl der aktuell angemeldeten User (" & USERCOUNT_LOGGED_IN.ToString & ") überschreitet die Anzahl der aktuellen Lizenzen!" & vbNewLine & "Anzahl der Lizenzen: " & LICENSE_COUNT.ToString & vbNewLine & "Bitte setzen Sie sich mit dem Systembetreuer in Verbindung!", MsgBoxStyle.Critical, "Achtung:")
LOGGER.Info(" >> Die Anzahl der aktuell angemeldeten User (" & USERCOUNT_LOGGED_IN.ToString & ") überschreitet die Anzahl der Lizenzen (" & LICENSE_COUNT & ") für fileFLOW!")
If USER_IS_ADMIN = False Then
'Anmeldung wieder herausnehmen
sql = "DELETE FROM TBDD_USER_MODULE_LOG_IN WHERE USER_ID = " & USER_ID & " AND MODULE= 'Global-Indexer'"
ClassDatabase.Execute_non_Query(sql, True)
oSql = "DELETE FROM TBDD_USER_MODULE_LOG_IN WHERE USER_ID = " & USER_ID & " AND MODULE = 'fileFLOW'"
DATABASE_ECM.ExecuteNonQuery(oSql)
LOGGER.Info(" - Wieder abgemeldet")
START_INCOMPLETE = True
End If
@ -290,7 +333,7 @@ Public Class ClassInit
Catch ex As Exception
LOGGER.Info("Unexpected Error in InitUserLogin: " & ex.Message)
LOGGER.Error(ex.message)
LOGGER.Error(ex)
MsgBox(ex.Message, MsgBoxStyle.Critical)
START_INCOMPLETE = True
End Try

View File

@ -2,7 +2,7 @@
Imports System.IO
Public Class ClassWindowLocation
Public Shared Sub LoadFormLocationSize(ByRef form As Form)
Public Shared Sub LoadFormLocationSize(ByRef form As Form, Optional LoadSize As Boolean = True)
Try
Dim _path, _pathold As String
@ -53,7 +53,7 @@ Public Class ClassWindowLocation
If x >= 0 And y >= 0 Then
form.Location = New Point(x, y)
End If
If w > 0 And h > 0 Then
If w > 0 And h > 0 And LoadSize = True Then
form.Size = New Size(w, h)
End If
End If
@ -81,7 +81,7 @@ Public Class ClassWindowLocation
Return result
Catch ex As Exception
LOGGER.Info("Error in IsVisibleOnAnyScreen: " & ex.Message)
LOGGER.Error(ex.message)
LOGGER.Error(ex)
Return False
End Try
End Function
@ -140,16 +140,17 @@ Public Class ClassSetting
End Class
Public Class ClassLayout
Private _filename As String
Private ReadOnly _filename As String
Private ReadOnly _settings As XmlWriterSettings
Private _reader As XmlReader
Private _settings As XmlWriterSettings
Public Sub New(filename As String)
_filename = filename
_settings = New XmlWriterSettings()
_settings.Encoding = System.Text.Encoding.UTF8
_settings.Indent = True
_settings = New XmlWriterSettings With {
.Encoding = System.Text.Encoding.UTF8,
.Indent = True
}
End Sub
Public Sub Save(settings As System.Collections.Generic.List(Of ClassSetting))

View File

@ -1,27 +1,35 @@
Imports DLLLicenseManager
Imports System.Globalization
Imports DLLLicenseManager
Imports DigitalData.Modules.License
Public Class ClassLicence
Public Shared License_Date As Date
Private Shared _lizenzManager As ClassLicenseManager
Public Shared LicenseDate As Date
Public Shared LicenseManager As LicenseManagerLegacy
Public Shared Sub Refresh_Licence()
Try
_lizenzManager = New ClassLicenseManager("#DigitalData35452!#", "")
LicenseManager = New LicenseManagerLegacy(LOGCONFIG, "#DigitalData35452!#", "")
Dim sql As String = "SELECT LICENSEKEY FROM TBGI_CONFIGURATION WHERE GUID = 1"
Dim lic As String = ClassDatabase.Execute_Scalar(sql, MyConnectionString)
Dim licString = _lizenzManager.DecodeLicenseKey(lic)
Dim split() = licString.ToString.Split("#")
Dim licEncoded As String = DATABASE_ECM.GetScalarValue(sql)
Dim licString As String = LicenseManager.DecodeLicenseKey(licEncoded)
Dim licArray() As String = licString.ToString.Split("#")
If lic <> "" Then
LICENSE_COUNT = split(0)
If licEncoded <> "" Then
LICENSE_COUNT = licArray(0)
Else
LICENSE_COUNT = 0
End If
License_Date = CDate(split(1))
If CDate(split(1)) < CDate(Now.ToShortDateString) Then
LOGGER.Debug("License Date is {0}", licArray(1))
LicenseDate = Date.ParseExact(licArray(1), "dd.MM.yyyy", CultureInfo.InvariantCulture)
'License_Date = CDate(split(1))
If LicenseDate < Now Then
If USER_LANGUAGE = "de-DE" Then
MsgBox("Ihre Lizenz ist abgelaufen!" & vbNewLine & "Letztes Gültigkeitsdatum: " & split(1) & vbNewLine & "Bitte setzen Sie sich mit Digital Data in Verbindung", MsgBoxStyle.Exclamation)
MsgBox("Ihre Lizenz ist abgelaufen!" & vbNewLine & "Letztes Gültigkeitsdatum: " & licArray(1) & vbNewLine & "Bitte setzen Sie sich mit Digital Data in Verbindung", MsgBoxStyle.Exclamation)
Else
MsgBox("Your license has expired!" & vbNewLine & "Last Valid Date: " & split(1) & vbNewLine & "Please contact Digital Data", MsgBoxStyle.Exclamation)
MsgBox("Your license has expired!" & vbNewLine & "Last Valid Date: " & licArray(1) & vbNewLine & "Please contact Digital Data", MsgBoxStyle.Exclamation)
End If
START_INCOMPLETE = True
LICENSE_EXPIRED = True
@ -29,13 +37,14 @@ Public Class ClassLicence
End If
'tslblLicenses.Text = "Anzahl Lizenzen: " & licenseanzahl
LICENSE_DOCTYPE_COUNT = split(2)
LICENSE_DOCTYPE_COUNT = licArray(2)
Try
LicenseHotKey = split(3)
LicenseHotKey = licArray(3)
Catch ex As Exception
LicenseHotKey = 0
End Try
Catch ex As Exception
LOGGER.Error(ex)
MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Unexpected error in Licensemanager:")
START_INCOMPLETE = True
End Try
@ -44,9 +53,9 @@ Public Class ClassLicence
Public Shared Function license_is_Valid()
If LICENSE_EXPIRED Then
If USER_LANGUAGE = "de-DE" Then
MsgBox("Ihre Lizenz ist abgelaufen!" & vbNewLine & "Letztes Gültigkeitsdatum: " & License_Date & vbNewLine & "Bitte setzen Sie sich mit Digital Data in Verbindung", MsgBoxStyle.Exclamation)
MsgBox("Ihre Lizenz ist abgelaufen!" & vbNewLine & "Letztes Gültigkeitsdatum: " & LicenseDate & vbNewLine & "Bitte setzen Sie sich mit Digital Data in Verbindung", MsgBoxStyle.Exclamation)
Else
MsgBox("Your license has expired!" & vbNewLine & "Last Valid Date: " & License_Date & vbNewLine & "Please contact Digital Data", MsgBoxStyle.Exclamation)
MsgBox("Your license has expired!" & vbNewLine & "Last Valid Date: " & LicenseDate & vbNewLine & "Please contact Digital Data", MsgBoxStyle.Exclamation)
End If
Return False

View File

@ -1,215 +0,0 @@
Imports System.IO
Public Class ClassLogger
Public Shared DateiSpeicherort As String = Nothing
Public Shared DateiPrefix As String = ""
Public Shared Datei As IO.File = Nothing
Public Shared logDateiname As String = ""
Private Shared StreamWriter As IO.StreamWriter = Nothing
Private Shared HasInformedAboutError As Boolean = False
' eine Art Konstruktor
Public Shared Sub Init(ByVal speicherort As String, Optional ByVal prefix As String = "", Optional ByVal appendFile As Boolean = True)
' initialisiert den Speicherort
ClassLogger.SetSpeicherort(speicherort)
' wenn ein Prfix gesetzt wurde
If Not prefix = "" Then
' initialisiert das Prefix
ClassLogger.SetPrefix(prefix)
End If
Dim str As String = ClassLogger.DateiSpeicherort & "\" & ClassLogger.DateiPrefix & System.DateTime.Now.ToString("yyyy_MM_dd") & ".txt"
Dim anz As Integer = 1
Do While File.Exists(str)
Dim info As New FileInfo(str)
Dim length As Long = info.Length
If length > 5000000 Then
str = IO.Path.GetDirectoryName(str)
str = str & "\" & ClassLogger.DateiPrefix & System.DateTime.Now.ToString("yyyy_MM_dd") & "(" & anz.ToString & ").txt"
anz = anz + 1
Else
Exit Do
End If
Loop
ClassLogger.logDateiname = str
If Not appendFile Then
' der Versuch die Datei zu löschen
'Try
' My.Computer.FileSystem.DeleteFile(ClassNILogger.Dateiname, FileIO.UIOption.OnlyErrorDialogs, FileIO.RecycleOption.DeletePermanently)
'Catch ex As Exception
' ' bei Fehler besteht kein Schreibrecht auf die Datei oder Datei existiert nicht
' ' ALSO: alles Okay soweit
'End Try
My.Computer.FileSystem.WriteAllText(ClassLogger.logDateiname, String.Empty, False)
End If
' testen ob sich die Datei öffnen und beschreiben lässt
'ClassNILogger.CheckIsLogWritable()
End Sub
' legt den Speicherort fest
Public Shared Sub SetSpeicherort(ByVal speicherort As String)
Dim f As New IO.DirectoryInfo(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Digital Data\Global Indexer\Log"))
If speicherort = "" Then
If f.Exists = False Then
IO.Directory.CreateDirectory(f.ToString())
End If
ClassLogger.DateiSpeicherort = f.ToString()
Else
ClassLogger.DateiSpeicherort = speicherort
End If
'Dim f As New IO.DirectoryInfo(My.Application.Info.DirectoryPath & "\Log")
'If speicherort = "" Then
' If f.Exists = False Then
' IO.Directory.CreateDirectory(My.Application.Info.DirectoryPath & "\Log")
' End If
' ClassLogger.DateiSpeicherort = My.Application.Info.DirectoryPath & "\Log\"
'Else
' ClassLogger.DateiSpeicherort = speicherort
'End If
End Sub
' legt das Prefix für den Dateinamen fest
Public Shared Sub SetPrefix(ByVal prefix As String)
ClassLogger.DateiPrefix = prefix
End Sub
Public Shared Sub Add(ByVal information As String, Optional ByVal ACHTUNG As Boolean = True)
If ClassLogger.OpenFile Then
Try
If ACHTUNG Then
ClassLogger.StreamWriter.WriteLine(Now.ToString & "# ATTENTION #: " & information)
Else
ClassLogger.StreamWriter.WriteLine(Now.ToString & information)
End If
ClassLogger.CloseFile()
Catch e As Exception
ClassLogger.ShowErrorMessage()
End Try
Else
ClassLogger.ShowErrorMessage()
End If
End Sub
Public Shared Sub Add(ByVal ex As Exception)
If ClassLogger.OpenFile Then
Try
ClassLogger.StreamWriter.WriteLine(Now.ToString & "##### Exception ####")
ClassLogger.StreamWriter.WriteLine(Now.ToString & "##### Fehler: " & ex.Message & " Source [" & ex.Source & "]")
ClassLogger.CloseFile()
Catch e As Exception
ClassLogger.ShowErrorMessage()
End Try
Else
ClassLogger.ShowErrorMessage()
End If
End Sub
' öffnet eine Datei zum Schreiben
Private Shared Function OpenFile()
Try
' wenn ein Speicherort festgelegt wurde
If Not ClassLogger.DateiSpeicherort = Nothing Then
' den Dateienamen definieren
Dim dateiname As String = ClassLogger.logDateiname
' Datei anlegen wenn noch nicht vorhanden
My.Computer.FileSystem.WriteAllText(dateiname, String.Empty, True)
' die Datei zum Schreiben öffnen
ClassLogger.StreamWriter = New IO.StreamWriter(dateiname, True, System.Text.Encoding.UTF8)
End If
' wenn die Datei erfolgreich geöffnet wurde
If ClassLogger.StreamWriter IsNot Nothing Then
Return True
Else
Return False
End If
Catch ex As Exception
Return False
End Try
End Function
' öffnet eine Datei zum Schreiben
Private Shared Function OpenFile(ByVal DateiSpeicherort As String, ByVal DateiPrefix As String)
Try
' wenn ein Speicherort festgelegt wurde
If Not DateiSpeicherort = Nothing And ClassLogger.CheckIsLogWritable() Then
' den Dateienamen definieren
Dim dateiname As String = ClassLogger.logDateiname
' Datei anlegen wenn noch nicht vorhanden
My.Computer.FileSystem.WriteAllText(dateiname, String.Empty, True)
' die Datei zum Schreiben öffnen
ClassLogger.StreamWriter = New IO.StreamWriter(dateiname, True, System.Text.Encoding.UTF8)
End If
' wenn die Datei erfolgreich geöffnet wurde
If ClassLogger.StreamWriter IsNot Nothing Then
Return True
Else
Return False
End If
Catch ex As Exception
Return False
End Try
End Function
' schliesst die geöffnete Datei
Private Shared Sub CloseFile()
' wenn eine Datei geöffnet ist
If ClassLogger.StreamWriter IsNot Nothing Then
' die Datei schliessen
ClassLogger.StreamWriter.Close()
ClassLogger.StreamWriter = Nothing
End If
End Sub
Public Shared Function CheckIsLogWritable()
If ClassLogger.OpenFile Then
Try
ClassLogger.CloseFile()
Catch e As Exception
ClassLogger.ShowErrorMessage()
Return False
End Try
Else
ClassLogger.ShowErrorMessage()
Return False
End If
Return True
End Function
Public Shared Function CheckIsLogWritable(ByVal vDateiSpeicherort As String, ByVal vDateiPrefix As String)
If ClassLogger.OpenFile(vDateiSpeicherort, vDateiPrefix) Then
Try
ClassLogger.CloseFile()
Catch e As Exception
ClassLogger.ShowErrorMessage()
Return False
End Try
Else
ClassLogger.ShowErrorMessage()
Return False
End If
Return True
End Function
Private Shared Sub ShowErrorMessage()
If Not ClassLogger.HasInformedAboutError Then
MsgBox("Beim Öffnen der Logdatei ist ein Fehler aufgetreten. Bitte stellen Sie sicher das Sie sowohl über entsprechende Schreibrechte im Verzeichnis, als auch über ausreichend Speicherplatz zum Speichern der Logdatei verfügen." & _
vbNewLine & vbNewLine & "Es wird keine Logdatei angelegt oder beschrieben." & vbNewLine & vbNewLine & "Im folgenden werden Sie über Fehler, den Log betreffend nicht weiter informiert, um den Ablauf von " & My.Application.Info.ProductName & " nicht zu stören.", _
MsgBoxStyle.Information, "Unexpected error inm Öffnen der Logdatei")
ClassLogger.HasInformedAboutError = True
End If
End Sub
End Class

View File

@ -0,0 +1,47 @@
Imports DigitalData.Modules.Database
Public Class ClassParamRefresh
Public Shared Sub Refresh_Params(DT_CHECKUSER As DataTable)
If DT_CHECKUSER.Rows.Count = 1 Then
USERCOUNT_LOGGED_IN = DT_CHECKUSER.Rows(0).Item("USERCOUNT_LOGGED_IN")
Try
WORKING_MODE = DT_CHECKUSER.Rows(0).Item("WORKING_MODE")
Catch ex As Exception
WORKING_MODE = ""
End Try
Dim oSplitWorkMode As String() = WORKING_MODE.Split("#")
' Use For Each loop over words and display them.
Dim oMode As String
For Each oMode In oSplitWorkMode
LOGGER.Debug($"oWorkingMode Parameter: {oMode}")
If oMode.StartsWith("IDB_CONID!") Then
Dim oConnectionId = oMode.Replace("GLOBIX.IDB_CONID!", "")
Dim oConString = DATABASE_ECM.Get_ConnectionStringforID(oConnectionId)
CONNECTION_STRING_IDB = oConString
DATABASE_IDB = New MSSQLServer(LOGCONFIG, CONNECTION_STRING_IDB)
Dim oSQL = $"SELECT * FROM TBIDB_ATTRIBUTE"
Dim oDT As DataTable = DATABASE_IDB.GetDatatable(oSQL)
If Not IsNothing(oDT) Then
If oDT.Rows.Count > 0 Then
IDB_ACTIVE = True
Else
LOGGER.Warn($"Got an IDB-ConnID [{oConnectionId}] but check DTAttribute.Row.Count is [{oDT.Rows.Count}]!!")
End If
Else
LOGGER.Warn($"Got an IDB-ConnID [{oConnectionId}] but check DT Attribute is Nothing!!")
End If
ElseIf oMode.StartsWith("IDB.LOG_INDEX") Then
IDB_LOG_INDEX = oMode.Replace("IDB.LOG_INDEX!", "")
Else
LOGGER.Info($"Wrong oMode: {oMode}")
End If
Next
End If
End Sub
End Class

View File

@ -1,6 +1,11 @@
Imports System.Text.RegularExpressions
Imports DevExpress.XtraEditors
Imports DigitalData.Controls.LookupGrid
Imports DigitalData.Modules.Base
Imports DigitalData.GUIs.GlobalIndexer
Imports WINDREAMLib
Imports System.IO
Imports DevExpress.Data
''' <summary>
''' Defines common Functions for Checking for and replacing placeholders.
@ -36,13 +41,20 @@ Public Class ClassPatterns
Public Const INT_VALUE_MACHINE = "MACHINE"
Public Const INT_VALUE_DOMAIN = "DOMAIN"
Public Const INT_VALUE_DATE = "DATE"
Public Const INT_VALUE_WMDocID = "WMDocID"
Public Const INT_VALUE_IDBID = "IDBObjID"
Public Const MAX_TRY_COUNT = 500
Public Const INT_VALUE_FILENAME_EXT = "FILENAME_EXT"
Public Const INT_VALUE_FILENAME = "FILENAME_ONLY"
Public Const INT_VALUE_FILEEXT = "FILE_EXT"
Public Const INT_VALUE_FILE_DATE = "FILE_DATE"
Private Shared regex As Regex = New Regex("{#(\w+)#([\w\d\s_-]+)}+")
Private Shared allPatterns As New List(Of String) From {PATTERN_WMI, PATTERN_CTRL, PATTERN_IDBA, PATTERN_USER, PATTERN_INT}
Private Shared complexPatterns As New List(Of String) From {PATTERN_WMI, PATTERN_CTRL, PATTERN_IDBA}
Private Shared simplePatterns As New List(Of String) From {PATTERN_USER, PATTERN_INT}
Public Const MAX_TRY_COUNT = 20
Private Shared ReadOnly regex As Regex = New Regex("{#(\w+)#([\.\w\d\s_-]+)}+")
Private Shared ReadOnly allPatterns As New List(Of String) From {PATTERN_WMI, PATTERN_CTRL, PATTERN_IDBA, PATTERN_USER, PATTERN_INT}
Private Shared ReadOnly complexPatterns As New List(Of String) From {PATTERN_WMI, PATTERN_CTRL, PATTERN_IDBA}
Private Shared ReadOnly simplePatterns As New List(Of String) From {PATTERN_USER, PATTERN_INT}
''' <summary>
''' Wraps a pattern-type and -value in the common format: {#type#value}
@ -71,29 +83,75 @@ Public Class ClassPatterns
Public Shared Function ReplaceInternalValues(input As String) As String
Try
Dim result = input
Dim oResult = input
' Replace Username(s)
While ContainsPatternAndValue(result, PATTERN_INT, INT_VALUE_USERNAME)
result = ReplacePattern(result, PATTERN_INT, Environment.UserName)
While ContainsPatternAndValue(oResult, PATTERN_INT, INT_VALUE_USERNAME)
oResult = ReplacePattern(oResult, PATTERN_INT, Environment.UserName)
End While
' Replace Machinename(s)
While ContainsPatternAndValue(result, PATTERN_INT, INT_VALUE_MACHINE)
result = ReplacePattern(result, PATTERN_INT, Environment.MachineName)
While ContainsPatternAndValue(oResult, PATTERN_INT, INT_VALUE_MACHINE)
oResult = ReplacePattern(oResult, PATTERN_INT, Environment.MachineName)
End While
' Replace Domainname(s)
While ContainsPatternAndValue(result, PATTERN_INT, INT_VALUE_DOMAIN)
result = ReplacePattern(result, PATTERN_INT, Environment.UserDomainName)
While ContainsPatternAndValue(oResult, PATTERN_INT, INT_VALUE_DOMAIN)
oResult = ReplacePattern(oResult, PATTERN_INT, Environment.UserDomainName)
End While
' Replace CurrentDate(s)
While ContainsPatternAndValue(result, PATTERN_INT, INT_VALUE_DATE)
result = ReplacePattern(result, PATTERN_INT, Now.ToShortDateString)
While ContainsPatternAndValue(oResult, PATTERN_INT, INT_VALUE_DATE)
oResult = ReplacePattern(oResult, PATTERN_INT, Now.ToShortDateString)
End While
While ContainsPatternAndValue(oResult, PATTERN_INT, INT_VALUE_WMDocID)
oResult = ReplacePattern(oResult, PATTERN_INT, CURRENT_DOC_ID)
End While
While ContainsPatternAndValue(oResult, PATTERN_INT, INT_VALUE_IDBID)
oResult = ReplacePattern(oResult, PATTERN_INT, CURRENT_DOC_ID)
End While
While ContainsPatternAndValue(oResult, PATTERN_INT, INT_VALUE_FILENAME_EXT)
If Not IsNothing(CURRENT_WORKFILE) Then
If File.Exists(CURRENT_WORKFILE) Then
Dim oFileName As String = Path.GetFileName(CURRENT_WORKFILE)
oResult = ReplacePlaceholder(PATTERN_INT, oResult, INT_VALUE_FILENAME_EXT, oFileName)
End If
End If
End While
While ContainsPatternAndValue(oResult, PATTERN_INT, INT_VALUE_FILENAME)
If Not IsNothing(CURRENT_WORKFILE) Then
If File.Exists(CURRENT_WORKFILE) Then
Dim oFileNameOnly As String = Path.GetFileNameWithoutExtension(CURRENT_WORKFILE)
oResult = ReplacePlaceholder(PATTERN_INT, oResult, INT_VALUE_FILENAME, oFileNameOnly)
End If
End If
End While
While ContainsPatternAndValue(oResult, PATTERN_INT, INT_VALUE_FILEEXT)
If Not IsNothing(CURRENT_WORKFILE) Then
If File.Exists(CURRENT_WORKFILE) Then
Dim oFileExt As String = Path.GetExtension(CURRENT_WORKFILE).Substring(1)
oResult = ReplacePlaceholder(PATTERN_INT, oResult, INT_VALUE_FILEEXT, oFileExt)
End If
End If
End While
While ContainsPatternAndValue(oResult, PATTERN_INT, INT_VALUE_FILE_DATE)
If Not IsNothing(CURRENT_WORKFILE) Then
If File.Exists(CURRENT_WORKFILE) Then
Dim oCreationDate As DateTime = File.GetCreationTime(CURRENT_WORKFILE)
Dim oDateOnlyString As String = oCreationDate.ToString("yyyy-MM-dd")
oResult = ReplacePlaceholder(PATTERN_INT, oResult, INT_VALUE_FILE_DATE, oDateOnlyString)
End If
End If
End While
LOGGER.Debug("sql after ReplaceInternalValues: " & input)
Return result
Return oResult
Catch ex As Exception
LOGGER.Error(ex)
LOGGER.Info("Error in ReplaceInternalValues:" & ex.Message)
@ -176,14 +234,14 @@ Public Class ClassPatterns
Continue For
End If
LOGGER.Debug("Getting control metadata from object: [{0}]", oControl?.Tag?.ToString())
LOGGER.Debug("Getting control metadata from Control: [{0}]", oControl.Name)
If oControl.Tag Is Nothing Then
LOGGER.Warn("No Metadata object found for control [{0}]. Skipping.", oControl.Name)
Continue For
End If
Dim oMeta = TryCast(oControl.Tag, ClassControls.ControlMeta)
Dim oMeta = TryCast(oControl.Tag, ControlCreator.ControlMeta)
LOGGER.Debug("Metadata IndexName: [{0}]", oMeta.IndexName)
LOGGER.Debug("Metadata IndexType: [{0}]", oMeta.IndexType)
@ -205,44 +263,61 @@ Public Class ClassPatterns
If oFoundControl IsNot Nothing Then
Dim oValue As String = String.Empty
Dim oTypeString = oFoundControl
LOGGER.Debug("Found Control [{0}], continuing with setting value..", oFoundControl.Name)
If TypeOf oFoundControl Is TextBox Then
If TypeOf (oFoundControl) Is LookupControl3 Then
LOGGER.Debug("oTypeString LookupControl3")
ElseIf TypeOf (oFoundControl) Is CheckBox Then
LOGGER.Debug("oTypeString CheckBox")
ElseIf TypeOf (oFoundControl) Is TextEdit Then
LOGGER.Debug("oTypeString TextEdit")
End If
If TypeOf (oFoundControl) Is LookupControl3 Then
Try
oValue = DirectCast(oFoundControl, TextBox).Text
Dim oLookupControl = DirectCast(oFoundControl, LookupControl3)
If oLookupControl.Properties.MultiSelect Then
Select Case oFoundType
Case ClassConstants.INDEX_TYPE_INTEGER
oValue = String.Join(",", oLookupControl.Properties.SelectedValues)
Case ClassConstants.INDEX_TYPE_VARCHAR
Dim oIndex As Integer = 0
For Each oString As String In oLookupControl.Properties.SelectedValues
If oIndex = 0 Then
oValue = "'" + oString + "'"
Else
oValue += ", '" + oString + "'"
End If
oIndex += 1
Next
'Dim oWrapped = oLookupControl.Properties.SelectedValues
'oValue = String.Join(",", oWrapped)
Case Else
LOGGER.Warn("Lookup Control with [{0}] is not supported!", oFoundType)
End Select
Else
oValue = ObjectEx.NotNull(oLookupControl.Properties.SelectedValues.Item(0), "")
End If
Catch ex As Exception
LOGGER.Error(ex)
LOGGER.Warn("Control Value for LookupControl3 [{0}] could not be retrieved!", oFoundControl.Name)
End Try
ElseIf TypeOf (oFoundControl) Is TextEdit Then
Try
oValue = DirectCast(oFoundControl, TextEdit).Text
Catch ex As Exception
LOGGER.Error(ex)
LOGGER.Warn("Control Value for TextBox [{0}] could not be retrieved!", oFoundControl.Name)
End Try
ElseIf TypeOf oFoundControl Is CheckBox Then
ElseIf TypeOf (oFoundControl) Is CheckBox Then
Try
oValue = IIf(DirectCast(oFoundControl, CheckBox).Checked, 1, 0)
Catch ex As Exception
LOGGER.Error(ex)
LOGGER.Warn("Control Value for CheckBox [{0}] could not be retrieved!", oFoundControl.Name)
End Try
ElseIf TypeOf oFoundControl Is LookupControl2 Then
Try
Dim oLookupControl = DirectCast(oFoundControl, LookupControl2)
If oLookupControl.MultiSelect Then
Select Case oFoundType
Case "INTEGER"
oValue = String.Join(",", oLookupControl.SelectedValues)
Case "VARCHAR"
Dim oWrapped = oLookupControl.SelectedValues.Select(Function(v) $"'{v}'")
oValue = String.Join(",", oWrapped)
Case Else
LOGGER.Warn("Lookup Control with [{0}] is not supported!", oFoundType)
End Select
Else
oValue = NotNull(oLookupControl.SelectedValues.Item(0), "")
End If
Catch ex As Exception
LOGGER.Error(ex)
LOGGER.Warn("Control Value for LookupControl2 [{0}] could not be retrieved!", oFoundControl.Name)
End Try
Else
LOGGER.Debug("Unknown Control type for type [{0}], setting value to empty string.", oFoundControl.Name)
oValue = ""
@ -257,7 +332,7 @@ Public Class ClassPatterns
oTryCounter += 1
End While
LOGGER.Debug("sql after ReplaceControlValues: " & input)
LOGGER.Debug($"input after ReplaceControlValues [{input}]")
Return result
Catch ex As Exception
LOGGER.Error(ex)
@ -374,7 +449,22 @@ Public Class ClassPatterns
Return results
End Function
''' <summary>
''' Ersetzt alle Vorkommen eines Platzhalters im Texttemplate.
''' </summary>
''' <param name="pInput">Der ursprüngliche Text mit Platzhaltern.</param>
''' <param name="pPlaceholder">Der Platzhalter, z.B. "FILENAME_EXT".</param>
''' <param name="pReplacement">Der zu ersetzende Wert.</param>
''' <returns>Der aktualisierte Text.</returns>
Public Shared Function ReplacePlaceholder(pPattern As String, pInput As String, pPlaceholder As String, pReplacement As String) As String
' Erzeuge das Regex-Muster für den Platzhalter (z.B. {#INT#FILENAME_EXT})
Dim pattern As String = "\{#" & pPattern & "#" & Regex.Escape(pPlaceholder) & "\}"
' Ersetze alle Vorkommen mit dem angegebenen Wert
Dim result As String = Regex.Replace(pInput, pattern, pReplacement, RegexOptions.IgnoreCase)
Return result
End Function
Public Shared Function ReplacePattern(input As String, type As String, replacement As String) As String
Dim elements As MatchCollection = regex.Matches(input)

View File

@ -1,12 +1,19 @@
Imports System.Text.RegularExpressions
Imports DigitalData.Modules.Base
Imports DigitalData.Modules.Logging
Public Class ClassPostprocessing
Inherits BaseClass
Private Const VBSPLIT = "VBSPLIT"
Private Const VBREPLACE = "VBREPLACE"
Private Const REGEXPRESSION = "REG. EXPRESSION"
Public Const VBSPLIT = "VBSPLIT"
Public Const VBREPLACE = "VBREPLACE"
Public Const REGEXPRESSION = "REG. EXPRESSION"
Public Shared Function Get_Nachbearbeitung_Wert(idxvalue As String, Datatable As DataTable) As String
Public Sub New(pLogConfig As LogConfig)
MyBase.New(pLogConfig)
End Sub
Public Function Get_Nachbearbeitung_Wert(idxvalue As String, Datatable As DataTable) As String
Dim oIndexValues As List(Of String) = idxvalue.Split(ClassConstants.VECTORSEPARATOR).ToList()
Try
@ -14,9 +21,10 @@ Public Class ClassPostprocessing
Dim oResult As New List(Of String)
Dim oType As String = oDataRow.Item("TYPE").ToString.ToUpper
Logger.Info(" ...Nachbearbeitung mit [{0}]", oType)
Select Case oType
Case VBSPLIT
LOGGER.Info(" ...Nachbearbeitung mit VBSPLIT")
Dim oSeparator As String = oDataRow.Item("TEXT1")
Dim oSplitIndex As Integer = 0
@ -31,82 +39,34 @@ Public Class ClassPostprocessing
Dim oFindString = oDataRow.Item("TEXT1")
Dim oReplaceString = oDataRow.Item("TEXT2")
LOGGER.Info(" ...Nachbearbeitung mit VBREPLACE")
LOGGER.Info(" ...Ersetze '" & oFindString & "' mit '" & oReplaceString & "'")
Logger.Info(" ...Ersetze '" & oFindString & "' mit '" & oReplaceString & "'")
For Each oIndexValue In oIndexValues
Dim oReplaceResult = oIndexValue.Replace(oFindString, oReplaceString)
oResult.Add(oReplaceResult)
Next
Case REGEXPRESSION
LOGGER.Info(" ...Nachbearbeitung mit RegEx")
Case REGEXPRESSION
Dim oRegexList As New List(Of Regex)
Dim oRegex As New Regex(oDataRow.Item("TEXT1"), RegexOptions.IgnoreCase)
oRegexList.Add(oRegex)
For Each oIndexValue In oIndexValues
Dim oProcessedString = extractFromStringviaRE(oIndexValue, oRegexList)
Dim oProcessedString = ExtractFromStringWithRegex(oIndexValue, oRegexList)
oResult.Add(oProcessedString)
LOGGER.Info(" ...Ergebnis des RegEx: " & oProcessedString)
Logger.Info(" ...Ergebnis des RegEx: " & oProcessedString)
Next
End Select
oIndexValues = oResult
Next
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Unexpected error in Get_Nachbearbeitung_Wert:")
LOGGER.Info(" - Unvorhergesehener Unexpected error in Get_Nachbearbeitung_Wert - result: " & idxvalue & " - Fehler: " & vbNewLine & ex.Message)
Logger.Error(ex)
End Try
Return String.Join(ClassConstants.VECTORSEPARATOR, oIndexValues.ToArray)
'Dim result As String = idxvalue
'Try
' For Each row As DataRow In Datatable.Rows
' Select Case row.Item("TYPE").ToString.ToUpper
' Case "VBSPLIT"
' LOGGER.Info(" ...Nachbearbeitung mit VBSPLIT")
' Dim strSplit() As String
' strSplit = result.Split(row.Item("TEXT1"))
' For i As Integer = 0 To strSplit.Length - 1
' If i = CInt(row.Item("TEXT2")) Then
' LOGGER.Info(" ...Split-Ergebnis für Index (" & i.ToString & "): " & strSplit(i))
' result = strSplit(i).ToString
' End If
' Next
' Case "VBREPLACE"
' If LogErrorsOnly = False Then
' LOGGER.Info(" ...Nachbearbeitung mit VBREPLACE")
' LOGGER.Info(" ...Ersetze '" & row.Item("TEXT1") & "' mit '" & row.Item("TEXT2") & "'")
' result = result.Replace(row.Item("TEXT1"), row.Item("TEXT2"))
' End If
' result = result.Replace(row.Item("TEXT1"), row.Item("TEXT2"))
' Case "REG. EXPRESSION"
' LOGGER.Info(" ...Nachbearbeitung mit RegEx")
' Dim RegexList As New List(Of System.Text.RegularExpressions.Regex)
' Dim Regex As New System.Text.RegularExpressions.Regex(row.Item("TEXT1"), System.Text.RegularExpressions.RegexOptions.IgnoreCase)
' RegexList.Add(Regex)
' '
' Dim resultRegex = ClassPostprocessing.extractFromStringviaRE(result, RegexList)
' If Not IsNothing(resultRegex) Then
' LOGGER.Info(" ...Ergebnis des RegEx: " & resultRegex.ToString)
' result = resultRegex.ToString
' Else
' LOGGER.Info("Postprocessing RegEx konnte kein Ergebnis auswerten!")
' End If
' End Select
' Next
' Return result
'Catch ex As Exception
' LOGGER.Info(" - Unvorhergesehener Unexpected error in Get_Nachbearbeitung_Wert - result: " & result & " - Fehler: " & vbNewLine & ex.Message)
' MsgBox(ex.Message, MsgBoxStyle.Critical, "Unexpected error in Get_Nachbearbeitung_Wert:")
' Return result
'End Try
End Function
''' <summary>
@ -116,7 +76,7 @@ Public Class ClassPostprocessing
''' <param name="RegexList">Eine Liste von Regular Expressions</param>
''' <param name="RegexGroup">Die Ergebnisgruppe, die die Adresse enthält</param>
''' <returns>Eine Emailadresse oder Nothing, wenn keine der Regular Expressions ein Ergebnis lieferte.</returns>
Public Shared Function extractFromStringviaRE(SearchString As String, RegexList As List(Of Regex), Optional RegexGroup As Integer = 1)
Private Function ExtractFromStringWithRegex(SearchString As String, RegexList As List(Of Regex), Optional RegexGroup As Integer = 1)
If IsNothing(SearchString) Then
Return Nothing
End If

View File

@ -1,179 +0,0 @@
Imports System.Data
Imports System.Runtime.InteropServices
Imports System.Text
Imports System.Collections.Generic
Public Class ClassWindowAPI
Public Class ApiWindow
Public MainWindowTitle As String = ""
Public ClassName As String = ""
Public hWnd As Int32
End Class
Private Delegate Function EnumCallBackDelegate(ByVal hwnd As Integer, ByVal lParam As Integer) As Integer
' Top-level windows.
Private Declare Function EnumWindows Lib "user32" _
(ByVal lpEnumFunc As EnumCallBackDelegate, ByVal lParam As Integer) As Integer
' Child windows.
Private Declare Function EnumChildWindows Lib "user32" _
(ByVal hWndParent As Integer, ByVal lpEnumFunc As EnumCallBackDelegate, ByVal lParam As Integer) As Integer
' Get the window class.
Private Declare Function GetClassName _
Lib "user32" Alias "GetClassNameA" _
(ByVal hwnd As Integer, ByVal lpClassName As StringBuilder, ByVal nMaxCount As Integer) As Integer
' Test if the window is visible--only get visible ones.
Private Declare Function IsWindowVisible Lib "user32" _
(ByVal hwnd As Integer) As Integer
' Test if the window's parent--only get the one's without parents.
Private Declare Function GetParent Lib "user32" _
(ByVal hwnd As Integer) As Integer
' Get window text length signature.
Private Declare Function SendMessage _
Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Int32, ByVal wMsg As Int32, ByVal wParam As Int32, ByVal lParam As Int32) As Int32
' Get window text signature.
Private Declare Function SendMessage _
Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Int32, ByVal wMsg As Int32, ByVal wParam As Int32, ByVal lParam As StringBuilder) As Int32
Private _listChildren As New List(Of ApiWindow)
Private _listTopLevel As New List(Of ApiWindow)
Private _topLevelClass As String = ""
Private _childClass As String = ""
''' <summary>
''' Get all top-level window information
''' </summary>
''' <returns>List of window information objects</returns>
Public Overloads Function GetTopLevelWindows() As List(Of ApiWindow)
EnumWindows(AddressOf EnumWindowProc, &H0)
Return _listTopLevel
End Function
Public Overloads Function GetTopLevelWindows(ByVal className As String) As List(Of ApiWindow)
_topLevelClass = className
Return Me.GetTopLevelWindows()
End Function
''' <summary>
''' Get all child windows for the specific windows handle (hwnd).
''' </summary>
''' <returns>List of child windows for parent window</returns>
Public Overloads Function GetChildWindows(ByVal hwnd As Int32) As List(Of ApiWindow)
' Clear the window list.
_listChildren = New List(Of ApiWindow)
' Start the enumeration process.
EnumChildWindows(hwnd, AddressOf EnumChildWindowProc, &H0)
' Return the children list when the process is completed.
Return _listChildren
End Function
Public Overloads Function GetChildWindows(ByVal hwnd As Int32, ByVal childClass As String) As List(Of ApiWindow)
' Set the search
_childClass = childClass
Return Me.GetChildWindows(hwnd)
End Function
''' <summary>
''' Callback function that does the work of enumerating top-level windows.
''' </summary>
''' <param name="hwnd">Discovered Window handle</param>
''' <returns>1=keep going, 0=stop</returns>
Private Function EnumWindowProc(ByVal hwnd As Int32, ByVal lParam As Int32) As Int32
' Eliminate windows that are not top-level.
If GetParent(hwnd) = 0 AndAlso CBool(IsWindowVisible(hwnd)) Then
' Get the window title / class name.
Dim window As ApiWindow = GetWindowIdentification(hwnd)
' Match the class name if searching for a specific window class.
If _topLevelClass.Length = 0 OrElse window.ClassName.ToLower() = _topLevelClass.ToLower() Then
_listTopLevel.Add(window)
End If
End If
' To continue enumeration, return True (1), and to stop enumeration
' return False (0).
' When 1 is returned, enumeration continues until there are no
' more windows left.
Return 1
End Function
''' <summary>
''' Callback function that does the work of enumerating child windows.
''' </summary>
''' <param name="hwnd">Discovered Window handle</param>
''' <returns>1=keep going, 0=stop</returns>
Private Function EnumChildWindowProc(ByVal hwnd As Int32, ByVal lParam As Int32) As Int32
Dim window As ApiWindow = GetWindowIdentification(hwnd)
' Attempt to match the child class, if one was specified, otherwise
' enumerate all the child windows.
If _childClass.Length = 0 OrElse window.ClassName.ToLower() = _childClass.ToLower() Then
_listChildren.Add(window)
End If
Return 1
End Function
''' <summary>
''' Build the ApiWindow object to hold information about the Window object.
''' </summary>
Private Function GetWindowIdentification(ByVal hwnd As Integer) As ApiWindow
Const WM_GETTEXT As Int32 = &HD
Const WM_GETTEXTLENGTH As Int32 = &HE
Dim window As New ApiWindow()
Dim title As New StringBuilder()
' Get the size of the string required to hold the window title.
Dim size As Int32 = SendMessage(hwnd, WM_GETTEXTLENGTH, 0, 0)
' If the return is 0, there is no title.
If size > 0 Then
title = New StringBuilder(size + 1)
SendMessage(hwnd, WM_GETTEXT, title.Capacity, title)
End If
' Get the class name for the window.
Dim classBuilder As New StringBuilder(64)
GetClassName(hwnd, classBuilder, 64)
' Set the properties for the ApiWindow object.
window.ClassName = classBuilder.ToString()
window.MainWindowTitle = title.ToString()
window.hWnd = hwnd
Return window
End Function
End Class

View File

@ -8,6 +8,7 @@ Imports WINDREAMLib.WMSearchRelation
Imports WMOBRWSLib
Imports WMOSRCHLib
Imports System.IO
Imports System.Text.RegularExpressions
Public Class ClassWindream
@ -18,6 +19,8 @@ Public Class ClassWindream
Const VARIABLEN = 2
Const WMObjectStreamOpenModeReadWrite = 2
Const STREAM_BinaryObject = "BinaryObject"
Public Const WMObjectVariableValueTypeUndefined = 0
Public Const WMObjectVariableValueTypeString = 1
Public Const WMObjectVariableValueTypeInteger = 2
@ -38,12 +41,12 @@ Public Class ClassWindream
#Region "+++++ Variablen +++++"
Public Shared oConnect ' der Typ darf nicht festgelegt werden (warum auch immer... geht sonst nicht)
Public Shared oSession 'As WINDREAMLib.WMSession ' der Typ darf nicht festgelegt werden (warum auch immer... geht sonst nicht)
Public Shared _session 'As WINDREAMLib.WMSession ' der Typ darf nicht festgelegt werden (warum auch immer... geht sonst nicht)
Public Shared oBrowser As New WMOBRWSLib.ServerBrowser
Public Shared oDokumentTypen As WINDREAMLib.WMObjects
Private oController As New WMOSearchController
Public Shared _DocumentTypes As WINDREAMLib.WMObjects
Private _SearchController As New WMOSearchController
Public Shared _WDObjekttyp As String
Private Shared aktWMObject As WINDREAMLib.WMObject
Private Shared _currentWMObject As WINDREAMLib.WMObject
#End Region
@ -71,13 +74,13 @@ Public Class ClassWindream
Dim ProfileName = wdfLocation.Substring(wdfLocation.LastIndexOf("\") + 1)
Dim ProfilePath = wdfLocation.Substring(0, wdfLocation.Length - ProfileName.Length)
oController = New WMOSearchController
_SearchController = New WMOSearchController
Me.oController.CheckSearchProfile(wdfLocation.ToLower)
Dim suchTyp = Me.oController.SearchProfileTargetProgID
Me._SearchController.CheckSearchProfile(wdfLocation.ToLower)
Dim suchTyp = Me._SearchController.SearchProfileTargetProgID
Dim ExSettings As Object
Dim oSearch As Object
ExSettings = Me.oController.SearchProfileExSettings
ExSettings = Me._SearchController.SearchProfileExSettings
If ExSettings = 0 Then ExSettings = 7
Dim srchQuick As WMOSRCHLib.WMQuickSearch = CreateObject("WMOSrch.WMQuickSearch")
@ -195,7 +198,7 @@ Public Class ClassWindream
Try
Try
' Session-Objekt instanziieren und mit dem im Client ausgewählten Server belegen
oSession = CreateObject("Windream.WMSession", GetCurrentServer)
_session = CreateObject("Windream.WMSession", GetCurrentServer)
LOGGER.Info(" ...windream-Server: '" & GetCurrentServer() & "'")
' Connection-Objekt instanziieren
oConnect = CreateObject("Windream.WMConnect")
@ -224,8 +227,8 @@ Public Class ClassWindream
' oConnect.Password "windream"
' Verbindung mit Session-Objekt (und dem ausgewählten Server) aufbauen
oConnect.LoginSession(oSession)
If oSession.aLoggedin = False Then
oConnect.LoginSession(_session)
If _session.aLoggedin = False Then
MsgBox("Es konnte keine Verbindung mit dem windream-Server hergestellt werden", MsgBoxStyle.Exclamation, "Verbindung konnte nicht hergestellt werden")
Return False
End If
@ -251,10 +254,10 @@ Public Class ClassWindream
'MsgBox(WMCtrl.WMServerName)
Try
oSession.SwitchEvents(WMCOMEventWMSessionNeedIndex, False)
_session.SwitchEvents(WMCOMEventWMSessionNeedIndex, False)
' der Parameter WMEntityDocument definiert, dass nur Dokumenttypen und keine
' Ordnertypen ausgelesen werden
oDokumentTypen = oSession.GetWMObjectTypes(WINDREAMLib.WMEntity.WMEntityDocument)
_DocumentTypes = _session.GetWMObjectTypes(WINDREAMLib.WMEntity.WMEntityDocument)
Catch ex As Exception
Return False
End Try
@ -288,80 +291,18 @@ Public Class ClassWindream
''' <remarks></remarks>
Public Shared Function GetObjecttypesAsObjects() As WMObjects
Try
Return oDokumentTypen
Return _DocumentTypes
Catch ex As Exception
MsgBox("Fehlernachricht:" & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Unexpected error inm Auslesen der Objekttypen")
Return Nothing
End Try
End Function
''' <summary>
''' Liefert alle Objekttypen des aktuellen Servers als Array aus Strings.
''' </summary>
''' <returns>Array mit allen Objekttypen als Strings</returns>
''' <remarks></remarks>
Public Function GetObjecttypesAsStrings() As String()
Try
Dim objektTypenStr(Me.oDokumentTypen.Count) As String
For i As Integer = 0 To Me.oDokumentTypen.Count
objektTypenStr(i) = Me.oDokumentTypen.Item(i).aName
Next
Return objektTypenStr
Catch ex As Exception
MsgBox("Fehlernachricht:" & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Unexpected error inm Auslesen der Objekttypen als String")
Return Nothing
End Try
End Function
Public Function GetTypeOfIndex(ByVal indexname As String) As Integer
Try
Dim oAttribute = oSession.GetWMObjectByName(WINDREAMLib.WMEntity.WMEntityAttribute, indexname)
Dim vType = oAttribute.getVariableValue("dwAttrType")
Return vType
Catch ex As Exception
Return Nothing
End Try
End Function
Public Shared Function GetSystemIndices(ByVal name As String)
Dim oObjectType As WMObject
' den Objekttyp laden
oObjectType = oSession.GetWMObjectByName(WMEntityObjectType, name)
Dim msg As String
Dim oSystemIndexes = oObjectType.GetVariableNames(1, False)
msg = "System indices (internal column names): " & vbNewLine
For Each oSystemIndex In oSystemIndexes
msg = msg & vbNewLine & oSystemIndex
Next
MsgBox(msg)
End Function
Public Shared Function GetTypIndexNames(ByVal name As String)
Dim oObjectType As WMObject
' den Objekttyp laden
oObjectType = oSession.GetWMObjectByName(WMEntityObjectType, name)
Dim msg As String
Dim oSystemIndexes = oObjectType.GetVariableNames(2, False)
msg = "Type Indices (type Index names): " & vbNewLine
For Each oSystemIndex In oSystemIndexes
msg = msg & vbNewLine & oSystemIndex
Next
MsgBox(msg)
End Function
''' <summary>
''' Liefert alle Indexe eines Objekttypen.
''' </summary>
''' <param name="name">Name des Objekttyps</param>
''' <param name="Objecttype_name">Name des Objekttyps</param>
''' <returns>Array mit allen Objekttyp zugeordneten Indexen als String</returns>
''' <remarks></remarks>
Public Shared Function GetIndicesByObjecttype(ByVal Objecttype_name As String) As String()
@ -373,7 +314,7 @@ Public Class ClassWindream
Dim oRelProperties As WMObjectRelationClass
' den Objekttyp laden
oObjectType = oSession.GetWMObjectByName(WMEntityObjectType, Objecttype_name)
oObjectType = _session.GetWMObjectByName(WMEntityObjectType, Objecttype_name)
' Beziehung zu Indizes des Objekttyp auslesen
oIndexAttributes = oObjectType.GetWMObjectRelationByName("TypeAttributes")
@ -406,31 +347,6 @@ Public Class ClassWindream
Return Nothing
End Try
End Function
''' <summary>
''' Liefert einen Objekttyp als WMObject an Hand dessen Name.
''' </summary>
''' <param name="objekttypName">Name des Objekttyps</param>
''' <returns>Objekttyp als WMObject</returns>
''' <remarks></remarks>
Public Function GetObjecttypeByName(ByVal objekttypName As String) As WMObject
Try
' alle Objekttypen auslesen
Dim oObjectTypes As WMObjects = Me.oSession.GetWMObjectTypes(WINDREAMLib.WMEntity.WMEntityDocument)
' alle Objekttypen durchlaufen und nach dem mit dem angegebenen Namen suchen
For Each oObjectType As WMObject In oObjectTypes
If oObjectType.aName = objekttypName Then
Return oObjectType
End If
Next
Return Nothing
Catch ex As Exception
MsgBox("Es konnte ein Objekttyp nicht erstellt werden." & vbNewLine & vbNewLine & "Fehlernachricht:" & vbNewLine & ex.Message, MsgBoxStyle.Exclamation, "Objekttyp konnte nicht erstellt werden")
Return Nothing
End Try
End Function
''' <summary>
''' Überprüft ob der angegebene Index im Objekttyp existiert
@ -467,7 +383,7 @@ Public Class ClassWindream
''' <remarks></remarks>
Public Shared Function IsLoggedIn() As Boolean
Try
Return oSession.aLoggedin
Return _session.aLoggedin
Catch ex As Exception
MsgBox("Es konnte nicht erfolgreich geprüft werden, ob das Programm am windream-Server angemeldted ist." & vbNewLine & vbNewLine & "Fehlernachricht:" & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Unexpected error in Loggedin-Prüfung")
End Try
@ -490,119 +406,52 @@ Public Class ClassWindream
Return ""
End Function
''' <summary>
''' Liefert das Windream-Laufwerk des windream-Servers, in Form '[Laufwerksbuchstabe]:'. (z.B. 'W:')
''' </summary>
''' <returns>Laufwerksbuchstabe mit Doppelpunkt als String</returns>
''' <remarks></remarks>
'Public Function GetWindreamDriveLetter() As String
' Try
' Dim oControl As AISCONTROLDATACOMLib.AISControlData
' Dim sDrive As String = ""
' oControl = New AISCONTROLDATACOMLib.AISControlData
' sDrive = oControl.GetStringValue(&H10040003)
' Return sDrive & ":"
' Catch ex As Exception
' MsgBox("Fehlernachricht: " & ex.Message, MsgBoxStyle.Critical, "Unexpected error inm Auslesen des windream-Laufwerks")
' End Try
' Return ""
'End Function
''' <summary>
''' Liefert den Typen eines Indexes als Integer.
''' </summary>
''' <param name="indexname">Name des zu überprüfenden Indexfeldes</param>
''' <returns>Liefert eine Zahl, die einen Typen beschreibt</returns>
''' <remarks></remarks>
Public Function GetValuesfromAuswahlliste(ByVal _auswahlliste As String) As Object
Try
'Dim oAttribute = Me.oSession.GetWMObjectByName(WINDREAMLib.WMEntity.WMEntityAttribute, indexname)
'Dim vType = oAttribute.getVariableValue("vItems")
'Return vType
Dim oChoiceList = oSession.GetWMObjectByName(WMEntityChoiceList, _auswahlliste)
If Err.Number = 0 And TypeName(oChoiceList) <> "Nothing" Then
Dim Values = oChoiceList
Values = oChoiceList.GetVariableValue("vItems")
Dim anz As Integer = 0
For Each CLItem In Values
If oChoiceList.aName IsNot Nothing Then
anz += 1
End If
Next
Dim strListe(anz - 1)
Dim zahl As Integer = 0
For Each CLItem In Values
If oChoiceList.aName IsNot Nothing Then
strListe(zahl) = CLItem
zahl += 1
End If
Next
Return strListe
Else
MsgBox("Auswahlliste: " & _auswahlliste & " nicht gefunden!", MsgBoxStyle.Critical, "Fehler:")
Return Nothing
End If
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Fehler in GetValuesfromAuswahlliste:")
Return Nothing
End Try
End Function
#End Region
Public Shared Function Stream_File(ByVal filenameQuelle As String, ByVal newfilename As String)
On Error Resume Next
aktWMObject = Nothing
Dim Zielverzeichnis As String = Path.GetDirectoryName(newfilename)
If My.Computer.FileSystem.DirectoryExists(Zielverzeichnis) = False Then
My.Computer.FileSystem.CreateDirectory(Zielverzeichnis)
Public Shared Function Stream_File(ByVal SourceFilePath As String, ByVal NewFileName As String)
_currentWMObject = Nothing
Dim oWindreamFilename As String = NewFileName
Dim oFileName As String = NewFileName
Dim oWDriveRegex As New Regex("^\w{1}:")
If oWDriveRegex.IsMatch(NewFileName) Then
oFileName = oWDriveRegex.Replace(NewFileName, vWLaufwerk)
oWindreamFilename = oWDriveRegex.Replace(NewFileName, String.Empty)
Else
oWindreamFilename = NewFileName.Replace(vWLaufwerk, String.Empty)
End If
'If NewFileName.StartsWith("W:") Then
' oFileName = NewFileName.Replace("W:", vWLaufwerk)
' oWindreamFilename = NewFileName.Replace("W:", String.Empty)
'Else
' oWindreamFilename = NewFileName.Replace(vWLaufwerk, String.Empty)
'End If
Dim oSourceFilename As String = Path.GetFileName(SourceFilePath)
Dim oDestination As String = Path.GetDirectoryName(oFileName)
If My.Computer.FileSystem.DirectoryExists(oDestination) = False Then
My.Computer.FileSystem.CreateDirectory(oDestination)
LOGGER.Info(" - Zielverzeichnis neu erzeugt!")
End If
Const STREAM_BinaryObject = "BinaryObject"
LOGGER.Info(" ...Stream_File wurde gestartet")
Dim windreamFilename As String = ""
' Objekt für Datei und Zielverzeichnis anlegen
Dim Quelldatei_Name As String = Path.GetFileName(filenameQuelle)
LOGGER.Info(" ...Quelldatei gelesen")
'"Version-KZ entfernen
newfilename = newfilename.Replace("\\", "\")
windreamFilename = newfilename.Substring(2)
If windreamFilename.Contains("[%Version]") Then
windreamFilename = windreamFilename.Replace("[%Version]", "")
newfilename = windreamFilename
End If
If My.Computer.FileSystem.DirectoryExists(Zielverzeichnis) Then
If My.Computer.FileSystem.DirectoryExists(oDestination) Then
LOGGER.Info(" ...targetPath existiert")
' Überprüfen ob der zu Kopieren notwendige Speicherplatz auf Ziellaufwerk vorhanden ist
Dim dvr As New DriveInfo(vWLaufwerk & ":")
Dim freeSpace = dvr.TotalFreeSpace
Dim info As New FileInfo(filenameQuelle)
' Get length of the file.
Dim length As Long = info.Length
If freeSpace < length Then
If USER_LANGUAGE = "de-DE" Then
MsgBox("Auf dem Zielverzeichnis ist nicht genug Speicherplatz zum Übertragen frei.", MsgBoxStyle.Exclamation, "Nicht genug Speicherplatz")
Else
MsgBox("Not enough diskspace in Target-Directory.", MsgBoxStyle.Exclamation, "Not enough diskspace")
End If
Dim oFileInfo As New FileInfo(SourceFilePath)
Dim oFileLength As Long = oFileInfo.Length
Return -10
End If
LOGGER.Info(" ...Datei kopieren von '" & filenameQuelle & "' nach '" & newfilename & "'.")
LOGGER.Info(" ...Datei kopieren von '" & SourceFilePath & "' nach '" & NewFileName & "'.")
Dim Connect
Dim Session
Dim WMObject
@ -613,13 +462,6 @@ Public Class ClassWindream
LOGGER.Info(" ...Connect definieren: CreateObject('Windream.WMConnect')")
Connect = CreateObject("Windream.WMConnect")
aFileIO = New WMOTOOLLib.WMFileIO
'If My.Settings.DLL_WMOTOOL = "" Then
' aFileIO = New WMOTOOLLib.WMFileIO
' LOGGER.Info(" ...Direkter Verweis auf New WMOTOOLLib.WMFileIO")
'Else
' aFileIO = CreateObject(My.Settings.DLL_WMOTOOL) 'WMOTool.WMFileIO oder WMOTOOLLib.WMFileIO
' LOGGER.Info(" ...Verwendeter Verweis aus Anwendungsstring: '" & My.Settings.DLL_WMOTOOL & "'")
'End If
wmbrwsr = CreateObject("WMOBrws.ServerBrowser")
'==================================================================
@ -642,7 +484,7 @@ Public Class ClassWindream
LOGGER.Info(" >> Login on dms-Server failed")
' MsgBox("Login failed. ")
End If
oSession = Session
_session = Session
Const WMCOMEventWMSessionNeedIndex = 1
'windream Objekte erstellen ohne Indexierungs-Event
@ -650,10 +492,10 @@ Public Class ClassWindream
'==================================================================
' check if files exist
'==================================================================
LOGGER.Info(" ...ÜBERPRÜFTER DATEINAME => " & windreamFilename)
LOGGER.Info(" ...ÜBERPRÜFTER DATEINAME => " & oWindreamFilename)
Dim wdFilexists As Boolean
LOGGER.Info(" ...Versuch auf die Datei in W: zuzugreifen und zu sperren...")
wdFilexists = Session.WMObjectExists(WMEntityDocument, windreamFilename, 0, 0)
wdFilexists = Session.WMObjectExists(WMEntityDocument, oWindreamFilename, 0, 0)
Err.Clear()
If wdFilexists = False Then
LOGGER.Info(" ...Datei ist NICHT vorhanden, kann also einfach neu angelegt werden")
@ -661,7 +503,7 @@ Public Class ClassWindream
'==================================================================
' create an object
'==================================================================
WMObject = Session.GetNewWMObjectFS(WMEntityDocument, windreamFilename, WMObjectEditModeObject) 'WMEntityDocument, windreamFilename, WMObjectEditModeObject
WMObject = Session.GetNewWMObjectFS(WMEntityDocument, oWindreamFilename, WMObjectEditModeObject) 'WMEntityDocument, windreamFilename, WMObjectEditModeObject
If Err.Number > 0 Then
LOGGER.Info(" FEHLER: WMObject konnte nicht erzeugt werden - Error: '" & Err.Description & "'")
'MsgBox(Err.Description)
@ -670,43 +512,54 @@ Public Class ClassWindream
Else
' wenn auf die Datei zugeriffen werden konnte ist sie bereits vorhanden -> Datum anhängen
LOGGER.Info(" ...Es konnte zugegriffen werden -> DATEI IST BEREITS VORHANDEN")
If CURRENT_DOKART_DUPLICATE_HANDLING = "Default" Or CURRENT_DOKART_DUPLICATE_HANDLING = "Question" Then
''##########
Dim msg = String.Format("Eine Datei mit identischem Namen " & vbNewLine & "'{0}'" & vbNewLine & "existiert bereits!" & vbNewLine & "Wollen Sie die bestehende Datei ersetzen?", newfilename)
If USER_LANGUAGE <> "de-DE" Then
msg = "There is already a file with the same name! Would You like to replace the file?"
End If
Dim result As MsgBoxResult
result = MessageBox.Show(msg, "File alredy exists:", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If result = MsgBoxResult.No Then
windreamFilename = ClassFilehandle.Versionierung_Datei(newfilename).ToString.Substring(2)
Else
If Delete_WDFile(windreamFilename) = False Then
Select Case CURRENT_DOKART_DUPLICATE_HANDLING
Case "New version"
LOGGER.Info("Creating new version of file [{0}]", NewFileName)
oWindreamFilename = ClassFilehandle.Versionierung_Datei(NewFileName).ToString.Substring(2)
CURRENT_NEWFILENAME = oWindreamFilename
Case "Question"
Dim oMessage = $"Eine Datei mit identischem Namen {vbNewLine}'{NewFileName}'{vbNewLine}existiert bereits!{vbNewLine}Wollen Sie die bestehende Datei ersetzen?"
If USER_LANGUAGE <> "de-DE" Then
oMessage = $"There is already a file with the name {NewFileName}!{vbNewLine}Would You like to replace the file?"
End If
Dim oResult = MessageBox.Show(oMessage, "File exists", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If oResult = DialogResult.No Then
oWindreamFilename = ClassFilehandle.Versionierung_Datei(NewFileName).ToString.Substring(2)
Else
If Delete_WDFile(oWindreamFilename) = False Then
Return False
End If
End If
Case Else
If Delete_WDFile(oWindreamFilename) = False Then
Return False
End If
End If
ElseIf CURRENT_DOKART_DUPLICATE_HANDLING = "New version" Then
windreamFilename = ClassFilehandle.Versionierung_Datei(newfilename).ToString.Substring(2)
End If
WMObject = Session.GetNewWMObjectFS(1, windreamFilename, 31) 'WMEntityDocument, windreamFilename, WMObjectEditModeObject
End Select
WMObject = Session.GetNewWMObjectFS(1, oWindreamFilename, 31) 'WMEntityDocument, windreamFilename, WMObjectEditModeObject
If Err.Number > 0 Then
LOGGER.Info(" FEHLER: Neues WMObject (Kopie) konnte nicht erzeugt werden - Error: '" & Err.Description & "'")
'MsgBox(Err.Description)
End If
LOGGER.Info(" ...WMObject zugewiesen")
End If
LOGGER.Info(" ...ENDGÜLTIGER DATEINAME => " & windreamFilename)
LOGGER.Info(" ...ENDGÜLTIGER DATEINAME => " & oWindreamFilename)
If WMObject IsNot Nothing Then
newfilename = vWLaufwerk & ":" & windreamFilename
'NewFileName = vWLaufwerk & ":" & oWindreamFilename
' lock object for file system access (to change the file itself)
WMObject.lock()
' set fileIO the local source file
aFileIO.bstrOriginalFileName = filenameQuelle
aFileIO.bstrOriginalFileName = SourceFilePath
If Err.Number > 0 Then
LOGGER.Info(" FEHLER: fileIO konnte nicht gesetzt werden - Datei wird wieder gelöscht - Error: '" & Err.Description & "'")
LOGGER.Info(" HINWEIS: Überprüfen Sie den Verweis auf die Bibliotheken 'WMOTool.WMFileIO' UND 'WMOTOOLLib.WMFileIO' und ändern diese in den Anwendungseinstellungen (DLL_WMOTOOL)'")
WMObject.Unlock()
Delete_WDFile(windreamFilename)
Delete_WDFile(oWindreamFilename)
Return False
' MsgBox(Err.Description)
@ -716,7 +569,7 @@ Public Class ClassWindream
If Err.Number > 0 Then
LOGGER.Info(" Unexpected error in OpenStream - Datei wird wieder gelöscht - Error: '" & Err.Description & "'")
WMObject.Unlock()
Delete_WDFile(windreamFilename)
Delete_WDFile(oWindreamFilename)
Return False
'MsgBox(Err.Description)
End If
@ -726,7 +579,7 @@ Public Class ClassWindream
If Err.Number > 0 Then
LOGGER.Info(" Unexpected error in Zuweisen aWMStream zu aFileIO - Datei wird wieder gelöscht - Error: '" & Err.Description & "'")
WMObject.Unlock()
Delete_WDFile(windreamFilename)
Delete_WDFile(oWindreamFilename)
Return False
'MsgBox(Err.Description)
End If
@ -735,7 +588,7 @@ Public Class ClassWindream
If Err.Number > 0 Then
LOGGER.Info(" Unexpected error in FileIO.ImportOriginal(True) - Datei wird wieder gelöscht - Error: '" & Err.Description & "'")
WMObject.Unlock()
Delete_WDFile(windreamFilename)
Delete_WDFile(oWindreamFilename)
Return False
' MsgBox(Err.Description)
End If
@ -745,7 +598,7 @@ Public Class ClassWindream
If Err.Number > 0 Then
LOGGER.Info(" Unexpected error in aWMStream.Close() - Datei wird wieder gelöscht - Error: '" & Err.Description & "'")
WMObject.Unlock()
Delete_WDFile(windreamFilename)
Delete_WDFile(oWindreamFilename)
Return False
'MsgBox(Err.Description)
End If
@ -754,7 +607,7 @@ Public Class ClassWindream
If Err.Number > 0 Then
LOGGER.Info(" Unexpected error in WMObject.save - Datei wird wieder gelöscht - Error: '" & Err.Description & "'")
WMObject.Unlock()
Delete_WDFile(windreamFilename)
Delete_WDFile(oWindreamFilename)
Return False
'MsgBox(Err.Description)
End If
@ -764,37 +617,41 @@ Public Class ClassWindream
If Err.Number > 0 Then
LOGGER.Info(" Unexpected error in WMObject.unlock - Datei wird wieder gelöscht - Error: '" & Err.Description & "'")
WMObject.Unlock()
Delete_WDFile(windreamFilename)
Delete_WDFile(oWindreamFilename)
Return False
'MsgBox(Err.Description)
End If
'DATEI GRÖSSE ERMITTELN - MANCHMAL KOMMT ES VOR DAS DATEIGRÖße 0 ist
Dim info2 As New FileInfo(newfilename)
Dim info2 As New FileInfo(oFileName)
Dim length1 As Long = info2.Length
LOGGER.Info(" ...Length der Zieldatei: " & length1.ToString)
If length > 0 And Err.Number = 0 Then
Dim p As String
If windreamFilename.StartsWith("\") Then
If windreamFilename.StartsWith("\\") Then
p = windreamFilename.Replace("\\", "\")
Else
p = windreamFilename
End If
Else
p = "\" & windreamFilename
End If
CURRENT_NEWFILENAME = vWLaufwerk & ":" & p
If oFileLength > 0 And Err.Number = 0 Then
'Dim p As String
'If oWindreamFilename.StartsWith("\") Then
' If oWindreamFilename.StartsWith("\\") Then
' p = oWindreamFilename.Replace("\\", "\")
' Else
' p = oWindreamFilename
' End If
'Else
' p = "\" & oWindreamFilename
'End If
'CURRENT_NEWFILENAME = vWLaufwerk & ":" & p
CURRENT_NEWFILENAME = oFileName
LOGGER.Info(" >> Datei '" & CURRENT_NEWFILENAME & "' wurde erfolgreich importiert!")
aktWMObject = WMObject
_currentWMObject = WMObject
Return True
Else
Delete_WDFile(windreamFilename)
Console.WriteLine(Err.Number.ToString)
Delete_WDFile(oWindreamFilename)
LOGGER.Info("Error Number: [{0}]", Err.Number)
LOGGER.Info(" Unexpected error in Datei-Übertragen - FileLength ist 0, Übertragene Datei wurde gelöscht")
Return False
End If
Else
LOGGER.Info(" Could not create a WMObject for file:'" & windreamFilename)
LOGGER.Info(" Could not create a WMObject for file:'" & oWindreamFilename)
If Not Err() Is Nothing Then
If Not Err.Description Is Nothing Then
LOGGER.Info(Err.Description)
@ -815,7 +672,7 @@ Public Class ClassWindream
End If
Dim WMObject As WINDREAMLib.WMObject '= CreateObject("WINDREAMLib.WMObject") 'New WINDREAMLib.WMObject
Try
WMObject = oSession.GetWMObjectByPath(WINDREAMLib.WMEntity.WMEntityDocument, WD_File) 'WINDREAMLib.WMEntity.WMEntityDocument
WMObject = _session.GetWMObjectByPath(WINDREAMLib.WMEntity.WMEntityDocument, WD_File) 'WINDREAMLib.WMEntity.WMEntityDocument
Catch ex As Exception
LOGGER.Info(">> Could not create WMObject for file '" & WD_File & "' - so it is not existing")
LOGGER.Error(ex.Message)
@ -848,7 +705,7 @@ Public Class ClassWindream
' den Dokumenttyp schreiben
LOGGER.Info(" ## Indexieren wird gestartet ##")
' ein windream-Objekt der Datei anlegen
WMObject = aktWMObject 'oSession.GetWMObjectByPath(WINDREAMLib.WMEntity.WMEntityDocument, WD_File)
WMObject = _currentWMObject 'oSession.GetWMObjectByPath(WINDREAMLib.WMEntity.WMEntityDocument, WD_File)
Try
LOGGER.Info(" ...Datei wird gesperrt")
' die Datei sperren
@ -873,7 +730,7 @@ Public Class ClassWindream
If WMObject.aObjectType.aName = "Standard" Then
' ihr den entsprechenden Dokumenttyp zuweisen
WMObject.aObjectType = oSession.GetWMObjectByName(WINDREAMLib.WMEntity.WMEntityObjectType, _WDObjekttyp)
WMObject.aObjectType = _session.GetWMObjectByName(WINDREAMLib.WMEntity.WMEntityObjectType, _WDObjekttyp)
' WMObject.aObjectType = Me.selectedProfile.Dokumenttyp
LOGGER.Info(" ...Objekttyp wurde gesetzt")
Else
@ -963,7 +820,7 @@ Public Class ClassWindream
' wenn der Datei noch kein Dokumenttyp zugewiesen wurde
If oDocument.aObjectType.aName <> _WDObjekttyp Then
' ihr den entsprechenden Dokumenttyp zuweisen
oDocument.aObjectType = oSession.GetWMObjectByName(WINDREAMLib.WMEntity.WMEntityObjectType, _WDObjekttyp)
oDocument.aObjectType = _session.GetWMObjectByName(WINDREAMLib.WMEntity.WMEntityObjectType, _WDObjekttyp)
' WMObject.aObjectType = Me.selectedProfile.Dokumenttyp
LOGGER.Info(" ...Objekttyp '" & oDocument.aObjectType.aName & "' wurde in '" & _WDObjekttyp & "' geändert.")
Else
@ -986,7 +843,7 @@ Public Class ClassWindream
LOGGER.Info(" >> Indexierung von Index '" & indexname & "'")
End If
' das entsprechende Attribut aus windream auslesen
Dim oAttribute = oSession.GetWMObjectByName(WINDREAMLib.WMEntity.WMEntityAttribute, Indizes(i))
Dim oAttribute = _session.GetWMObjectByName(WINDREAMLib.WMEntity.WMEntityAttribute, Indizes(i))
' den Variablentyp (String, Integer, ...) auslesen
Dim vType = oAttribute.getVariableValue("dwAttrType")
' wenn in aValues an Position i ein Wert steht
@ -1079,6 +936,11 @@ Public Class ClassWindream
LOGGER.Info(" ...Typ des windream-Indexes: 4099 Vektor Kommazahl")
'Vektor Kommazahl
convertValue = CStr(value)
Case 4100
vektor = True
LOGGER.Info(" ...Typ des windream-Indexes: 4100 Vektor Boolean")
'Vektor Kommazahl
convertValue = ToBoolean(value)
Case 4101
vektor = True
LOGGER.Info(" ...Typ des windream-Indexes: 4101 Vektor Date")
@ -1170,6 +1032,10 @@ Public Class ClassWindream
Str = Str.ToString.Replace(" ", "")
'Umwandeln in Double
myArray(0) = CDbl(Str.Replace(".", ","))
Case 4100
' Umwandeln in Boolean
myArray(0) = ToBoolean(value)
Case 4101
'Umwandeln in Date
myArray(0) = CDate(value)
@ -1374,7 +1240,7 @@ Public Class ClassWindream
'Das Array anpassen
ReDim Preserve ValueArray(Anzahl)
'Den Wert im Array speichern
ValueArray(Anzahl) = NewValue.ToString
ValueArray(Anzahl) = NewValue '.ToString
Anzahl += 1
Else
LOGGER.Info(" >> Value '" & NewValue.ToString & "' bereits in Array enthalten")
@ -1383,7 +1249,7 @@ Public Class ClassWindream
'Das Array anpassen
ReDim Preserve ValueArray(Anzahl)
'Den Wert im Array speichern
ValueArray(Anzahl) = NewValue.ToString
ValueArray(Anzahl) = NewValue '.ToString
Anzahl += 1
End If
@ -1461,7 +1327,7 @@ Public Class ClassWindream
Loop
' wenn die Datei existiert
If fileExists Then
WMObject = oSession.GetWMObjectByPath(WINDREAMLib.WMEntity.WMEntityDocument, filenameZiel)
WMObject = _session.GetWMObjectByPath(WINDREAMLib.WMEntity.WMEntityDocument, filenameZiel)
' eine Variable für den umgewandelten Indexwert anlegen (kein Typ, da noch unklar ist was reingeschrieben wird)
'Dim convertValue = Nothing
@ -1472,7 +1338,7 @@ Public Class ClassWindream
Try
' ein windream-Objekt der Datei anlegen
WMObject = oSession.GetWMObjectByPath(WINDREAMLib.WMEntity.WMEntityDocument, filenameZiel)
WMObject = _session.GetWMObjectByPath(WINDREAMLib.WMEntity.WMEntityDocument, filenameZiel)
If LogErrorsOnly = False Then
LOGGER.Info(" - windream-Objekt der Datei erzeugt")
LOGGER.Info(" - Ziel: W:\" & filenameZiel)
@ -1492,7 +1358,7 @@ Public Class ClassWindream
' wenn der Datei noch kein Dokumenttyp zugewiesen wurde
If WMObject.aObjectType.aName = "Standard" Then
' ihr den entsprechenden Dokumenttyp zuweisen
WMObject.aObjectType = oSession.GetWMObjectByName(WINDREAMLib.WMEntity.WMEntityObjectType, _WDObjekttyp)
WMObject.aObjectType = _session.GetWMObjectByName(WINDREAMLib.WMEntity.WMEntityObjectType, _WDObjekttyp)
' WMObject.aObjectType = Me.selectedProfile.Dokumenttyp
End If
@ -1873,7 +1739,7 @@ Public Class ClassWindream
''' <remarks></remarks>
Public Shared Function GetTypeOfIndexAsIntByName(ByVal indexname As String) As Integer
Try
Dim oAttribute = oSession.GetWMObjectByName(WINDREAMLib.WMEntity.WMEntityAttribute, indexname)
Dim oAttribute = _session.GetWMObjectByName(WINDREAMLib.WMEntity.WMEntityAttribute, indexname)
Dim vType = oAttribute.getVariableValue("dwAttrType")
Return vType
Catch ex As Exception
@ -1895,9 +1761,15 @@ Public Class ClassWindream
Return input
Catch ex As Exception
LOGGER.Info("Fehler in CheckIndexValue: " & ex.Message)
LOGGER.Error(ex.message)
LOGGER.Error(ex.Message)
Return Nothing
End Try
End Function
Private Shared Function ToBoolean(input As String) As Boolean
If String.IsNullOrEmpty(input) Then Return False
Return (input.Trim().ToLower() = "true") OrElse (input.Trim() = "1")
End Function
End Class

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\EntityFramework.6.5.1\build\EntityFramework.props" Condition="Exists('..\packages\EntityFramework.6.5.1\build\EntityFramework.props')" />
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
@ -8,11 +9,15 @@
<OutputType>WinExe</OutputType>
<StartupObject>Global_Indexer.My.MyApplication</StartupObject>
<RootNamespace>Global_Indexer</RootNamespace>
<AssemblyName>Global_Indexer</AssemblyName>
<AssemblyName>fileFLOW</AssemblyName>
<FileAlignment>512</FileAlignment>
<MyType>WindowsForms</MyType>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<IsWebBootstrapper>false</IsWebBootstrapper>
<TargetFrameworkProfile />
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
@ -25,10 +30,8 @@
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
@ -37,7 +40,7 @@
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<OutputPath>bin\Debug\</OutputPath>
<DocumentationFile>Global_Indexer.xml</DocumentationFile>
<DocumentationFile>fileFLOW.xml</DocumentationFile>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
@ -47,7 +50,7 @@
<DefineTrace>true</DefineTrace>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DocumentationFile>Global_Indexer.xml</DocumentationFile>
<DocumentationFile>fileFLOW.xml</DocumentationFile>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
</PropertyGroup>
<PropertyGroup>
@ -63,116 +66,234 @@
<OptionInfer>On</OptionInfer>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>DD_Icons_ICO_GLOBIX_128.ico</ApplicationIcon>
<ApplicationIcon>DD_fileFLOW_ICON.ico</ApplicationIcon>
</PropertyGroup>
<PropertyGroup>
<ApplicationManifest>My Project\app.manifest</ApplicationManifest>
</PropertyGroup>
<ItemGroup>
<Reference Include="DevExpress.Charts.v19.2.Core, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<Reference Include="BouncyCastle.Cryptography, Version=2.0.0.0, Culture=neutral, PublicKeyToken=072edcf4a5328938, processorArchitecture=MSIL">
<HintPath>..\packages\BouncyCastle.Cryptography.2.6.1\lib\net461\BouncyCastle.Cryptography.dll</HintPath>
</Reference>
<Reference Include="DevExpress.Charts.v21.2.Core, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="DevExpress.Data.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<Reference Include="DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="DevExpress.DataAccess.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<Reference Include="DevExpress.DataAccess.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="DevExpress.DataAccess.v19.2.UI, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<Reference Include="DevExpress.DataAccess.v21.2.UI, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="DevExpress.Office.v19.2.Core, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<Reference Include="DevExpress.Office.v21.2.Core, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="DevExpress.Pdf.v19.2.Core, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<Reference Include="DevExpress.Pdf.v21.2.Core, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="DevExpress.Pdf.v19.2.Drawing, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<Reference Include="DevExpress.Pdf.v21.2.Drawing, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="DevExpress.RichEdit.v19.2.Export, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<Reference Include="DevExpress.RichEdit.v21.2.Export, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="DevExpress.Printing.v19.2.Core, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<Reference Include="DevExpress.Printing.v21.2.Core, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="DevExpress.RichEdit.v19.2.Core, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<Reference Include="DevExpress.RichEdit.v21.2.Core, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="DevExpress.Sparkline.v19.2.Core, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<Reference Include="DevExpress.Sparkline.v21.2.Core, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="DevExpress.Spreadsheet.v19.2.Core, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<Reference Include="DevExpress.DataVisualization.v21.2.Core, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="DevExpress.Utils.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<Reference Include="DevExpress.Spreadsheet.v21.2.Core, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="DevExpress.Utils.v19.2.UI, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<Reference Include="DevExpress.Data.Desktop.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="DevExpress.XtraBars.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<Reference Include="DevExpress.Utils.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="DevExpress.XtraCharts.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<Reference Include="DevExpress.Utils.v21.2.UI, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="DevExpress.XtraCharts.v19.2.Wizard, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<Reference Include="DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<Reference Include="DevExpress.XtraCharts.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="DevExpress.XtraGrid.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<Reference Include="DevExpress.XtraCharts.v21.2.Wizard, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="DevExpress.XtraLayout.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<Reference Include="DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="DevExpress.XtraNavBar.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<Reference Include="DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="DevExpress.XtraPdfViewer.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<Reference Include="DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="DevExpress.XtraPrinting.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<Reference Include="DevExpress.XtraNavBar.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="DevExpress.Images.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<Reference Include="DevExpress.XtraPdfViewer.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="DevExpress.XtraRichEdit.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<Reference Include="DevExpress.XtraPrinting.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="DevExpress.XtraSpreadsheet.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<Reference Include="DevExpress.Images.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="DevExpress.XtraTreeList.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<Reference Include="DevExpress.XtraRichEdit.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="DigitalData.Controls.DocumentViewer, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<Reference Include="DevExpress.XtraSpreadsheet.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\DDMonorepo\Controls.DocumentViewer\bin\Debug\DigitalData.Controls.DocumentViewer.dll</HintPath>
</Reference>
<Reference Include="DevExpress.XtraTreeList.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="DigitalData.Controls.DocumentViewer, Version=1.9.8.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\DigitalData.Controls.DocumentViewer.1.9.8\lib\net462\DigitalData.Controls.DocumentViewer.dll</HintPath>
</Reference>
<Reference Include="DigitalData.Controls.LookupGrid">
<HintPath>..\..\DDMonorepo\Controls.LookupGrid\bin\Debug\DigitalData.Controls.LookupGrid.dll</HintPath>
<HintPath>..\..\..\2_DLL Projekte\DDMonorepo\Controls.LookupGrid\bin\Debug\DigitalData.Controls.LookupGrid.dll</HintPath>
</Reference>
<Reference Include="DigitalData.Modules.Config">
<HintPath>..\..\DDMonorepo\Modules.Config\bin\Debug\DigitalData.Modules.Config.dll</HintPath>
<Reference Include="DigitalData.GUIs.Common">
<HintPath>..\..\..\2_DLL Projekte\DDMonorepo\GUIs.Common\bin\Debug\DigitalData.GUIs.Common.dll</HintPath>
</Reference>
<Reference Include="DigitalData.Modules.Filesystem">
<HintPath>..\..\DDMonorepo\Modules.Config\bin\Debug\DigitalData.Modules.Filesystem.dll</HintPath>
<Reference Include="DigitalData.GUIs.GlobalIndexer">
<HintPath>..\..\..\2_DLL Projekte\DDMonorepo\GUIs.GlobalIndexer\bin\Debug\DigitalData.GUIs.GlobalIndexer.dll</HintPath>
</Reference>
<Reference Include="DigitalData.Modules.Logging">
<HintPath>..\..\DDMonorepo\Modules.Config\bin\Debug\DigitalData.Modules.Logging.dll</HintPath>
<Reference Include="DigitalData.Modules.Base, Version=1.3.8.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\DigitalData.Modules.Base.1.3.8\lib\net462\DigitalData.Modules.Base.dll</HintPath>
</Reference>
<Reference Include="DLLLicenseManager, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<Reference Include="DigitalData.Modules.Config, Version=1.3.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\DigitalData.Modules.Config.1.3.0\lib\net462\DigitalData.Modules.Config.dll</HintPath>
</Reference>
<Reference Include="DigitalData.Modules.Database, Version=2.3.5.4, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\DigitalData.Modules.Database.2.3.5.4\lib\net462\DigitalData.Modules.Database.dll</HintPath>
</Reference>
<Reference Include="DigitalData.Modules.Encryption, Version=1.3.1.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\DigitalData.Modules.Encryption.1.3.1\lib\net462\DigitalData.Modules.Encryption.dll</HintPath>
</Reference>
<Reference Include="DigitalData.Modules.License, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>P:\Visual Studio Projekte\Bibliotheken\DLLLicenseManager.dll</HintPath>
<HintPath>..\..\..\2_DLL Projekte\DDModules\License\bin\Debug\DigitalData.Modules.License.dll</HintPath>
</Reference>
<Reference Include="Independentsoft.Msg.2.0.570.21482, Version=2.0.570.21482, Culture=neutral, PublicKeyToken=76be97fe952f1ec7, processorArchitecture=MSIL">
<Reference Include="DigitalData.Modules.Logging, Version=2.6.5.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\DigitalData.Modules.Logging.2.6.5\lib\net462\DigitalData.Modules.Logging.dll</HintPath>
</Reference>
<Reference Include="DigitalData.Modules.Messaging, Version=1.9.8.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\DigitalData.Modules.Messaging.1.9.8\lib\net462\DigitalData.Modules.Messaging.dll</HintPath>
</Reference>
<Reference Include="DigitalData.Modules.Patterns, Version=1.3.1.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\DigitalData.Modules.Patterns.1.3.1\lib\net462\DigitalData.Modules.Patterns.dll</HintPath>
</Reference>
<Reference Include="DigitalData.Modules.Windows, Version=1.5.1.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\DigitalData.Modules.Windows.1.5.1\lib\net462\DigitalData.Modules.Windows.dll</HintPath>
</Reference>
<Reference Include="DigitalData.Modules.Windream, Version=1.9.5.2, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>P:\Visual Studio Projekte\Bibliotheken\MSG .NET\Bin\Independentsoft.Msg.2.0.570.21482.dll</HintPath>
<HintPath>..\..\..\2_DLL Projekte\DDModules\Windream\bin\Debug\DigitalData.Modules.Windream.dll</HintPath>
</Reference>
<Reference Include="DigitalData.Modules.ZooFlow, Version=1.3.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>P:\Install .Net\0 DD - Bibliotheken\Modules\ZooFlow\DigitalData.Modules.ZooFlow.dll</HintPath>
</Reference>
<Reference Include="DocumentFormat.OpenXml, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17, processorArchitecture=MSIL">
<HintPath>..\packages\DocumentFormat.OpenXml.3.3.0\lib\net46\DocumentFormat.OpenXml.dll</HintPath>
</Reference>
<Reference Include="DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17, processorArchitecture=MSIL">
<HintPath>..\packages\DocumentFormat.OpenXml.Framework.3.3.0\lib\net46\DocumentFormat.OpenXml.Framework.dll</HintPath>
</Reference>
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\packages\EntityFramework.6.5.1\lib\net45\EntityFramework.dll</HintPath>
</Reference>
<Reference Include="EntityFramework.Firebird, Version=6.4.0.0, Culture=neutral, PublicKeyToken=42d22d092898e5f8, processorArchitecture=MSIL">
<HintPath>..\packages\EntityFramework.Firebird.6.4.0\lib\net452\EntityFramework.Firebird.dll</HintPath>
</Reference>
<Reference Include="EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\packages\EntityFramework.6.5.1\lib\net45\EntityFramework.SqlServer.dll</HintPath>
</Reference>
<Reference Include="FirebirdSql.Data.FirebirdClient, Version=7.5.0.0, Culture=neutral, PublicKeyToken=3750abcc3150b00c, processorArchitecture=MSIL">
<HintPath>..\packages\FirebirdSql.Data.FirebirdClient.7.5.0\lib\net452\FirebirdSql.Data.FirebirdClient.dll</HintPath>
</Reference>
<Reference Include="GdPicture.NET.14, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.dll</HintPath>
</Reference>
<Reference Include="GdPicture.NET.14.barcode.1d.writer, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.barcode.1d.writer.dll</HintPath>
</Reference>
<Reference Include="GdPicture.NET.14.barcode.2d.writer, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.barcode.2d.writer.dll</HintPath>
</Reference>
<Reference Include="GdPicture.NET.14.CAD, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.CAD.dll</HintPath>
</Reference>
<Reference Include="GdPicture.NET.14.CAD.DWG, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.CAD.DWG.dll</HintPath>
</Reference>
<Reference Include="GdPicture.NET.14.Common, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.Common.dll</HintPath>
</Reference>
<Reference Include="GdPicture.NET.14.Document, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.Document.dll</HintPath>
</Reference>
<Reference Include="GdPicture.NET.14.Email, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.Email.dll</HintPath>
</Reference>
<Reference Include="GdPicture.NET.14.HTML, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.HTML.dll</HintPath>
</Reference>
<Reference Include="GdPicture.NET.14.Imaging, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.Imaging.dll</HintPath>
</Reference>
<Reference Include="GdPicture.NET.14.Imaging.Formats, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.Imaging.Formats.dll</HintPath>
</Reference>
<Reference Include="GdPicture.NET.14.Imaging.Formats.Conversion, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.Imaging.Formats.Conversion.dll</HintPath>
</Reference>
<Reference Include="GdPicture.NET.14.Imaging.Rendering, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.Imaging.Rendering.dll</HintPath>
</Reference>
<Reference Include="GdPicture.NET.14.MSOfficeBinary, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.MSOfficeBinary.dll</HintPath>
</Reference>
<Reference Include="GdPicture.NET.14.OpenDocument, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.OpenDocument.dll</HintPath>
</Reference>
<Reference Include="GdPicture.NET.14.OpenXML, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.OpenXML.dll</HintPath>
</Reference>
<Reference Include="GdPicture.NET.14.OpenXML.Templating, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.OpenXML.Templating.dll</HintPath>
</Reference>
<Reference Include="GdPicture.NET.14.PDF, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.PDF.dll</HintPath>
</Reference>
<Reference Include="GdPicture.NET.14.RTF, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.RTF.dll</HintPath>
</Reference>
<Reference Include="GdPicture.NET.14.SVG, Version=14.3.3.0, Culture=neutral, PublicKeyToken=f52a2e60ad468dbb, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.SVG.dll</HintPath>
</Reference>
<Reference Include="GdPicture.NET.14.wia.gateway, Version=1.0.0.0, Culture=neutral, PublicKeyToken=6973b5c22dcf45f7, processorArchitecture=MSIL">
<HintPath>..\packages\GdPicture.14.3.3\lib\net462\GdPicture.NET.14.wia.gateway.dll</HintPath>
<EmbedInteropTypes>True</EmbedInteropTypes>
</Reference>
<Reference Include="IndexRange, Version=1.0.3.0, Culture=neutral, PublicKeyToken=35e6a3c4212514c6, processorArchitecture=MSIL">
<HintPath>..\packages\IndexRange.1.0.3\lib\net45\IndexRange.dll</HintPath>
</Reference>
<Reference Include="Interop.WINDREAMLib">
<HintPath>P:\Visual Studio Projekte\Bibliotheken\windream\Interop.WINDREAMLib.dll</HintPath>
@ -182,23 +303,140 @@
<HintPath>P:\Visual Studio Projekte\Bibliotheken\windream\Interop.WMOTOOLLib.dll</HintPath>
<EmbedInteropTypes>True</EmbedInteropTypes>
</Reference>
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<Reference Include="Mail, Version=3.0.21189.1553, Culture=neutral, PublicKeyToken=6dc438ab78a525b3, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\NLog.4.5.11\lib\net45\NLog.dll</HintPath>
<HintPath>P:\Visual Studio Projekte\Bibliotheken\Limilabs\Mail.dll\Mail.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=9.0.0.6, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.9.0.6\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Bcl.Cryptography, Version=9.0.0.6, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Bcl.Cryptography.9.0.6\lib\net462\Microsoft.Bcl.Cryptography.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Bcl.HashCode, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Bcl.HashCode.6.0.0\lib\net462\Microsoft.Bcl.HashCode.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CSharp" />
<Reference Include="Microsoft.Identity.Client, Version=4.72.1.0, Culture=neutral, PublicKeyToken=0a613f4dd989e8ae, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Identity.Client.4.72.1\lib\net462\Microsoft.Identity.Client.dll</HintPath>
</Reference>
<Reference Include="Microsoft.IdentityModel.Abstractions, Version=8.12.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.IdentityModel.Abstractions.8.12.0\lib\net462\Microsoft.IdentityModel.Abstractions.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json.Bson, Version=1.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.Bson.1.0.3\lib\net45\Newtonsoft.Json.Bson.dll</HintPath>
</Reference>
<Reference Include="NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.5.5.0\lib\net46\NLog.dll</HintPath>
</Reference>
<Reference Include="OpenMcdf, Version=3.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\OpenMcdf.3.0.0\lib\netstandard2.0\OpenMcdf.dll</HintPath>
</Reference>
<Reference Include="Oracle.ManagedDataAccess">
<HintPath>P:\Visual Studio Projekte\Bibliotheken\Oracle.ManagedDataAccess.dll</HintPath>
</Reference>
<Reference Include="PresentationCore" />
<Reference Include="protobuf-net, Version=3.0.0.0, Culture=neutral, PublicKeyToken=257b51d87d2e4d67, processorArchitecture=MSIL">
<HintPath>..\packages\protobuf-net.3.2.52\lib\net462\protobuf-net.dll</HintPath>
</Reference>
<Reference Include="protobuf-net.Core, Version=3.0.0.0, Culture=neutral, PublicKeyToken=257b51d87d2e4d67, processorArchitecture=MSIL">
<HintPath>..\packages\protobuf-net.Core.3.2.52\lib\net462\protobuf-net.Core.dll</HintPath>
</Reference>
<Reference Include="RtfPipe, Version=2.0.7677.4303, Culture=neutral, PublicKeyToken=5f6ab4ce530296d2, processorArchitecture=MSIL">
<HintPath>..\packages\RtfPipe.2.0.7677.4303\lib\net45\RtfPipe.dll</HintPath>
</Reference>
<Reference Include="S22.Imap, Version=3.6.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\S22.Imap.3.6.0.0\lib\net40\S22.Imap.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Buffers, Version=4.0.5.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Buffers.4.6.1\lib\net462\System.Buffers.dll</HintPath>
</Reference>
<Reference Include="System.CodeDom, Version=9.0.0.6, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.CodeDom.9.0.6\lib\net462\System.CodeDom.dll</HintPath>
</Reference>
<Reference Include="System.Collections.Immutable, Version=9.0.0.6, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Collections.Immutable.9.0.6\lib\net462\System.Collections.Immutable.dll</HintPath>
</Reference>
<Reference Include="System.ComponentModel.Composition" />
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.Configuration" />
<Reference Include="System.Data" />
<Reference Include="System.Data.Linq" />
<Reference Include="System.Data.Odbc, Version=9.0.0.6, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Data.Odbc.9.0.6\lib\net462\System.Data.Odbc.dll</HintPath>
</Reference>
<Reference Include="System.Deployment" />
<Reference Include="System.Diagnostics.DiagnosticSource, Version=9.0.0.6, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Diagnostics.DiagnosticSource.9.0.6\lib\net462\System.Diagnostics.DiagnosticSource.dll</HintPath>
</Reference>
<Reference Include="System.DirectoryServices" />
<Reference Include="System.DirectoryServices.AccountManagement" />
<Reference Include="System.Drawing" />
<Reference Include="System.Formats.Asn1, Version=9.0.0.6, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Formats.Asn1.9.0.6\lib\net462\System.Formats.Asn1.dll</HintPath>
</Reference>
<Reference Include="System.IdentityModel" />
<Reference Include="System.IO.Compression" />
<Reference Include="System.IO.Packaging, Version=9.0.0.6, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.Packaging.9.0.6\lib\net462\System.IO.Packaging.dll</HintPath>
</Reference>
<Reference Include="System.IO.Pipelines, Version=9.0.0.6, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.Pipelines.9.0.6\lib\net462\System.IO.Pipelines.dll</HintPath>
</Reference>
<Reference Include="System.Management" />
<Reference Include="System.Memory, Version=4.0.5.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Memory.4.6.3\lib\net462\System.Memory.dll</HintPath>
</Reference>
<Reference Include="System.Net.Http" />
<Reference Include="System.Net.Http.Formatting, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.WebApi.Client.6.0.0\lib\net45\System.Net.Http.Formatting.dll</HintPath>
</Reference>
<Reference Include="System.Numerics" />
<Reference Include="System.Numerics.Vectors, Version=4.1.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Numerics.Vectors.4.6.1\lib\net462\System.Numerics.Vectors.dll</HintPath>
</Reference>
<Reference Include="System.Runtime, Version=4.1.1.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.4.3.1\lib\net462\System.Runtime.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=6.0.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.6.1.2\lib\net462\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.InteropServices, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.InteropServices.4.3.0\lib\net462\System.Runtime.InteropServices.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Runtime.InteropServices.RuntimeInformation, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Runtime.Remoting" />
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.Security" />
<Reference Include="System.Security.Cryptography.Pkcs, Version=9.0.0.6, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Cryptography.Pkcs.9.0.6\lib\net462\System.Security.Cryptography.Pkcs.dll</HintPath>
</Reference>
<Reference Include="System.ServiceModel" />
<Reference Include="System.Text.Encodings.Web, Version=9.0.0.6, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Text.Encodings.Web.9.0.6\lib\net462\System.Text.Encodings.Web.dll</HintPath>
</Reference>
<Reference Include="System.Text.Json, Version=9.0.0.6, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Text.Json.9.0.6\lib\net462\System.Text.Json.dll</HintPath>
</Reference>
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.4.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.6.3\lib\net462\System.Threading.Tasks.Extensions.dll</HintPath>
</Reference>
<Reference Include="System.Transactions" />
<Reference Include="System.ValueTuple, Version=4.0.5.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.ValueTuple.4.6.1\lib\net462\System.ValueTuple.dll</HintPath>
</Reference>
<Reference Include="System.Web.Services" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
@ -206,6 +444,7 @@
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="UIAutomationClient" />
<Reference Include="WindowsBase" />
</ItemGroup>
<ItemGroup>
<Import Include="Microsoft.VisualBasic" />
@ -221,37 +460,27 @@
<Import Include="System.Threading.Tasks" />
</ItemGroup>
<ItemGroup>
<Compile Include="AboutBox1.Designer.vb">
<DependentUpon>AboutBox1.vb</DependentUpon>
<Compile Include="frmAbout.Designer.vb">
<DependentUpon>frmAbout.vb</DependentUpon>
</Compile>
<Compile Include="AboutBox1.vb">
<Compile Include="frmAbout.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="ClassConfig.vb" />
<Compile Include="ClassConstants.vb" />
<Compile Include="ClassControls.vb" />
<Compile Include="ClassDatabase.vb" />
<Compile Include="ClassDatatables.vb" />
<Compile Include="ClassDragDrop.vb" />
<Compile Include="ClassFileDrop.vb" />
<Compile Include="ClassEmail.vb" />
<Compile Include="ClassEncryption.vb" />
<Compile Include="ClassFilehandle.vb" />
<Compile Include="ClassFileHandler.vb" />
<Compile Include="ClassFolderWatcher.vb" />
<Compile Include="ClassFormFunctions.vb" />
<Compile Include="ClassHelper.vb" />
<Compile Include="ClassHotkey_Windream.vb" />
<Compile Include="ClassIDBData.vb" />
<Compile Include="ClassIndexFunctions.vb" />
<Compile Include="ClassInit.vb" />
<Compile Include="ClassLayout.vb" />
<Compile Include="ClassLicence.vb" />
<Compile Include="ClassLogger.vb" />
<Compile Include="ClassParamRefresh.vb" />
<Compile Include="ClassPatterns.vb" />
<Compile Include="ClassPostprocessing.vb" />
<Compile Include="ClassWindowAPI.vb" />
<Compile Include="ClassWindream.vb" />
<Compile Include="ClassEmailHeaderExtractor.vb" />
<Compile Include="clsHotkey.vb" />
<Compile Include="frmAdministration.Designer.vb">
<DependentUpon>frmAdministration.vb</DependentUpon>
</Compile>
@ -270,24 +499,18 @@
<Compile Include="frmConnections.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmEmailIndexing.Designer.vb">
<DependentUpon>frmEmailIndexing.vb</DependentUpon>
</Compile>
<Compile Include="frmEmailIndexing.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmHistory.Designer.vb">
<DependentUpon>frmHistory.vb</DependentUpon>
</Compile>
<Compile Include="frmHistory.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmHotKey_Add.Designer.vb">
<DependentUpon>frmHotKey_Add.vb</DependentUpon>
</Compile>
<Compile Include="frmHotKey_Add.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmHotkey_User.Designer.vb">
<DependentUpon>frmHotkey_User.vb</DependentUpon>
</Compile>
<Compile Include="frmHotkey_User.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmIndex.designer.vb">
<DependentUpon>frmIndex.vb</DependentUpon>
</Compile>
@ -366,21 +589,15 @@
<Compile Include="frmStart.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmTestvb.Designer.vb">
<DependentUpon>frmTestvb.vb</DependentUpon>
</Compile>
<Compile Include="frmTestvb.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="ModuleCURRENT.vb" />
<Compile Include="ModuleHelpers.vb" />
<Compile Include="ModuleMySettings.vb" />
<Compile Include="ModuleRuntime.vb" />
<Compile Include="ModuleUserSavings.vb" />
<Compile Include="ModuleWindowHandles.vb" />
<Compile Include="My Project\AssemblyInfo.vb" />
<Compile Include="My Project\Application.Designer.vb">
<AutoGen>True</AutoGen>
<DependentUpon>Application.myapp</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<Compile Include="My Project\Resources.Designer.vb">
<AutoGen>True</AutoGen>
@ -412,50 +629,61 @@
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="AboutBox1.resx">
<DependentUpon>AboutBox1.vb</DependentUpon>
<EmbeddedResource Include="frmAbout.resx">
<DependentUpon>frmAbout.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="frmAdministration.en-US.resx">
<DependentUpon>frmAdministration.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="frmAdministration.resx">
<DependentUpon>frmAdministration.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="frmConfig_Basic.de.resx">
<DependentUpon>frmConfig_Basic.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="frmConfig_Basic.en-US.resx">
<DependentUpon>frmConfig_Basic.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="frmConfig_Basic.en.resx">
<DependentUpon>frmConfig_Basic.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="frmConfig_Basic.resx">
<DependentUpon>frmConfig_Basic.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="frmConnections.en-US.resx">
<DependentUpon>frmConnections.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="frmConnections.resx">
<DependentUpon>frmConnections.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="frmEmailIndexing.resx">
<DependentUpon>frmEmailIndexing.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="frmHistory.en-US.resx">
<DependentUpon>frmHistory.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="frmHistory.resx">
<DependentUpon>frmHistory.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmHotKey_Add.resx">
<DependentUpon>frmHotKey_Add.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmHotkey_User.en-US.resx">
<DependentUpon>frmHotkey_User.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmHotkey_User.resx">
<DependentUpon>frmHotkey_User.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="frmIndex.en-US.resx">
<DependentUpon>frmIndex.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="frmIndex.en.resx">
<DependentUpon>frmIndex.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="frmIndex.resx">
<DependentUpon>frmIndex.vb</DependentUpon>
@ -463,15 +691,22 @@
</EmbeddedResource>
<EmbeddedResource Include="frmIndexFileList.en-US.resx">
<DependentUpon>frmIndexFileList.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="frmIndexFileList.en.resx">
<DependentUpon>frmIndexFileList.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmIndexFileList.resx">
<DependentUpon>frmIndexFileList.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="frmLicense.en-US.resx">
<DependentUpon>frmLicense.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="frmLicense.resx">
<DependentUpon>frmLicense.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="frmLookupGrid.resx">
<DependentUpon>frmLookupGrid.vb</DependentUpon>
@ -532,13 +767,14 @@
</EmbeddedResource>
<EmbeddedResource Include="frmStart.resx">
<DependentUpon>frmStart.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="My Project\licenses.licx" />
<EmbeddedResource Include="My Project\Resources.resx">
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
<CustomToolNamespace>My.Resources</CustomToolNamespace>
<SubType>Designer</SubType>
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
</EmbeddedResource>
<EmbeddedResource Include="Strings\_frmLicense.en-US.resx">
<Generator>ResXFileCodeGenerator</Generator>
@ -576,24 +812,6 @@
</None>
</ItemGroup>
<ItemGroup>
<COMReference Include="Microsoft.Office.Core">
<Guid>{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}</Guid>
<VersionMajor>2</VersionMajor>
<VersionMinor>7</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>primary</WrapperTool>
<Isolated>False</Isolated>
<EmbedInteropTypes>True</EmbedInteropTypes>
</COMReference>
<COMReference Include="Microsoft.Office.Interop.Outlook">
<Guid>{00062FFF-0000-0000-C000-000000000046}</Guid>
<VersionMajor>9</VersionMajor>
<VersionMinor>5</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>primary</WrapperTool>
<Isolated>False</Isolated>
<EmbedInteropTypes>True</EmbedInteropTypes>
</COMReference>
<COMReference Include="stdole">
<Guid>{00020430-0000-0000-C000-000000000046}</Guid>
<VersionMajor>2</VersionMajor>
@ -716,12 +934,6 @@
<ItemGroup>
<None Include="Resources\arrow_left.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\handdrawn_arrow_left_green.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\handdrawn_arrow_right_green.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\arrow_back_16xMD.png" />
</ItemGroup>
@ -753,20 +965,58 @@
<None Include="Resources\arrow_Up_16xLG.png" />
</ItemGroup>
<ItemGroup>
<Content Include="DD_Icons_ICO_GLOBIX_1.ico" />
<Content Include="DD_Icons_ICO_GLOBIX_128.ico">
<Content Include="DD_fileFLOW_ICON.ico">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Include="GdPicture.NET.14.barcode.1d.reader.64.dll" />
<Content Include="GdPicture.NET.14.barcode.1d.reader.dll" />
<Content Include="GdPicture.NET.14.barcode.2d.reader.64.dll" />
<Content Include="GdPicture.NET.14.barcode.2d.reader.dll" />
<Content Include="GdPicture.NET.14.filters.64.dll" />
<Content Include="GdPicture.NET.14.filters.dll" />
<Content Include="GdPicture.NET.14.image.gdimgplug.64.dll" />
<Content Include="GdPicture.NET.14.image.gdimgplug.dll" />
<Content Include="GdPicture.NET.14.Imaging.ML.64.dll" />
<Content Include="GdPicture.NET.14.Imaging.ML.dll" />
<Content Include="GdPicture.NET.14.Imaging.Rendering.Skia.64.dll" />
<Content Include="GdPicture.NET.14.Imaging.Rendering.Skia.dll" />
<Content Include="GdPicture.NET.14.machine.vision.64.dll" />
<Content Include="GdPicture.NET.14.machine.vision.dll" />
<Content Include="GdPicture.NET.14.twain.client.64.dll" />
<Content Include="GdPicture.NET.14.twain.client.dll" />
<Content Include="globe_handdrawn.ico" />
<Content Include="MailLicense.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="README.txt" />
<None Include="Resources\DD_fileFLOW_BOOT.png" />
<None Include="Resources\DD_fileFLOW_ICON.png" />
<None Include="Resources\Dropitlikeitshot.png" />
<None Include="Resources\SelectAll_32x32.png" />
<None Include="Resources\FileFlow_Boot1.png" />
<None Include="Resources\FileFlow_Boot.bmp" />
<None Include="Resources\file.png" />
<None Include="Resources\shipmentawaiting.svg" />
<None Include="Resources\initialstate1.svg" />
<None Include="Resources\properties1.svg" />
<None Include="Resources\highlight1.svg" />
<None Include="Resources\highlight.svg" />
<None Include="Resources\bo_notifications.svg" />
<None Include="Resources\about.svg" />
<Content Include="Changelog.txt" />
<None Include="Resources\properties.svg" />
<None Include="Resources\initialstate.svg" />
<None Include="Resources\FileFlow_Icon.png" />
<None Include="Resources\FileFlow_Boot.png" />
<None Include="Resources\itemtypechecked.svg" />
<None Include="Resources\trackingchanges_next.svg" />
<None Include="Resources\GLOBIX_short.png" />
<None Include="Resources\Close_16xMD.png" />
<None Include="Resources\Close_16xLG.png" />
<None Include="Resources\DD_Icons_ICO_GLOBIX_128.ico" />
<None Include="Resources\Globix_ico.bmp" />
<None Include="Resources\email.png" />
<None Include="Resources\DD_Icons-GLOBIX.png" />
<None Include="Resources\action_add_16xMD.png" />
<None Include="Resources\action_add_16xLG1.png" />
<None Include="Resources\globe_handdrawn.png" />
<None Include="Resources\arrow_previous_16xLG.png" />
<None Include="Resources\Excel_25ixel.jpg" />
<None Include="Resources\cancel.png" />
@ -780,6 +1030,16 @@
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
<Import Project="..\packages\GdPicture.runtimes.windows.14.3.3\build\net462\GdPicture.runtimes.windows.targets" Condition="Exists('..\packages\GdPicture.runtimes.windows.14.3.3\build\net462\GdPicture.runtimes.windows.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}".</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\GdPicture.runtimes.windows.14.3.3\build\net462\GdPicture.runtimes.windows.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\GdPicture.runtimes.windows.14.3.3\build\net462\GdPicture.runtimes.windows.targets'))" />
<Error Condition="!Exists('..\packages\EntityFramework.6.5.1\build\EntityFramework.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\EntityFramework.6.5.1\build\EntityFramework.props'))" />
<Error Condition="!Exists('..\packages\EntityFramework.6.5.1\build\EntityFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\EntityFramework.6.5.1\build\EntityFramework.targets'))" />
</Target>
<Import Project="..\packages\EntityFramework.6.5.1\build\EntityFramework.targets" Condition="Exists('..\packages\EntityFramework.6.5.1\build\EntityFramework.targets')" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<License>
<Id>4dc5ef40-f1a9-468b-994c-b7ed600ad878</Id>
<ProductName>Mail.dll</ProductName>
<SubscriptionUntil>2022-07-29</SubscriptionUntil>
<RegisteredTo>Digital Data GmbH</RegisteredTo>
<LicenseType>single developer</LicenseType>
<BuyerName>Digital Data GmbH</BuyerName>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
<Reference URI="">
<Transforms>
<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<DigestValue>75MRtl4ipYelIZYlpT8O7QDX9Zc=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>Raxfkz6DfQVs/sMvH+F2nH0eHXD8FoUFSdP3t7AgBUdpABJQx86srlyuMSEhXPlc1THCqPouEVob4RsWnd9OXvTiPPSOUSK9zuNG6uz93KLAhpSD5PraAgBCF4jwZArlAp7aCNfZpHqQ3w6TRHS+CfravUU0AHHG3MZ1ZcRkGuo=</SignatureValue>
</Signature>
</License>

View File

@ -1,88 +1,88 @@
Imports DigitalData.Modules.Config
Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.Base
Imports DigitalData.Modules.Messaging
Module ModuleCURRENT
Public ERROR_STATE As String
Public START_INCOMPLETE As Boolean = False
Public CURRENT_FILENAME As String
Public CURRENT_NEWFILENAME As String
Public CURRENT_WORKFILE_GUID As Integer
Public CURRENT_WORKFILE As String
Public CURR_WORKFILE_EXTENSION As String
Public Property ERROR_STATE As String
Public Property START_INCOMPLETE As Boolean = False
Public Property CURRENT_FILENAME As String
Public Property CURRENT_NEWFILENAME As String
Public Property CURRENT_WORKFILE_GUID As Integer
Public Property CURRENT_WORKFILE_HASH As String
Public Property CURRENT_WORKFILE As String
Public Property CURR_WORKFILE_EXTENSION As String
Public CONFIG As ConfigManager(Of ClassConfig)
Public LOGCONFIG As LogConfig
Public LOGGER As Logger
Public Property CONFIG As ConfigManager(Of ClassConfig)
Public Property LOGCONFIG As LogConfig
Public Property LOGGER As Logger
Public Property EMAIL As Email2
Public Property FILESYSTEM As FilesystemEx
Public CURRENT_DOKART_ID As Integer
Public CURRENT_DOKART_DUPLICATE_HANDLING As String = "Default"
Public CURRENT_LASTDOKART As String = ""
Public CURRENT_INDEXMAN As Integer
Public CURRENT_INDEXAUTO As Integer
Public CURRENT_SQL_CONFIG As String
Public Property FILE_HANDLER As ClassFileHandler
Public Property FOLDER_WATCHER As ClassFolderWatcher
Public VERSION_DELIMITER As String
Public FILE_DELIMITER As String
Public CURRENT_MESSAGEID As String
Public CURRENT_MESSAGEDATE As String
Public CURRENT_MESSAGESUBJECT As String
Public CURRENT_ISATTACHMENT As Boolean = False
Public Property CURRENT_DOKART_ID As Integer
Public Property CURRENT_DOKART_DUPLICATE_HANDLING As String = "Default"
Public Property CURRENT_LASTDOKART As String = ""
Public Property CURRENT_INDEXMAN As Integer
Public Property CURRENT_INDEXAUTO As Integer
Public USER_ID
Public USER_IN_MODULE As Boolean = False
Public USER_IS_ADMIN As Boolean = False
Public UserLoggedin As Integer = 0
Public Property VERSION_DELIMITER As String
Public Property FILE_DELIMITER As String
Public Property CURRENT_MESSAGEID As String
Public Property CURRENT_MESSAGEDATE As String
Public Property CURRENT_MESSAGESUBJECT As String
Public Property CURRENT_ISATTACHMENT As Boolean = False
Public USER_SHORT_NAME As String = ""
Public USER_PRENAME As String = ""
Public USER_SURNAME As String = ""
Public USER_EMAIL As String = ""
Public USER_LANGUAGE As String = "DE"
Public USER_USERNAME As String = ""
Public Property USER_ID
Public Property USER_IN_MODULE As Boolean = False
Public Property USER_IS_ADMIN As Boolean = False
Public CURRENT_FOLDERWATCH As String = ""
Public CURRENT_SCAN_FOLDERWATCH As String = ""
Public Property USER_SHORTNAME As String = ""
Public Property USER_PRENAME As String = ""
Public Property USER_SURNAME As String = ""
Public Property USER_EMAIL As String = ""
Public Property USER_LANGUAGE As String = "DE"
Public Property USER_USERNAME As String = ""
Public Property USERCOUNT_LOGGED_IN As Integer = 0
Public FWFunction_STARTED As Boolean = False
Public Property CURRENT_FOLDERWATCH As String = ""
Public Property CURRENT_SCAN_FOLDERWATCH As String = ""
Public CURR_DOKART_WD_DIRECT As Boolean = False
Public CURR_DOKART_OBJECTTYPE As String
Public CURRENT_WD_TEMPSEARCH As String = ""
Public Property FWFunction_STARTED As Boolean = False
Public LICENSE_EXPIRED As Boolean = False
Public LICENSE_COUNT As Integer = 0
Public LICENSE_DOCTYPE_COUNT As Integer = 0
Public DOCTYPE_COUNT_ACTUAL As Integer = 0
Public LicenseHotKey As Integer = 0
Public Property CURR_DOKART_WD_DIRECT As Boolean = False
Public Property CURR_DOKART_OBJECTTYPE As String
Public CURRENT_HTML_DOC As String
Public Property LICENSE_EXPIRED As Boolean = False
Public Property LICENSE_COUNT As Integer = 0
Public Property LICENSE_DOCTYPE_COUNT As Integer = 0
Public Property DOCTYPE_COUNT_ACTUAL As Integer = 0
Public Property LicenseHotKey As Integer = 0
Public INDEXING_ACTIVE As Boolean = False
Public MULTIINDEXING_ACTIVE As Boolean = False
Public ABORT_INDEXING As Boolean = False
Public Property INDEXING_ACTIVE As Boolean = False
Public Property MULTIINDEXING_ACTIVE As Boolean = False
Public Property ABORT_INDEXING As Boolean = False
Public DTACTUAL_FILES As DataTable
Public DTEXCLUDE_FILES As DataTable
Public DTTBGI_REGEX_DOCTYPE As DataTable
Public Property DTACTUAL_FILES As DataTable
Public Property DTEXCLUDE_FILES As DataTable
Public Property DTTBGI_REGEX_DOCTYPE As DataTable
Public CURRENT_SQLRESULT As String
Public DTSQL_RESULT As DataTable
Public TEMP_FILES As List(Of String) = New List(Of String)
Public Property CURRENT_SQLRESULT As String
Public Property DTSQL_RESULT As DataTable
Public CURRENT_FOCUSES_WINDOWNAME As String
Public Property LANGUAGE_CHANGED As Boolean = False
Public Property CURR_MISSING_PATTERN_NAME As String
Public Property CURR_MISSING_SEARCH_STRING As String
Public Property CURR_MISSING_MANUAL_VALUE As String
Public Property CURR_DELETE_ORIGIN As Boolean = False
Public Property CURRENT_DT_REGEX As DataTable
Public Property REGEX_CLEAN_FILENAME As String = "[?*^""<>|]"
Public Property CURRENT_DROPTYPE
Public LANGUAGE_CHANGED As Boolean = False
Public CURR_MISSING_PATTERN_NAME As String
Public CURR_MISSING_SEARCH_STRING As String
Public CURR_MISSING_MANUAL_VALUE As String
Public CURR_DELETE_ORIGIN As Boolean = False
Public CURRENT_DT_REGEX As DataTable
Public REGEX_CLEAN_FILENAME As String = "[?*^""<>|]"
Public CURRENT_DROPTYPE
Public VIEWER_LICENSE As String = ""
Public INDEX_FORM_LOADED As Boolean
Public Property VIEWER_LICENSE As String = ""
Public CURRENT_DOC_ID As Integer
End Module

View File

@ -1,15 +0,0 @@
Module ModuleHelpers
''' <summary>
''' Überprüft einen Wert auf verschiedene Arten von "Null" und gibt einen Standard-Wert zurück, wenn der Wert "Null" ist.
''' </summary>
''' <param name="value">Der zu überprüfende Wert</param>
''' <param name="defaultValue">Der Standard Wert</param>
''' <returns>value oder wenn dieser "Null" ist, defaultValue</returns>
Public Function NotNull(Of T)(ByVal value As T, ByVal defaultValue As T) As T
If IsNothing(value) OrElse String.IsNullOrEmpty(value.ToString) OrElse IsDBNull(value) Then
Return defaultValue
Else
Return value
End If
End Function
End Module

View File

@ -1,15 +0,0 @@
Imports System.IO
Imports System.Xml
Module ModuleMySettings
'Dim ConfigPath As String = Path.Combine(Application.UserAppDataPath(), "UserConfig.xml")
Public Const USER_CONFIG_FILE = "UserConfig.xml"
Public Const COMPUTER_CONFIG_FILE = "ComputerConfig.xml"
Public MyConnectionString As String = ""
Public LogErrorsOnly As Boolean = True
Public GI_withWindream As Boolean = False
Public vWLaufwerk As String = "W"
'Public myPreviewActive As Boolean = True
Public FW_started As Boolean = False
End Module

View File

@ -0,0 +1,35 @@
Imports System.IO
Imports System.Xml
Imports DigitalData.Modules.Database
Imports DigitalData.Modules.Windream
Module ModuleRuntime
'Dim ConfigPath As String = Path.Combine(Application.UserAppDataPath(), "UserConfig.xml")
Public Const USER_CONFIG_FILE = "UserConfig.xml"
Public Const COMPUTER_CONFIG_FILE = "ComputerConfig.xml"
Public Const WINDREAM_BASEPATH = "\\windream\objects"
Public MyConnectionString As String = ""
Public LogErrorsOnly As Boolean = True
Public GI_withWindream As Boolean = False
Public WMDrive As String = "W"
Public WM_DB_SERVER As String = ""
'Public myPreviewActive As Boolean = True
Public Property FW_started As Boolean = False
Public IDB_ACTIVE As Boolean = False
Public WORKING_MODE As String
Public Property CONNECTION_STRING_IDB As String
Public IDBData As ClassIDBData
Public IDB_USES_WMFILESTORE As Boolean = False
Public IDB_DOC_DATA_SQL As String
Public IDB_DT_DOC_DATA As DataTable
Public IDB_DOC_ID As Int64
Public IDB_LOG_INDEX As String
Public Property WINDREAM As Windream
Public Property DATABASE_ECM As MSSQLServer
Public Property DATABASE_IDB As MSSQLServer
End Module

View File

@ -10,12 +10,12 @@ Imports System.Runtime.InteropServices
' Die Werte der Assemblyattribute überprüfen
<Assembly: AssemblyTitle("Global Indexer")>
<Assembly: AssemblyDescription("")>
<Assembly: AssemblyCompany("Digital Data")>
<Assembly: AssemblyProduct("Global Indexer")>
<Assembly: AssemblyCopyright("Copyright © 2020")>
<Assembly: AssemblyTrademark("")>
<Assembly: AssemblyTitle("fileFLOW")>
<Assembly: AssemblyDescription("")>
<Assembly: AssemblyCompany("Digital Data")>
<Assembly: AssemblyProduct("fileFLOW")>
<Assembly: AssemblyCopyright("Copyright © 2025")>
<Assembly: AssemblyTrademark("2.8.0.0")>
<Assembly: ComVisible(False)>
@ -33,7 +33,7 @@ Imports System.Runtime.InteropServices
' übernehmen, indem Sie "*" eingeben:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("2.0.0.8")>
<Assembly: AssemblyFileVersion("1.0.0.0")>
<Assembly: AssemblyVersion("2.8.0.0")>
<Assembly: AssemblyFileVersion("1.0.0.0")>
<Assembly: NeutralResourcesLanguageAttribute("")>

View File

@ -22,7 +22,7 @@ Namespace My.Resources
'''<summary>
''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw.
'''</summary>
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0"), _
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0"), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
Global.Microsoft.VisualBasic.HideModuleNameAttribute()> _
@ -60,6 +60,16 @@ Namespace My.Resources
End Set
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage.
'''</summary>
Friend ReadOnly Property about() As DevExpress.Utils.Svg.SvgImage
Get
Dim obj As Object = ResourceManager.GetObject("about", resourceCulture)
Return CType(obj,DevExpress.Utils.Svg.SvgImage)
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
'''</summary>
@ -200,6 +210,16 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage.
'''</summary>
Friend ReadOnly Property bo_notifications() As DevExpress.Utils.Svg.SvgImage
Get
Dim obj As Object = ResourceManager.GetObject("bo_notifications", resourceCulture)
Return CType(obj,DevExpress.Utils.Svg.SvgImage)
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
'''</summary>
@ -323,9 +343,9 @@ Namespace My.Resources
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
'''</summary>
Friend ReadOnly Property DD_Icons_GLOBIX() As System.Drawing.Bitmap
Friend ReadOnly Property DD_fileFLOW_BOOT() As System.Drawing.Bitmap
Get
Dim obj As Object = ResourceManager.GetObject("DD_Icons-GLOBIX", resourceCulture)
Dim obj As Object = ResourceManager.GetObject("DD_fileFLOW_BOOT", resourceCulture)
Return CType(obj,System.Drawing.Bitmap)
End Get
End Property
@ -333,9 +353,9 @@ Namespace My.Resources
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
'''</summary>
Friend ReadOnly Property DD_Icons_ICO_GLOBIX_128() As System.Drawing.Bitmap
Friend ReadOnly Property DD_fileFLOW_ICON() As System.Drawing.Bitmap
Get
Dim obj As Object = ResourceManager.GetObject("DD_Icons_ICO_GLOBIX_128", resourceCulture)
Dim obj As Object = ResourceManager.GetObject("DD_fileFLOW_ICON", resourceCulture)
Return CType(obj,System.Drawing.Bitmap)
End Get
End Property
@ -360,6 +380,16 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
'''</summary>
Friend ReadOnly Property Dropitlikeitshot() As System.Drawing.Bitmap
Get
Dim obj As Object = ResourceManager.GetObject("Dropitlikeitshot", resourceCulture)
Return CType(obj,System.Drawing.Bitmap)
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
'''</summary>
@ -400,6 +430,26 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
'''</summary>
Friend ReadOnly Property file() As System.Drawing.Bitmap
Get
Dim obj As Object = ResourceManager.GetObject("file", resourceCulture)
Return CType(obj,System.Drawing.Bitmap)
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
'''</summary>
Friend ReadOnly Property FileFlow_Boot() As System.Drawing.Bitmap
Get
Dim obj As Object = ResourceManager.GetObject("FileFlow_Boot", resourceCulture)
Return CType(obj,System.Drawing.Bitmap)
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
'''</summary>
@ -450,16 +500,6 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
'''</summary>
Friend ReadOnly Property globe_handdrawn() As System.Drawing.Bitmap
Get
Dim obj As Object = ResourceManager.GetObject("globe_handdrawn", resourceCulture)
Return CType(obj,System.Drawing.Bitmap)
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
'''</summary>
@ -471,22 +511,52 @@ Namespace My.Resources
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage.
'''</summary>
Friend ReadOnly Property handdrawn_arrow_left_green() As System.Drawing.Bitmap
Friend ReadOnly Property highlight() As DevExpress.Utils.Svg.SvgImage
Get
Dim obj As Object = ResourceManager.GetObject("handdrawn_arrow_left_green", resourceCulture)
Return CType(obj,System.Drawing.Bitmap)
Dim obj As Object = ResourceManager.GetObject("highlight", resourceCulture)
Return CType(obj,DevExpress.Utils.Svg.SvgImage)
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage.
'''</summary>
Friend ReadOnly Property handdrawn_arrow_right_green() As System.Drawing.Bitmap
Friend ReadOnly Property highlight1() As DevExpress.Utils.Svg.SvgImage
Get
Dim obj As Object = ResourceManager.GetObject("handdrawn_arrow_right_green", resourceCulture)
Return CType(obj,System.Drawing.Bitmap)
Dim obj As Object = ResourceManager.GetObject("highlight1", resourceCulture)
Return CType(obj,DevExpress.Utils.Svg.SvgImage)
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage.
'''</summary>
Friend ReadOnly Property initialstate() As DevExpress.Utils.Svg.SvgImage
Get
Dim obj As Object = ResourceManager.GetObject("initialstate", resourceCulture)
Return CType(obj,DevExpress.Utils.Svg.SvgImage)
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage.
'''</summary>
Friend ReadOnly Property initialstate1() As DevExpress.Utils.Svg.SvgImage
Get
Dim obj As Object = ResourceManager.GetObject("initialstate1", resourceCulture)
Return CType(obj,DevExpress.Utils.Svg.SvgImage)
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage.
'''</summary>
Friend ReadOnly Property itemtypechecked() As DevExpress.Utils.Svg.SvgImage
Get
Dim obj As Object = ResourceManager.GetObject("itemtypechecked", resourceCulture)
Return CType(obj,DevExpress.Utils.Svg.SvgImage)
End Get
End Property
@ -530,6 +600,26 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage.
'''</summary>
Friend ReadOnly Property properties() As DevExpress.Utils.Svg.SvgImage
Get
Dim obj As Object = ResourceManager.GetObject("properties", resourceCulture)
Return CType(obj,DevExpress.Utils.Svg.SvgImage)
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage.
'''</summary>
Friend ReadOnly Property properties1() As DevExpress.Utils.Svg.SvgImage
Get
Dim obj As Object = ResourceManager.GetObject("properties1", resourceCulture)
Return CType(obj,DevExpress.Utils.Svg.SvgImage)
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
'''</summary>
@ -580,6 +670,16 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
'''</summary>
Friend ReadOnly Property SelectAll_32x32() As System.Drawing.Bitmap
Get
Dim obj As Object = ResourceManager.GetObject("SelectAll_32x32", resourceCulture)
Return CType(obj,System.Drawing.Bitmap)
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
'''</summary>
@ -590,6 +690,16 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage.
'''</summary>
Friend ReadOnly Property shipmentawaiting() As DevExpress.Utils.Svg.SvgImage
Get
Dim obj As Object = ResourceManager.GetObject("shipmentawaiting", resourceCulture)
Return CType(obj,DevExpress.Utils.Svg.SvgImage)
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
'''</summary>
@ -600,6 +710,16 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ DevExpress.Utils.Svg.SvgImage.
'''</summary>
Friend ReadOnly Property trackingchanges_next() As DevExpress.Utils.Svg.SvgImage
Get
Dim obj As Object = ResourceManager.GetObject("trackingchanges_next", resourceCulture)
Return CType(obj,DevExpress.Utils.Svg.SvgImage)
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
'''</summary>

View File

@ -118,169 +118,205 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="arrow_back_16xMD" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\arrow_back_16xMD.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="refresh_16xLG" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\refresh_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="arrow_Up_16xLG" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\arrow_Up_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="bell_go" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\bell_go.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="save_16xMD" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\save_16xMD.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="WindowsForm_817_12x" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\WindowsForm_817_12x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="DD_Icons_ICO_GLOBIX_128" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\DD_Icons_ICO_GLOBIX_128.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="DD_Icons-GLOBIX" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\DD_Icons-GLOBIX.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="gear_32xSM" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\gear_32xSM.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="bell_delete" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\bell_delete.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="database_save1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\database_save1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="action_add_16xLG1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\action_add_16xLG1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Einstellungen6" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Einstellungen6.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="arrow_Forward_16xMD" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\arrow_Forward_16xMD.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="refresh_16xMD" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\refresh_16xMD.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="key_go" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\key_go.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="arrow_previous_16xLG" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\arrow_previous_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="delete_12x12" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\delete_12x12.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="globe_handdrawn" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\globe_handdrawn.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="cancel" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\cancel.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="database_save2" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\database_save2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="folder_Open_32xSM" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\folder_Open_32xSM.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="arrow_right" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\arrow_right.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="page_red" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\page_red.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="folder_go" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\folder_go.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="handdrawn_arrow_right_green" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\handdrawn_arrow_right_green.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="initialstate1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\initialstate1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="key" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\key.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="arrow_refresh" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\arrow_refresh.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="email" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\email.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="database_go" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\database_go.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="add" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\add.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="KeyDown_8461_12x" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\KeyDown_8461_12x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="database_connect" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\database_connect.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Einstellungen5" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Einstellungen5.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Excel_25ixel" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Excel_25ixel.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="bullet_arrow_top" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\bullet_arrow_top.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="CheckOutforEdit_13187_32x" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\CheckOutforEdit_13187_32x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="save_16xLG" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\save_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="action_add_16xLG" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\action_add_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Shortcut_8169_16x" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Shortcut_8169_16x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="arrow_left" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\arrow_left.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Copy_6524" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Copy_6524.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Go" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Go.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Benutzer" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Benutzer.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="database_refresh" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\database_refresh.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="action_add_16xMD" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\action_add_16xMD.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Selectallrowsfrom_tableA__294" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Selectallrowsfrom_tableA__294.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="folder_link" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\folder_link.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="refresh_16xLG" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\refresh_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="handdrawn_arrow_left_green" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\handdrawn_arrow_left_green.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="initialstate" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\initialstate.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="delete2" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\delete2.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="FileFlow_Boot" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\FileFlow_Boot1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="bell_delete" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\bell_delete.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="gear_32xLG" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\gear_32xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Save_6530" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Save_6530.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="save_16xMD" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\save_16xMD.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="database_save" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\database_save.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="bell_go" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\bell_go.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="action_add_16xMD" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\action_add_16xMD.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="database_save2" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\database_save2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="cancel" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\cancel.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="folder_link" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\folder_link.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="bo_notifications" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\bo_notifications.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="WindowsForm_817_12x" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\WindowsForm_817_12x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="trackingchanges_next" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\trackingchanges_next.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="database_go" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\database_go.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="email" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\email.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Close_16xLG" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Close_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="gear_32xSM" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\gear_32xSM.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="arrow_Forward_16xMD" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\arrow_Forward_16xMD.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="key_go" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\key_go.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="arrow_left" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\arrow_left.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Benutzer" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Benutzer.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="DD_fileFLOW_ICON" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\DD_fileFLOW_ICON.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="folder_Open_32xSM" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\folder_Open_32xSM.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="properties1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\properties1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="highlight1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\highlight1.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="properties" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\properties.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="arrow_back_16xMD" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\arrow_back_16xMD.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="CheckOutforEdit_13187_32x" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\CheckOutforEdit_13187_32x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Close_16xMD" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Close_16xMD.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="action_add_16xLG1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\action_add_16xLG1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="itemtypechecked" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\itemtypechecked.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="file" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\file.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="add" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\add.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="refresh_16xMD" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\refresh_16xMD.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="arrow_previous_16xLG" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\arrow_previous_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Save_6530" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Save_6530.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Go" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Go.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="bullet_arrow_top" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\bullet_arrow_top.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="database_connect" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\database_connect.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="delete_12x12" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\delete_12x12.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="arrow_right" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\arrow_right.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="database_save1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\database_save1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="page_red" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\page_red.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="shipmentawaiting" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\shipmentawaiting.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="folder_go" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\folder_go.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Shortcut_8169_16x" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Shortcut_8169_16x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="about" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\about.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="arrow_Up_16xLG" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\arrow_Up_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="KeyDown_8461_12x" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\KeyDown_8461_12x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="arrow_refresh" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\arrow_refresh.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Selectallrowsfrom_tableA__294" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Selectallrowsfrom_tableA__294.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Copy_6524" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Copy_6524.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Dropitlikeitshot" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Dropitlikeitshot.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="database_save" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\database_save.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Excel_25ixel" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Excel_25ixel.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="SelectAll_32x32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\SelectAll_32x32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="action_add_16xLG" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\action_add_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="highlight" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\highlight.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="save_16xLG" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\save_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Einstellungen5" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Einstellungen5.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Einstellungen6" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Einstellungen6.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="DD_fileFLOW_BOOT" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\DD_fileFLOW_BOOT.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

View File

@ -15,7 +15,7 @@ Option Explicit On
Namespace My
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.4.0.0"), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.14.0.0"), _
Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Partial Friend NotInheritable Class MySettings
Inherits Global.System.Configuration.ApplicationSettingsBase
@ -57,13 +57,31 @@ Namespace My
<Global.System.Configuration.ApplicationScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.SpecialSettingAttribute(Global.System.Configuration.SpecialSetting.ConnectionString), _
Global.System.Configuration.DefaultSettingValueAttribute("Data Source=SDD-VMP04-SQL17\DD_DEVELOP01;Initial Catalog=DD_ECM_TEST;Persist Secu"& _
"rity Info=True;User ID=sa;Password=dd")> _
Global.System.Configuration.DefaultSettingValueAttribute("Data Source=SDD-VMP04-SQL17\DD_DEVELOP01;Initial Catalog=DD_ECM;Persist Security "& _
"Info=True;User ID=sa;Password=dd")> _
Public ReadOnly Property DD_ECMConnectionString() As String
Get
Return CType(Me("DD_ECMConnectionString"),String)
End Get
End Property
<Global.System.Configuration.ApplicationScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("11.2024")> _
Public ReadOnly Property GDPICTURE_VERSION() As String
Get
Return CType(Me("GDPICTURE_VERSION"),String)
End Get
End Property
<Global.System.Configuration.ApplicationScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("False")> _
Public ReadOnly Property UseAppConfig() As Boolean
Get
Return CType(Me("UseAppConfig"),Boolean)
End Get
End Property
End Class
End Namespace

View File

@ -4,11 +4,17 @@
<Settings>
<Setting Name="DD_ECMConnectionString" Type="(Connection string)" Scope="Application">
<DesignTimeValue Profile="(Default)">&lt;?xml version="1.0" encoding="utf-16"?&gt;
&lt;SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;
&lt;ConnectionString&gt;Data Source=SDD-VMP04-SQL17\DD_DEVELOP01;Initial Catalog=DD_ECM_TEST;Persist Security Info=True;User ID=sa;Password=dd&lt;/ConnectionString&gt;
&lt;SerializableConnectionString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt;
&lt;ConnectionString&gt;Data Source=SDD-VMP04-SQL17\DD_DEVELOP01;Initial Catalog=DD_ECM;Persist Security Info=True;User ID=sa;Password=dd&lt;/ConnectionString&gt;
&lt;ProviderName&gt;System.Data.SqlClient&lt;/ProviderName&gt;
&lt;/SerializableConnectionString&gt;</DesignTimeValue>
<Value Profile="(Default)">Data Source=SDD-VMP04-SQL17\DD_DEVELOP01;Initial Catalog=DD_ECM_TEST;Persist Security Info=True;User ID=sa;Password=dd</Value>
<Value Profile="(Default)">Data Source=SDD-VMP04-SQL17\DD_DEVELOP01;Initial Catalog=DD_ECM;Persist Security Info=True;User ID=sa;Password=dd</Value>
</Setting>
<Setting Name="GDPICTURE_VERSION" Type="System.String" Scope="Application">
<Value Profile="(Default)">11.2024</Value>
</Setting>
<Setting Name="UseAppConfig" Type="System.Boolean" Scope="Application">
<Value Profile="(Default)">False</Value>
</Setting>
</Settings>
</SettingsFile>

View File

@ -1,9 +1,8 @@
DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraPdfViewer.PdfViewer, DevExpress.XtraPdfViewer.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraLayout.LayoutControl, DevExpress.XtraLayout.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.LookUpEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.ButtonEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.SearchLookUpEdit, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraBars.BarManager, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.Repository.RepositoryItemSearchLookUpEdit, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.Repository.RepositoryItemLookUpEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.Repository.RepositoryItemComboBox, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a

View File

@ -1,4 +1,8 @@
DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraPdfViewer.PdfViewer, DevExpress.XtraPdfViewer.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v15.2, Version=15.2.16.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.PictureEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.GridLookUpEdit, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraBars.BarManager, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.SearchLookUpEdit, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,12 @@

Partial Public Class MyDataset
Partial Public Class TBDD_INDEX_AUTOMDataTable
End Class
Partial Public Class TBDD_INDEX_MANDataTable
End Class
Partial Public Class TBDD_INDEX_MAN_POSTPROCESSINGDataTable
Private Sub TBDD_INDEX_MAN_POSTPROCESSINGDataTable_ColumnChanging(sender As Object, e As DataColumnChangeEventArgs) Handles Me.ColumnChanging
If (e.Column.ColumnName = Me.COMMENTColumn.ColumnName) Then

View File

@ -247,81 +247,6 @@
</ColumnUISetting>
</ColumnUISettings>
</TableUISetting>
<TableUISetting Name="TBHOTKEY_PROFILE">
<ColumnUISettings>
<ColumnUISetting Name="HOTKEY1">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="ComboBox" Type="System.Windows.Forms.ComboBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="HOTKEY2">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="CHANGED_WHEN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
</ColumnUISettings>
</TableUISetting>
<TableUISetting Name="TBHOTKEY_PATTERNS">
<ColumnUISettings>
<ColumnUISetting Name="ADDED_WHEN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="CHANGED_WHEN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
</ColumnUISettings>
</TableUISetting>
<TableUISetting Name="TBHOTKEY_USER_PROFILE">
<ColumnUISettings>
<ColumnUISetting Name="HOTKEY1">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="ComboBox" Type="System.Windows.Forms.ComboBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="ADDED_WHEN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="CHANGED_WHEN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
</ColumnUISettings>
</TableUISetting>
<TableUISetting Name="TBHOTKEY_PATTERNS_REWORK">
<ColumnUISettings>
<ColumnUISetting Name="TYPE">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="ComboBox" Type="System.Windows.Forms.ComboBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
<ColumnUISetting Name="CHANGED_WHEN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
</ColumnUISettings>
</TableUISetting>
<TableUISetting Name="TBHOTKEY_WINDOW_HOOK">
<ColumnUISettings>
<ColumnUISetting Name="ADDED_WHEN">
<ControlSettings><ControlSetting ArtifactName="Microsoft:System.Windows.Forms:Form" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<BindableControlInfo Name="TextBox" Type="System.Windows.Forms.TextBox" AssemblyName="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</ControlSetting></ControlSettings>
</ColumnUISetting>
</ColumnUISettings>
</TableUISetting>
<TableUISetting Name="TBGI_REGEX_DOCTYPE">
<ColumnUISettings>
<ColumnUISetting Name="DOCTYPE_ID">

File diff suppressed because it is too large Load Diff

View File

@ -4,41 +4,33 @@
Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated.
</autogenerated>-->
<DiagramLayout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ex:showrelationlabel="False" ViewPortX="23" ViewPortY="362" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
<DiagramLayout xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ex:showrelationlabel="False" ViewPortX="417" ViewPortY="-47" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
<Shapes>
<Shape ID="DesignTable:TBDD_USER" ZOrder="8" X="765" Y="247" Height="305" Width="213" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" />
<Shape ID="DesignTable:TBDD_DOKUMENTART" ZOrder="10" X="119" Y="308" Height="381" Width="278" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="275" />
<Shape ID="DesignTable:TBDD_EINGANGSARTEN" ZOrder="28" X="431" Y="313" Height="210" Width="286" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
<Shape ID="DesignTable:TBDD_DOKART_MODULE" ZOrder="45" X="1381" Y="161" Height="134" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="64" />
<Shape ID="DesignTable:TBDD_MODULES" ZOrder="44" X="1096" Y="325" Height="115" Width="242" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="64" />
<Shape ID="DesignTable:TBDD_INDEX_MAN" ZOrder="37" X="464" Y="656" Height="360" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="292" />
<Shape ID="DesignTable:TBDD_CONNECTION" ZOrder="43" X="433" Y="81" Height="305" Width="264" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:VWDDINDEX_MAN" ZOrder="6" X="1040" Y="444" Height="381" Width="256" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="313" />
<Shape ID="DesignTable:VWDDINDEX_AUTOM" ZOrder="41" X="1361" Y="319" Height="305" Width="272" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:TBDD_INDEX_AUTOM" ZOrder="7" X="668" Y="605" Height="305" Width="272" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:TBGI_CONFIGURATION" ZOrder="38" X="1071" Y="621" Height="229" Width="279" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" />
<Shape ID="DesignTable:TBGI_OBJECTTYPE_EMAIL_INDEX" ZOrder="29" X="117" Y="665" Height="286" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" />
<Shape ID="DesignTable:TBDD_INDEX_MAN_POSTPROCESSING" ZOrder="35" X="743" Y="69" Height="305" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:TBWHDD_INDEX_MAN" ZOrder="33" X="133" Y="112" Height="90" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="0" />
<Shape ID="DesignTable:TBDD_GROUPS" ZOrder="3" X="1096" Y="109" Height="210" Width="233" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="140" />
<Shape ID="DesignTable:TBDD_GROUPS_USER" ZOrder="4" X="1014" Y="-1" Height="229" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
<Shape ID="DesignTable:VWGI_USER_GROUPS_RELATION" ZOrder="9" X="845" Y="494" Height="248" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="197" />
<Shape ID="DesignTable:VWGI_DOCTYPE_GROUP" ZOrder="5" X="259" Y="220" Height="267" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" />
<Shape ID="DesignTable:TBHOTKEY_PROFILE" ZOrder="17" X="-12" Y="311" Height="90" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="0" />
<Shape ID="DesignTable:TBHOTKEY_PATTERNS" ZOrder="16" X="221" Y="-36" Height="320" Width="196" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="252" />
<Shape ID="DesignTable:TBMYHOTKEYS" ZOrder="20" X="25" Y="-1" Height="90" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="0" />
<Shape ID="DesignTable:TBHOTKEY_USER_PROFILE" ZOrder="21" X="30" Y="178" Height="90" Width="227" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="0" />
<Shape ID="DesignTable:TBHOTKEY_PATTERNS_REWORK" ZOrder="19" X="415" Y="-3" Height="90" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="39" />
<Shape ID="DesignTable:TBHOTKEY_WINDOW_HOOK" ZOrder="15" X="0" Y="0" Height="90" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="0" />
<Shape ID="DesignTable:TBGI_FILES_USER" ZOrder="14" X="1181" Y="7" Height="90" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="0" />
<Shape ID="DesignTable:TBGI_HISTORY" ZOrder="12" X="0" Y="0" Height="90" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="0" />
<Shape ID="DesignTable:TBTempFiles2Index" ZOrder="39" X="915" Y="82" Height="106" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
<Shape ID="DesignTable:TBTEMP_INDEXRESULTS" ZOrder="32" X="639" Y="943" Height="67" Width="208" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="63" />
<Shape ID="DesignTable:TBAD_Users" ZOrder="11" X="1363" Y="639" Height="143" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="86" />
<Shape ID="DesignTable:TBGI_REGEX_DOCTYPE" ZOrder="2" X="1027" Y="881" Height="210" Width="276" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
<Shape ID="DesignTable:TBDD_USER" ZOrder="13" X="765" Y="247" Height="305" Width="213" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" />
<Shape ID="DesignTable:TBDD_DOKUMENTART" ZOrder="15" X="119" Y="308" Height="381" Width="278" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="275" />
<Shape ID="DesignTable:TBDD_EINGANGSARTEN" ZOrder="18" X="431" Y="313" Height="210" Width="286" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
<Shape ID="DesignTable:TBDD_DOKART_MODULE" ZOrder="29" X="1381" Y="161" Height="134" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="64" />
<Shape ID="DesignTable:TBDD_MODULES" ZOrder="28" X="1096" Y="325" Height="115" Width="242" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="64" />
<Shape ID="DesignTable:TBDD_INDEX_MAN" ZOrder="3" X="456" Y="638" Height="360" Width="244" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="292" />
<Shape ID="DesignTable:TBDD_CONNECTION" ZOrder="27" X="433" Y="81" Height="305" Width="264" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:VWDDINDEX_MAN" ZOrder="12" X="1040" Y="444" Height="381" Width="256" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="313" />
<Shape ID="DesignTable:VWDDINDEX_AUTOM" ZOrder="1" X="1361" Y="319" Height="305" Width="272" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:TBDD_INDEX_AUTOM" ZOrder="2" X="668" Y="605" Height="305" Width="272" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:TBGI_CONFIGURATION" ZOrder="23" X="1071" Y="621" Height="229" Width="279" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="178" />
<Shape ID="DesignTable:TBGI_OBJECTTYPE_EMAIL_INDEX" ZOrder="5" X="117" Y="665" Height="286" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="235" />
<Shape ID="DesignTable:TBDD_INDEX_MAN_POSTPROCESSING" ZOrder="8" X="719" Y="25" Height="305" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:TBWHDD_INDEX_MAN" ZOrder="7" X="135" Y="27" Height="90" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="0" />
<Shape ID="DesignTable:TBDD_GROUPS_USER" ZOrder="9" X="1040" Y="71" Height="229" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
<Shape ID="DesignTable:VWGI_USER_GROUPS_RELATION" ZOrder="14" X="845" Y="494" Height="248" Width="300" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="197" />
<Shape ID="DesignTable:TBGI_FILES_USER" ZOrder="4" X="1474" Y="-2" Height="336" Width="243" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="216" />
<Shape ID="DesignTable:TBGI_HISTORY" ZOrder="6" X="120" Y="153" Height="90" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="0" />
<Shape ID="DesignTable:TBGI_REGEX_DOCTYPE" ZOrder="11" X="1027" Y="881" Height="210" Width="276" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="159" />
<Shape ID="DesignTable:TBTempFiles2Index" ZOrder="24" X="915" Y="82" Height="106" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
<Shape ID="DesignTable:TBTEMP_INDEXRESULTS" ZOrder="20" X="639" Y="943" Height="67" Width="208" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="63" />
<Shape ID="DesignTable:TBAD_Users" ZOrder="16" X="1363" Y="639" Height="143" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="86" />
</Shapes>
<Connectors>
<Connector ID="DesignRelation:FK_TBDD_DOKUMENTART_EINGID" ZOrder="46" LineWidth="11">
<Connector ID="DesignRelation:FK_TBDD_DOKUMENTART_EINGID" ZOrder="30" LineWidth="11">
<RoutePoints>
<Point>
<X>431</X>
@ -50,19 +42,19 @@
</Point>
</RoutePoints>
</Connector>
<Connector ID="DesignRelation:FK_TBDD_INDEX_MAN_CID" ZOrder="42" LineWidth="11">
<Connector ID="DesignRelation:FK_TBDD_INDEX_MAN_CID" ZOrder="26" LineWidth="11">
<RoutePoints>
<Point>
<X>543</X>
<X>535</X>
<Y>386</Y>
</Point>
<Point>
<X>543</X>
<Y>656</Y>
<X>535</X>
<Y>638</Y>
</Point>
</RoutePoints>
</Connector>
<Connector ID="DesignRelation:FK_TBDD_INDEX_AUTOM_DOCID" ZOrder="40" LineWidth="11">
<Connector ID="DesignRelation:FK_TBDD_INDEX_AUTOM_DOCID" ZOrder="25" LineWidth="11">
<RoutePoints>
<Point>
<X>397</X>
@ -74,211 +66,59 @@
</Point>
</RoutePoints>
</Connector>
<Connector ID="DesignRelation:FKTBDD_INDEX_MAN_POSTPROCESSING_IDXID" ZOrder="36" LineWidth="11">
<Connector ID="DesignRelation:FKTBDD_INDEX_MAN_POSTPROCESSING_IDXID" ZOrder="22" LineWidth="11">
<RoutePoints>
<Point>
<X>605</X>
<Y>656</Y>
<X>597</X>
<Y>638</Y>
</Point>
<Point>
<X>605</X>
<Y>148</Y>
<X>597</X>
<Y>104</Y>
</Point>
<Point>
<X>743</X>
<Y>148</Y>
<X>719</X>
<Y>104</Y>
</Point>
</RoutePoints>
</Connector>
<Connector ID="DesignRelation:FKTBDD_INDEX_MAN_POSTPROCESSING_IDXID1" ZOrder="34" LineWidth="11">
<Connector ID="DesignRelation:FKTBDD_INDEX_MAN_POSTPROCESSING_IDXID1" ZOrder="21" LineWidth="11">
<RoutePoints>
<Point>
<X>959</X>
<Y>682</Y>
<X>293</X>
<Y>72</Y>
</Point>
<Point>
<X>959</X>
<Y>374</Y>
<X>719</X>
<Y>72</Y>
</Point>
</RoutePoints>
</Connector>
<Connector ID="DesignRelation:FK_TBDD_GROUPS_USER_GROUP_ID" ZOrder="31" LineWidth="11">
<Connector ID="DesignRelation:FK_TBDD_GROUPS_USER_USER_ID" ZOrder="19" LineWidth="11">
<RoutePoints>
<Point>
<X>1096</X>
<Y>262</Y>
<X>978</X>
<Y>273</Y>
</Point>
<Point>
<X>1047</X>
<Y>262</Y>
</Point>
<Point>
<X>1047</X>
<Y>228</Y>
<X>1040</X>
<Y>273</Y>
</Point>
</RoutePoints>
</Connector>
<Connector ID="DesignRelation:FK_TBDD_GROUPS_USER_USER_ID" ZOrder="30" LineWidth="11">
<Connector ID="DesignRelation:FK_TBDD_INDEX_MAN_DAID" ZOrder="17" LineWidth="11">
<RoutePoints>
<Point>
<X>951</X>
<Y>247</Y>
<X>397</X>
<Y>663</Y>
</Point>
<Point>
<X>951</X>
<Y>211</Y>
</Point>
<Point>
<X>1014</X>
<Y>211</Y>
<X>456</X>
<Y>663</Y>
</Point>
</RoutePoints>
</Connector>
<Connector ID="DesignRelation:FK_TBDD_INDEX_MAN_DAID" ZOrder="27" LineWidth="11">
<RoutePoints>
<Point>
<X>94</X>
<Y>0</Y>
</Point>
<Point>
<X>94</X>
<Y>-30</Y>
</Point>
<Point>
<X>94</X>
<Y>-30</Y>
</Point>
<Point>
<X>94</X>
<Y>0</Y>
</Point>
</RoutePoints>
</Connector>
<Connector ID="DesignRelation:FK_TBHOTKEY_PATTERNS_PROFILE_ID" ZOrder="26" LineWidth="11">
<RoutePoints>
<Point>
<X>129</X>
<Y>311</Y>
</Point>
<Point>
<X>129</X>
<Y>86</Y>
</Point>
<Point>
<X>221</X>
<Y>86</Y>
</Point>
</RoutePoints>
</Connector>
<Connector ID="DesignRelation:FK_TBHOTKEY_PATTERNS_PROFILE_ID1" ZOrder="25" LineWidth="11">
<RoutePoints>
<Point>
<X>183</X>
<Y>25</Y>
</Point>
<Point>
<X>221</X>
<Y>25</Y>
</Point>
</RoutePoints>
</Connector>
<Connector ID="DesignRelation:FK_TBHOTKEY_USER_PROFILE_PROFILE_ID" ZOrder="24" LineWidth="11">
<RoutePoints>
<Point>
<X>88</X>
<Y>311</Y>
</Point>
<Point>
<X>88</X>
<Y>-22</Y>
</Point>
<Point>
<X>88</X>
<Y>-30</Y>
</Point>
<Point>
<X>88</X>
<Y>178</Y>
</Point>
</RoutePoints>
</Connector>
<Connector ID="DesignRelation:FK_TBHOTKEY_USER_PROFILE_PROFILE_ID1" ZOrder="23" LineWidth="11">
<RoutePoints>
<Point>
<X>117</X>
<Y>-1</Y>
</Point>
<Point>
<X>117</X>
<Y>-22</Y>
</Point>
<Point>
<X>117</X>
<Y>-30</Y>
</Point>
<Point>
<X>117</X>
<Y>178</Y>
</Point>
</RoutePoints>
</Connector>
<Connector ID="DesignRelation:FK_TBHOTKEY_USER_PROFILE_USER_ID" ZOrder="22" LineWidth="11">
<RoutePoints>
<Point>
<X>765</X>
<Y>285</Y>
</Point>
<Point>
<X>240</X>
<Y>285</Y>
</Point>
<Point>
<X>240</X>
<Y>268</Y>
</Point>
</RoutePoints>
</Connector>
<Connector ID="DesignRelation:FK_TBHOTKEY_PATTERNS_REWORK_HKPATTERN_ID" ZOrder="18" LineWidth="11">
<RoutePoints>
<Point>
<X>409</X>
<Y>-36</Y>
</Point>
<Point>
<X>409</X>
<Y>-66</Y>
</Point>
<Point>
<X>425</X>
<Y>-66</Y>
</Point>
<Point>
<X>425</X>
<Y>-3</Y>
</Point>
</RoutePoints>
</Connector>
<Connector ID="DesignRelation:FK_TBHOTKEY_WINDOW_HOOK_PROFILE_ID" ZOrder="13" LineWidth="11">
<RoutePoints>
<Point>
<X>38</X>
<Y>0</Y>
</Point>
<Point>
<X>38</X>
<Y>-30</Y>
</Point>
<Point>
<X>38</X>
<Y>-30</Y>
</Point>
<Point>
<X>38</X>
<Y>0</Y>
</Point>
</RoutePoints>
</Connector>
<Connector ID="DesignRelation:FK_TBGI_REGEX_DOCTYPE_DTID" ZOrder="1" LineWidth="11">
<Connector ID="DesignRelation:FK_TBGI_REGEX_DOCTYPE_DTID" ZOrder="10" LineWidth="11">
<RoutePoints>
<Point>
<X>380</X>

View File

@ -0,0 +1,5 @@
BASE MODULE
===========
This module is intended for often used constants and datastructures.
Therefor it is important that this module does not have any dependencies on other modules!!

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 249 B

View File

@ -0,0 +1,19 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Yellow{fill:#FFB115;}
.Red{fill:#D11C1C;}
.Blue{fill:#1177D7;}
.Green{fill:#039C23;}
.Black{fill:#727272;}
.White{fill:#FFFFFF;}
.st0{opacity:0.5;}
.st1{display:none;}
.st2{display:inline;fill:#039C23;}
.st3{display:inline;fill:#D11C1C;}
.st4{display:inline;fill:#727272;}
</style>
<g id="About">
<path d="M16,2C8.3,2,2,8.3,2,16s6.3,14,14,14s14-6.3,14-14S23.7,2,16,2z M16,6c1.1,0,2,0.9,2,2s-0.9,2-2,2s-2-0.9-2-2 S14.9,6,16,6z M20,24h-8v-2h2v-8h-2v-2h2h4v10h2V24z" class="Blue" />
</g>
</svg>

View File

@ -0,0 +1,25 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Blue{fill:#1177D7;}
.Yellow{fill:#FFB115;}
.Red{fill:#D11C1C;}
.Green{fill:#039C23;}
.Black{fill:#727272;}
.White{fill:#FFFFFF;}
.st0{opacity:0.5;}
.st1{opacity:0.75;}
.st2{display:none;}
.st3{display:inline;fill:#FFB115;}
.st4{display:inline;}
.st5{display:inline;opacity:0.75;}
.st6{display:inline;opacity:0.5;}
.st7{display:inline;fill:#039C23;}
.st8{display:inline;fill:#D11C1C;}
.st9{display:inline;fill:#1177D7;}
.st10{display:inline;fill:#FFFFFF;}
</style>
<g id="Notifications_1_">
<path d="M28,24v2H4v-2l4-4v-8c0-3.7,2.6-6.9,6-7.7c0-0.1,0-0.2,0-0.3c0-1.1,0.9-2,2-2s2,0.9,2,2c0,0.1,0,0.2,0,0.3 c3.5,0.9,6,4,6,7.7v8L28,24z M16,30c1.1,0,2-0.9,2-2h-4C14,29.1,14.9,30,16,30z" class="Yellow" />
</g>
</svg>

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

View File

@ -0,0 +1,20 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Black{fill:#727272;}
.Yellow{fill:#FFB115;}
.Blue{fill:#1177D7;}
.Green{fill:#039C23;}
.Red{fill:#D11C1C;}
.White{fill:#FFFFFF;}
.st0{opacity:0.75;}
.st1{opacity:0.5;}
.st2{opacity:0.25;}
</style>
<g id="Highlight">
<path d="M6,2H0V0h6V2z M2,2H0v4h2V2z M14,0H8v2h6V0z M22,0h-6v2h6V0z M30,0h-6v2h6V0z M30,2h-2v4h2V2z M30,8h-2v6h2V8 z M30,16h-2v6h2V16z M30,24h-2v6h2V24z M30,28h-6v2h6V28z M16,30h6v-2h-6V30z M8,30h6v-2H8V30z M0,30h6v-2H0V30z M2,24H0v6h2V24z M2,16H0v6h2V16z M2,8H0v6h2V8z M22,21V9c0-0.6-0.5-1-1-1H9C8.4,8,8,8.4,8,9v12c0,0.5,0.4,1,1,1h12C21.5,22,22,21.5,22,21z" class="Blue" />
<g class="st2">
<rect x="0" y="0" width="30" height="30" rx="0" ry="0" class="Blue" />
</g>
</g>
</svg>

View File

@ -0,0 +1,20 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Black{fill:#727272;}
.Yellow{fill:#FFB115;}
.Blue{fill:#1177D7;}
.Green{fill:#039C23;}
.Red{fill:#D11C1C;}
.White{fill:#FFFFFF;}
.st0{opacity:0.75;}
.st1{opacity:0.5;}
.st2{opacity:0.25;}
</style>
<g id="Highlight">
<path d="M6,2H0V0h6V2z M2,2H0v4h2V2z M14,0H8v2h6V0z M22,0h-6v2h6V0z M30,0h-6v2h6V0z M30,2h-2v4h2V2z M30,8h-2v6h2V8 z M30,16h-2v6h2V16z M30,24h-2v6h2V24z M30,28h-6v2h6V28z M16,30h6v-2h-6V30z M8,30h6v-2H8V30z M0,30h6v-2H0V30z M2,24H0v6h2V24z M2,16H0v6h2V16z M2,8H0v6h2V8z M22,21V9c0-0.6-0.5-1-1-1H9C8.4,8,8,8.4,8,9v12c0,0.5,0.4,1,1,1h12C21.5,22,22,21.5,22,21z" class="Blue" />
<g class="st2">
<rect x="0" y="0" width="30" height="30" rx="0" ry="0" class="Blue" />
</g>
</g>
</svg>

View File

@ -0,0 +1,20 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Yellow{fill:#FFB115;}
.Red{fill:#D11C1C;}
.Black{fill:#727272;}
.Blue{fill:#1177D7;}
.White{fill:#FFFFFF;}
.Green{fill:#039C23;}
.st0{opacity:0.75;}
.st1{opacity:0.5;}
.st2{opacity:0.25;}
.st3{fill:#FFB115;}
</style>
<g />
<g id="InitialState">
<path d="M16,26c0.2,0.7,0.5,1.4,0.8,2H3c-0.6,0-1-0.4-1-1V12h2v14H16z M26,12v4c0.7,0.2,1.4,0.5,2,0.8V12H26z" class="Black" />
<path d="M32,25v-2l-2.2-0.4c-0.2-0.6-0.4-1.3-0.8-1.8l1.3-1.8l-1.4-1.4l-1.8,1.3c-0.5-0.3-1.2-0.6-1.8-0.7L25,16h-2 l-0.4,2.2c-0.6,0.2-1.3,0.4-1.8,0.7L19,17.6L17.6,19l1.3,1.8c-0.3,0.5-0.6,1.2-0.8,1.8L16,23v2l2.2,0.4c0.2,0.6,0.4,1.3,0.8,1.8 L17.7,29l1.4,1.4l1.8-1.3c0.5,0.3,1.2,0.6,1.8,0.7L23,32h2l0.4-2.2c0.6-0.2,1.3-0.4,1.8-0.7l1.8,1.3l1.4-1.4l-1.3-1.8 c0.3-0.5,0.6-1.2,0.8-1.8L32,25z M24,26c-1.1,0-2-0.9-2-2s0.9-2,2-2s2,0.9,2,2S25.1,26,24,26z M27,2H3C2.5,2,2,2.5,2,3v9h26V3 C28,2.5,27.5,2,27,2z M9,9L6,6h6L9,9z" class="Blue" />
</g>
</svg>

View File

@ -0,0 +1,20 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Yellow{fill:#FFB115;}
.Red{fill:#D11C1C;}
.Black{fill:#727272;}
.Blue{fill:#1177D7;}
.White{fill:#FFFFFF;}
.Green{fill:#039C23;}
.st0{opacity:0.75;}
.st1{opacity:0.5;}
.st2{opacity:0.25;}
.st3{fill:#FFB115;}
</style>
<g />
<g id="InitialState">
<path d="M16,26c0.2,0.7,0.5,1.4,0.8,2H3c-0.6,0-1-0.4-1-1V12h2v14H16z M26,12v4c0.7,0.2,1.4,0.5,2,0.8V12H26z" class="Black" />
<path d="M32,25v-2l-2.2-0.4c-0.2-0.6-0.4-1.3-0.8-1.8l1.3-1.8l-1.4-1.4l-1.8,1.3c-0.5-0.3-1.2-0.6-1.8-0.7L25,16h-2 l-0.4,2.2c-0.6,0.2-1.3,0.4-1.8,0.7L19,17.6L17.6,19l1.3,1.8c-0.3,0.5-0.6,1.2-0.8,1.8L16,23v2l2.2,0.4c0.2,0.6,0.4,1.3,0.8,1.8 L17.7,29l1.4,1.4l1.8-1.3c0.5,0.3,1.2,0.6,1.8,0.7L23,32h2l0.4-2.2c0.6-0.2,1.3-0.4,1.8-0.7l1.8,1.3l1.4-1.4l-1.3-1.8 c0.3-0.5,0.6-1.2,0.8-1.8L32,25z M24,26c-1.1,0-2-0.9-2-2s0.9-2,2-2s2,0.9,2,2S25.1,26,24,26z M27,2H3C2.5,2,2,2.5,2,3v9h26V3 C28,2.5,27.5,2,27,2z M9,9L6,6h6L9,9z" class="Blue" />
</g>
</svg>

View File

@ -0,0 +1,30 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Green{fill:#039C23;}
.Black{fill:#727272;}
.Red{fill:#D11C1C;}
.Yellow{fill:#FFB115;}
.Blue{fill:#1177D7;}
.White{fill:#FFFFFF;}
.st0{opacity:0.5;}
.st1{opacity:0.75;}
</style>
<g id="ItemTypeChecked">
<g>
<g>
<rect x="20" y="8" width="10" height="4" rx="0" ry="0" class="Black" />
<rect x="20" y="22" width="10" height="4" rx="0" ry="0" class="Black" />
<path d="M15,18H3c-0.5,0-1,0.5-1,1v12c0,0.5,0.5,1,1,1h12c0.5,0,1-0.5,1-1V19C16,18.5,15.5,18,15,18z M14,30H4V20 h10V30z" class="Black" />
<path d="M14,10.8V14H4V4h8.2l2-2H3C2.5,2,2,2.5,2,3v12c0,0.5,0.5,1,1,1h12c0.5,0,1-0.5,1-1V8.8L14,10.8z" class="Black" />
</g>
<g>
<rect x="20" y="8" width="10" height="4" rx="0" ry="0" class="Black" />
<rect x="20" y="22" width="10" height="4" rx="0" ry="0" class="Black" />
<path d="M15,18H3c-0.5,0-1,0.5-1,1v12c0,0.5,0.5,1,1,1h12c0.5,0,1-0.5,1-1V19C16,18.5,15.5,18,15,18z M14,30H4V20 h10V30z" class="Black" />
<path d="M14,10.8V14H4V4h8.2l2-2H3C2.5,2,2,2.5,2,3v12c0,0.5,0.5,1,1,1h12c0.5,0,1-0.5,1-1V8.8L14,10.8z" class="Black" />
</g>
</g>
<polygon points="6,5 6,8 10,12 18,4 18,1 10,9 " class="Green" />
</g>
</svg>

View File

@ -0,0 +1,17 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Black{fill:#727272;}
.Yellow{fill:#FFB115;}
.Blue{fill:#1177D7;}
.Green{fill:#039C23;}
.Red{fill:#D11C1C;}
.White{fill:#FFFFFF;}
.st0{opacity:0.75;}
.st1{opacity:0.5;}
.st2{opacity:0.25;}
</style>
<g id="Properties">
<path d="M30,18v-4l-4.4-0.7c-0.2-0.8-0.5-1.5-0.9-2.1l2.6-3.6l-2.8-2.8l-3.6,2.6c-0.7-0.4-1.4-0.7-2.1-0.9L18,2h-4 l-0.7,4.4c-0.8,0.2-1.5,0.5-2.1,0.9L7.5,4.7L4.7,7.5l2.6,3.6c-0.4,0.7-0.7,1.4-0.9,2.1L2,14v4l4.4,0.7c0.2,0.8,0.5,1.5,0.9,2.1 l-2.6,3.6l2.8,2.8l3.6-2.6c0.7,0.4,1.4,0.7,2.1,0.9L14,30h4l0.7-4.4c0.8-0.2,1.5-0.5,2.1-0.9l3.6,2.6l2.8-2.8l-2.6-3.6 c0.4-0.7,0.7-1.4,0.9-2.1L30,18z M16,20c-2.2,0-4-1.8-4-4c0-2.2,1.8-4,4-4s4,1.8,4,4C20,18.2,18.2,20,16,20z" class="Blue" />
</g>
</svg>

View File

@ -0,0 +1,17 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Black{fill:#727272;}
.Yellow{fill:#FFB115;}
.Blue{fill:#1177D7;}
.Green{fill:#039C23;}
.Red{fill:#D11C1C;}
.White{fill:#FFFFFF;}
.st0{opacity:0.75;}
.st1{opacity:0.5;}
.st2{opacity:0.25;}
</style>
<g id="Properties">
<path d="M30,18v-4l-4.4-0.7c-0.2-0.8-0.5-1.5-0.9-2.1l2.6-3.6l-2.8-2.8l-3.6,2.6c-0.7-0.4-1.4-0.7-2.1-0.9L18,2h-4 l-0.7,4.4c-0.8,0.2-1.5,0.5-2.1,0.9L7.5,4.7L4.7,7.5l2.6,3.6c-0.4,0.7-0.7,1.4-0.9,2.1L2,14v4l4.4,0.7c0.2,0.8,0.5,1.5,0.9,2.1 l-2.6,3.6l2.8,2.8l3.6-2.6c0.7,0.4,1.4,0.7,2.1,0.9L14,30h4l0.7-4.4c0.8-0.2,1.5-0.5,2.1-0.9l3.6,2.6l2.8-2.8l-2.6-3.6 c0.4-0.7,0.7-1.4,0.9-2.1L30,18z M16,20c-2.2,0-4-1.8-4-4c0-2.2,1.8-4,4-4s4,1.8,4,4C20,18.2,18.2,20,16,20z" class="Blue" />
</g>
</svg>

View File

@ -0,0 +1,18 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Black{fill:#727272;}
.Yellow{fill:#FFB115;}
.Blue{fill:#1177D7;}
.Red{fill:#D11C1C;}
.White{fill:#FFFFFF;}
.Green{fill:#039C23;}
.st0{fill:#727272;}
.st1{opacity:0.5;}
.st2{opacity:0.75;}
</style>
<g id="ShipmentAwaiting">
<polygon points="16,16 16,8 14,8 14,16 14,18 16,18 24,18 24,16 " class="Black" />
<path d="M16,2C8.2,2,2,8.2,2,16s6.2,14,14,14s14-6.2,14-14S23.8,2,16,2z M16,26c-5.6,0-10-4.4-10-10S10.4,6,16,6 s10,4.4,10,10S21.6,26,16,26z" class="Green" />
</g>
</svg>

View File

@ -0,0 +1,14 @@
<?xml version='1.0' encoding='UTF-8'?>
<svg x="0px" y="0px" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" id="Layer_1" style="enable-background:new 0 0 32 32">
<style type="text/css">
.Blue{fill:#3575BB;}
.Black{fill:#737374;}
.White{fill:#FFFFFF;}
.Yellow{fill:#FCB01B;}
.Red{fill:#D02027;}
.Green{fill:#129C49;}
.st0{opacity:0.5;}
</style>
<path d="M31,2H11c-0.5,0-1,0.5-1,1v9h2V4h18v24H12v-8h-2v9c0,0.5,0.5,1,1,1h20c0.5,0,1-0.5,1-1V3C32,2.5,31.5,2,31,2z " class="Black" />
<polygon points="4,14 14,14 14,8 22,16 14,24 14,18 4,18 " class="Blue" />
</svg>

View File

@ -22,7 +22,7 @@ Namespace My.Resources
'''<summary>
''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw.
'''</summary>
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0"), _
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0"), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()> _
Friend Class _frmLicense

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