diff --git a/EDMIAPI/Client.vb b/EDMIAPI/Client.vb
index e93b60d8..0f0f5f5d 100644
--- a/EDMIAPI/Client.vb
+++ b/EDMIAPI/Client.vb
@@ -1,9 +1,9 @@
Imports System.IO
Imports System.ServiceModel
+Imports DigitalData.Modules.Base
Imports DigitalData.Modules.EDMI.API.Constants
Imports DigitalData.Modules.EDMI.API.EDMIServiceReference
Imports DigitalData.Modules.EDMI.API.Rights
-Imports DigitalData.Modules.Language.Utils
Imports DigitalData.Modules.Logging
Public Class Client
@@ -550,10 +550,10 @@ Public Class Client
.Id = oRow.Item("AttributeId"),
.Title = oRow.Item("AttributeTitle"),
.Type = oRow.Item("AttributeType"),
- .ValueBigInt = NotNull(oRow.Item("ValueBigInt"), Nothing),
- .ValueDate = NotNull(oRow.Item("ValueDate"), Nothing),
- .ValueDecimal = NotNull(oRow.Item("ValueDecimal"), Nothing),
- .ValueText = NotNull(oRow.Item("ValueText"), Nothing)
+ .ValueBigInt = oRow.ItemEx(Of Object)("ValueBigInt", Nothing),
+ .ValueDate = oRow.ItemEx(Of Object)("ValueDate", Nothing),
+ .ValueDecimal = oRow.ItemEx(Of Object)("ValueDecimal", Nothing),
+ .ValueText = oRow.ItemEx(Of Object)("ValueText", Nothing)
}
oAttributes.Add(oAttribute)
@@ -932,11 +932,11 @@ Public Class Client
Private Function GetUserLanguage(pOverrideLanguage As String) As String
- Return NotNull(pOverrideLanguage, Threading.Thread.CurrentThread.CurrentUICulture.Name)
+ Return ObjectEx.NotNull(pOverrideLanguage, Threading.Thread.CurrentThread.CurrentUICulture.Name)
End Function
Private Function GetUserName(pOverrideName) As String
- Return NotNull(pOverrideName, Environment.UserName)
+ Return ObjectEx.NotNull(pOverrideName, Environment.UserName)
End Function
#End Region
diff --git a/EDMIAPI/EDMI.API.vbproj b/EDMIAPI/EDMI.API.vbproj
index e5ef3373..10dfec3b 100644
--- a/EDMIAPI/EDMI.API.vbproj
+++ b/EDMIAPI/EDMI.API.vbproj
@@ -308,10 +308,6 @@
{eaf0ea75-5fa7-485d-89c7-b2d843b03a96}
Database
-
- {d3c8cfed-d6f6-43a8-9bdf-454145d0352f}
- Language
-
{903b2d7d-3b80-4be9-8713-7447b704e1b0}
Logging
diff --git a/Interfaces/ActiveDirectoryInterface/SyncUsers.MSSQL.vb b/Interfaces/ActiveDirectoryInterface/SyncUsers.MSSQL.vb
index c619cb55..72f27164 100644
--- a/Interfaces/ActiveDirectoryInterface/SyncUsers.MSSQL.vb
+++ b/Interfaces/ActiveDirectoryInterface/SyncUsers.MSSQL.vb
@@ -1,6 +1,6 @@
Imports DigitalData.Modules.Database
Imports DigitalData.Modules.Logging
-Imports DigitalData.Modules.Language
+Imports DigitalData.Modules.Base
Namespace SyncUsers
Public Class SyncUsersMSSQL
diff --git a/Interfaces/Interfaces.vbproj b/Interfaces/Interfaces.vbproj
index e9ae530f..a7c9f220 100644
--- a/Interfaces/Interfaces.vbproj
+++ b/Interfaces/Interfaces.vbproj
@@ -155,14 +155,14 @@
+
+ {6ea0c51f-c2b1-4462-8198-3de0b32b74f8}
+ Base
+
{eaf0ea75-5fa7-485d-89c7-b2d843b03a96}
Database
-
- {d3c8cfed-d6f6-43a8-9bdf-454145d0352f}
- Language
-
{903b2d7d-3b80-4be9-8713-7447b704e1b0}
Logging
diff --git a/Jobs/GraphQL/GraphQLJob.vb b/Jobs/GraphQL/GraphQLJob.vb
index cd41a417..b7cae23a 100644
--- a/Jobs/GraphQL/GraphQLJob.vb
+++ b/Jobs/GraphQL/GraphQLJob.vb
@@ -4,7 +4,7 @@ Imports System.Collections.Generic
Imports System.Data
Imports System.IO
Imports System.Linq
-Imports System.Net.NetworkInformation
+Imports DigitalData.Modules.Base
Imports DigitalData.Modules.Config
Imports DigitalData.Modules.Database
Imports DigitalData.Modules.Interfaces
diff --git a/Language/DataTableEx.vb b/Language/DataTableEx.vb
deleted file mode 100644
index 70f3ac78..00000000
--- a/Language/DataTableEx.vb
+++ /dev/null
@@ -1,43 +0,0 @@
-Imports System.Runtime.CompilerServices
-
-Public Module DataTableEx
-
- Public Function ItemEx(Of T)(pRow As DataRow, pFieldName As String, Optional pDefaultValue As T = Nothing) As T
- Try
- Return Utils.NotNull(pRow.Item(pFieldName), pDefaultValue)
- Catch ex As Exception
- Return Nothing
- End Try
- End Function
-
-
- Public Function ItemEx(Of T)(pRow As DataRow, pFieldIndex As Integer, Optional pDefaultValue As T = Nothing) As T
- Try
- Return Utils.NotNull(pRow.Item(pFieldIndex), pDefaultValue)
- Catch ex As Exception
- Return Nothing
- End Try
- End Function
-
-
- Public Function FieldOrDefault(Of T)(pRow As DataRow, pFieldName As String, Optional pDefaultValue As T = Nothing) As T
- Return ItemEx(pRow, pFieldName, pDefaultValue)
- End Function
-
-
- Public Function FieldOrDefault(Of T)(pRow As DataRow, pFieldIndex As Integer, Optional pDefaultValue As T = Nothing) As T
- Return ItemEx(pRow, pFieldIndex, pDefaultValue)
- End Function
-
-
- Public Function First(pTable As DataTable) As DataRow
- Try
- If pTable Is Nothing OrElse pTable.Rows.Count = 0 Then
- Return Nothing
- End If
- Return pTable.Rows.Item(0)
- Catch ex As Exception
- Return Nothing
- End Try
- End Function
-End Module
diff --git a/Language/DateTimeEx.vb b/Language/DateTimeEx.vb
deleted file mode 100644
index 4cc4d86e..00000000
--- a/Language/DateTimeEx.vb
+++ /dev/null
@@ -1,12 +0,0 @@
-Imports System.Runtime.CompilerServices
-
-Public Module DateTimeEx
- Const UnixEraStartTicks As Long = 621355968000000000
- Public Function UnixTimestamp(value As Date) As Long
- Dim UnixEraTicks = value.Ticks - UnixEraStartTicks
- Return UnixEraTicks \ 10000
- End Function
- Public Function DateFromUnix(timestamp As Long) As Date
- Return New Date(UnixEraStartTicks + timestamp * 10000)
- End Function
-End Module
diff --git a/Language/InvalidChars.vb b/Language/InvalidChars.vb
deleted file mode 100644
index c6af2682..00000000
--- a/Language/InvalidChars.vb
+++ /dev/null
@@ -1,8 +0,0 @@
-Imports System.Text.RegularExpressions
-
-Friend Class InvalidChars
- Public Shared Filenames As String = Regex.Escape(New String(IO.Path.GetInvalidFileNameChars()))
- Public Shared Paths As String = Regex.Escape(New String(IO.Path.GetInvalidPathChars()))
- Public Shared UnicodeSurrogates = "\p{Cs}"
- Public Shared Emojis = "\uD83D(?:\uDC68(?:\uD83C(?:[\uDFFB-\uDFFF]\u200D(?:\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83E(?:\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFF]|[\uDDAF-\uDDB3\uDDBC\uDDBD])|[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92])|[\uDFFB-\uDFFF])|\u200D(?:\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83D(?:(?:[\uDC68\uDC69]\u200D\uD83D)?(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92])|[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|\uDC69(?:\uD83C(?:[\uDFFB-\uDFFF]\u200D(?:\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D[\uDC68\uDC69]|[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83E(?:\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFF]|[\uDDAF-\uDDB3\uDDBC\uDDBD])|[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92])|[\uDFFB-\uDFFF])|\u200D(?:\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D[\uDC68\uDC69]|[\uDC68\uDC69])|\uD83D(?:(?:\uDC69\u200D\uD83D)?(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92])|[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|\uDC6F)(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6](?:\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?|\u200D[\u2640\u2642]\uFE0F?)?|\uDC41(?:\uFE0F(?:\u200D\uD83D\uDDE8\uFE0F?)?|\u200D\uD83D\uDDE8\uFE0F?)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD74\uDD90]\uD83C[\uDFFB-\uDFFF]|\uDC08(?:\u200D\u2B1B)?|[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD74\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDD90\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB])|\uD83E(?:\uDDD1(?:\uD83C(?:[\uDFFB-\uDFFF]\u200D(?:\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uD83E(?:\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|[\uDDAF-\uDDB3\uDDBC\uDDBD])|[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92])|[\uDFFB-\uDFFF])|\u200D(?:\uD83E(?:\uDD1D\u200D\uD83E\uDDD1|[\uDDAF-\uDDB3\uDDBC\uDDBD])|[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]))?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?|\u200D[\u2640\u2642]\uFE0F?)?|[\uDD3C\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|\uD83C(?:\uDFF4(?:\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\u200D\u2620\uFE0F?)?|[\uDFC3\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF](?:\u200D[\u2640\u2642]\uFE0F?)?|\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDFF3(?:\uFE0F(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|(?:[\uDFCB\uDFCC]\u200D[\u2640\u2642]|[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7])\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCB\uDFCC\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF])|\u26F9(?:(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)(?:\u200D[\u2640\u2642]\uFE0F?)?|\u200D[\u2640\u2642]\uFE0F?)?|\u2764(?:\uFE0F(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|[\#\*0-9]\uFE0F?\u20E3|[\u261D\u270C\u270D]\uD83C[\uDFFB-\uDFFF]|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u00A9\u00AE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270C\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]\uFE0F?|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]"
-End Class
diff --git a/Language/Language.vbproj b/Language/Language.vbproj
deleted file mode 100644
index c91e6544..00000000
--- a/Language/Language.vbproj
+++ /dev/null
@@ -1,128 +0,0 @@
-
-
-
-
- Debug
- AnyCPU
- {D3C8CFED-D6F6-43A8-9BDF-454145D0352F}
- Library
- DigitalData.Modules.Language
- DigitalData.Modules.Language
- 512
- Windows
- v4.6.2
-
-
-
- true
- full
- true
- true
- bin\Debug\
- DigitalData.Modules.Language.xml
- 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
-
-
- pdbonly
- false
- true
- true
- bin\Release\
- DigitalData.Modules.Language.xml
- 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
-
-
- On
-
-
- Binary
-
-
- Off
-
-
- On
-
-
-
-
- ..\packages\NLog.5.0.5\lib\net46\NLog.dll
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- True
- Application.myapp
- True
-
-
- True
- True
- Resources.resx
-
-
- True
- Settings.settings
- True
-
-
-
-
-
- VbMyResourcesResXFileCodeGenerator
- Resources.Designer.vb
- My.Resources
- Designer
-
-
-
-
- MyApplicationCodeGenerator
- Application.Designer.vb
-
-
- SettingsSingleFileGenerator
- My
- Settings.Designer.vb
-
-
-
-
-
- {903B2D7D-3B80-4BE9-8713-7447B704E1B0}
- Logging
-
-
-
-
\ No newline at end of file
diff --git a/Language/My Project/Application.Designer.vb b/Language/My Project/Application.Designer.vb
deleted file mode 100644
index 8ab460ba..00000000
--- a/Language/My Project/Application.Designer.vb
+++ /dev/null
@@ -1,13 +0,0 @@
-'------------------------------------------------------------------------------
-'
-' Dieser Code wurde von einem Tool generiert.
-' Laufzeitversion:4.0.30319.42000
-'
-' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
-' der Code erneut generiert wird.
-'
-'------------------------------------------------------------------------------
-
-Option Strict On
-Option Explicit On
-
diff --git a/Language/My Project/Application.myapp b/Language/My Project/Application.myapp
deleted file mode 100644
index 758895de..00000000
--- a/Language/My Project/Application.myapp
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
- false
- false
- 0
- true
- 0
- 1
- true
-
diff --git a/Language/My Project/AssemblyInfo.vb b/Language/My Project/AssemblyInfo.vb
deleted file mode 100644
index 374ae372..00000000
--- a/Language/My Project/AssemblyInfo.vb
+++ /dev/null
@@ -1,35 +0,0 @@
-Imports System
-Imports System.Reflection
-Imports System.Runtime.InteropServices
-
-' Allgemeine Informationen über eine Assembly werden über die folgenden
-' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
-' die einer Assembly zugeordnet sind.
-
-' Werte der Assemblyattribute überprüfen
-
-
-
-
-
-
-
-
-
-
-'Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird.
-
-
-' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
-'
-' Hauptversion
-' Nebenversion
-' Buildnummer
-' Revision
-'
-' Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
-' übernehmen, indem Sie "*" eingeben:
-'
-
-
-
diff --git a/Language/My Project/Resources.Designer.vb b/Language/My Project/Resources.Designer.vb
deleted file mode 100644
index 8a3e2003..00000000
--- a/Language/My Project/Resources.Designer.vb
+++ /dev/null
@@ -1,63 +0,0 @@
-'------------------------------------------------------------------------------
-'
-' Dieser Code wurde von einem Tool generiert.
-' Laufzeitversion:4.0.30319.42000
-'
-' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
-' der Code erneut generiert wird.
-'
-'------------------------------------------------------------------------------
-
-Option Strict On
-Option Explicit On
-
-Imports System
-
-Namespace My.Resources
-
- 'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert
- '-Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert.
- 'Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen
- 'mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu.
- '''
- ''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw.
- '''
- _
- Friend Module Resources
-
- Private resourceMan As Global.System.Resources.ResourceManager
-
- Private resourceCulture As Global.System.Globalization.CultureInfo
-
- '''
- ''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird.
- '''
- _
- Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
- Get
- If Object.ReferenceEquals(resourceMan, Nothing) Then
- Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("DigitalData.Modules.Language.Resources", GetType(Resources).Assembly)
- resourceMan = temp
- End If
- Return resourceMan
- End Get
- End Property
-
- '''
- ''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle
- ''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden.
- '''
- _
- Friend Property Culture() As Global.System.Globalization.CultureInfo
- Get
- Return resourceCulture
- End Get
- Set
- resourceCulture = value
- End Set
- End Property
- End Module
-End Namespace
diff --git a/Language/My Project/Resources.resx b/Language/My Project/Resources.resx
deleted file mode 100644
index af7dbebb..00000000
--- a/Language/My Project/Resources.resx
+++ /dev/null
@@ -1,117 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
\ No newline at end of file
diff --git a/Language/My Project/Settings.Designer.vb b/Language/My Project/Settings.Designer.vb
deleted file mode 100644
index 81c481db..00000000
--- a/Language/My Project/Settings.Designer.vb
+++ /dev/null
@@ -1,73 +0,0 @@
-'------------------------------------------------------------------------------
-'
-' Dieser Code wurde von einem Tool generiert.
-' Laufzeitversion:4.0.30319.42000
-'
-' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
-' der Code erneut generiert wird.
-'
-'------------------------------------------------------------------------------
-
-Option Strict On
-Option Explicit On
-
-
-Namespace My
-
- _
- Partial Friend NotInheritable Class MySettings
- Inherits Global.System.Configuration.ApplicationSettingsBase
-
- Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings)
-
-#Region "Automatische My.Settings-Speicherfunktion"
-#If _MyType = "WindowsForms" Then
- Private Shared addedHandler As Boolean
-
- Private Shared addedHandlerLockObject As New Object
-
- _
- Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs)
- If My.Application.SaveMySettingsOnExit Then
- My.Settings.Save()
- End If
- End Sub
-#End If
-#End Region
-
- Public Shared ReadOnly Property [Default]() As MySettings
- Get
-
-#If _MyType = "WindowsForms" Then
- If Not addedHandler Then
- SyncLock addedHandlerLockObject
- If Not addedHandler Then
- AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
- addedHandler = True
- End If
- End SyncLock
- End If
-#End If
- Return defaultInstance
- End Get
- End Property
- End Class
-End Namespace
-
-Namespace My
-
- _
- Friend Module MySettingsProperty
-
- _
- Friend ReadOnly Property Settings() As Global.DigitalData.Modules.Language.My.MySettings
- Get
- Return Global.DigitalData.Modules.Language.My.MySettings.Default
- End Get
- End Property
- End Module
-End Namespace
diff --git a/Language/My Project/Settings.settings b/Language/My Project/Settings.settings
deleted file mode 100644
index 85b890b3..00000000
--- a/Language/My Project/Settings.settings
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/Language/StringEx.vb b/Language/StringEx.vb
deleted file mode 100644
index 4dd4d99b..00000000
--- a/Language/StringEx.vb
+++ /dev/null
@@ -1,25 +0,0 @@
-Imports System.Runtime.CompilerServices
-
-Public Module StringEx
- '''
- ''' Truncates a string to the specified length if it exceeds that length.
- '''
- ''' The string
- ''' The maximum string length
- ''' The truncated string
-
- Public Function Truncate(pString As String, pLength As Integer) As String
- If String.IsNullOrEmpty(pString) Then Return pString
- Return pString.Substring(0, Math.Min(pLength, pString.Length))
- End Function
-
- '''
- ''' Replaces single quotes in text for SQL Commands.
- '''
- ''' The string
- ''' The escaped string.
-
- Public Function EscapeForSQL(pString As String) As String
- Return Utils.NotNull(pString, String.Empty).Replace("'", "''")
- End Function
-End Module
diff --git a/Language/Utils.vb b/Language/Utils.vb
deleted file mode 100644
index f198757f..00000000
--- a/Language/Utils.vb
+++ /dev/null
@@ -1,219 +0,0 @@
-Imports System.Drawing
-Imports System.Runtime.CompilerServices
-Imports System.Text
-Imports System.Text.RegularExpressions
-Imports System.Windows.Forms
-'''
-''' Provides common utility functions that do not require a specific context.
-'''
-Public Class Utils
- '''
- ''' Generates a random short (8 characters) guid
- '''
- ''' The generated guid as a String
- Public Shared Function ShortGUID() As String
- Return Guid.NewGuid().ToString().GetHashCode().ToString("x")
- End Function
-
- '''
- ''' Converts a String value to the given Enum
- '''
- ''' The Enum Type
- ''' The string value to convert
- Public Shared Function ToEnum(Of T)(value As String) As T
- Return [Enum].Parse(GetType(T), value)
- End Function
-
- '''
- ''' Converts an Integer value to the given Enum
- '''
- ''' The Enum Type
- ''' The integer value to convert
- Public Shared Function ToEnum(Of T)(value As Integer) As T
- Return [Enum].ToObject(GetType(T), value)
- End Function
-
- '''
- ''' Converts a Long value to the given Enum
- '''
- ''' The Enum Type
- ''' The long value to convert
- Public Shared Function ToEnum(Of T)(value As Long) As T
- Return [Enum].ToObject(GetType(T), value)
- End Function
-
- '''
- ''' Converts a string to boolean. Accepts true and 1 as truthy values
- '''
- ''' The input string
- ''' True if input is true or 1, otherwise false.
- Public 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
-
- '''
- ''' Checks a value for three different `null` values,
- ''' Nothing, Empty String, DBNull
- '''
- ''' Returns the original value if the value is not null, or `defaultValue`
- '''
- ''' The type of the value
- ''' The value
- ''' The default Value
- ''' The original value or the default value
- 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
-
- '''
- ''' Checks a Row value for three different `null` values,
- ''' Nothing, Empty String, DBNull
- '''
- ''' Returns the original value if the value is not null, or `defaultValue`
- '''
- ''' The type of the value
- ''' The DataRow that contains the value
- ''' The column name
- ''' The default value
- ''' The original value or the default value
- Public Shared Function NotNull(Of T)(ByVal Row As DataRow, Column As String, DefaultValue As T) As T
- Return NotNull(Row.Item(Column), DefaultValue)
- End Function
-
- '''
- ''' Creates a "slug" from text that can be used as part of a valid URL.
- ''' Invalid characters are converted to hyphens. Punctuation that Is
- ''' perfect valid in a URL Is also converted to hyphens to keep the
- ''' result mostly text. Steps are taken to prevent leading, trailing,
- ''' And consecutive hyphens.
- '''
- ''' The string to convert
- Public Shared Function ConvertTextToSlug(ByVal s As String) As String
- Dim oBuilder As StringBuilder = New StringBuilder()
- Dim oWasHyphen As Boolean = True
-
- For Each oChar As Char In s
-
- If Char.IsLetterOrDigit(oChar) Then
- oBuilder.Append(Char.ToLower(oChar))
- oWasHyphen = False
- ElseIf Char.IsWhiteSpace(oChar) AndAlso Not oWasHyphen Then
- oBuilder.Append("-"c)
- oWasHyphen = True
- End If
- Next
-
- If oWasHyphen AndAlso oBuilder.Length > 0 Then oBuilder.Length -= 1
- Return oBuilder.ToString()
- End Function
-
- '''
- ''' Removes Invalid characters from a string, suitable for file and path names
- '''
- ''' Removed characters are:
- '''
- ''' * Illegal File-characters
- ''' * Illegal Path-characters
- ''' * Unicode characters that classify as Emoji
- ''' * All characters above codepoint U+10000
- '''
- ''' See:
- ''' https://stackoverflow.com/questions/46905176/detecting-all-emojis
- ''' https://stackoverflow.com/questions/28023682/how-do-i-remove-emoji-characters-from-a-string
- '''
- '''
- Public Shared Function RemoveInvalidCharacters(pString As String) As String
- Dim oResult = pString
-
- Try
- ' Remove all Unicode above Codepoint U+10000
- oResult = Regex.Replace(oResult, InvalidChars.UnicodeSurrogates, String.Empty)
-
- ' Remove all Emojis (Version 13)
- oResult = Regex.Replace(oResult, InvalidChars.Emojis, String.Empty)
-
- ' Remove Invalid filename characters
- oResult = Regex.Replace(oResult, InvalidChars.Filenames, String.Empty)
-
- ' Remove Invalid filename characters
- oResult = Regex.Replace(oResult, InvalidChars.Paths, String.Empty)
-
- ' Remove Uneccessary characters
- oResult = Regex.Replace(oResult, "\s{2,}", " ")
- oResult = Regex.Replace(oResult, "\.{2,}", ".")
-
- ' Remove excess space chars
- oResult = oResult.Trim()
-
- Return oResult
- Catch ex As Exception
- Return oResult
- End Try
- End Function
-
- '''
- ''' Checks if string contains invalid characters
- '''
- '''
- '''
- Public Shared Function TestContainsInvalidCharacters(pString As String) As Boolean
- Return Not pString.Equals(RemoveInvalidCharacters(pString))
- End Function
-
- '''
- ''' Checks if a point is Visible on any screen
- '''
- Public Shared Function IsVisibleOnAnyScreen(Location As Point) As Boolean
- Try
- Dim oRect As New Rectangle(Location, New Size(0, 0))
-
- For Each oScreen In Screen.AllScreens
- If oScreen.WorkingArea.IntersectsWith(oRect) Then
- Return True
- End If
- Next
-
- Return False
- Catch ex As Exception
- Return False
- End Try
- End Function
-
- '''
- ''' Checks if Size is not negative
- '''
- Public Shared Function SizeIsVisible(Size As Size) As Boolean
- If Size.Width >= 0 And Size.Height >= 0 Then
- Return True
- End If
-
- Return False
- End Function
-
- '''
- ''' Checks if Location is not negative
- '''
- Public Shared Function LocationIsVisible(Location As Point) As Boolean
- If Location.X >= 0 And Location.Y >= 0 Then
- Return True
- End If
-
- Return False
- End Function
-
- Public Shared Function BytesToString(ByteCount As Long) As String
- Dim oSuffixes As New List(Of String) From {"B", "KB", "MB", "GB", "TB", "PB", "EB"}
- If ByteCount = 0 Then
- Return "0" & oSuffixes.First()
- End If
- Dim oBytes = Math.Abs(ByteCount)
- Dim oIndex = Convert.ToInt32(Math.Floor(Math.Log(oBytes, 1024)))
- Dim oNum = Math.Round(oBytes / Math.Pow(1024, oIndex), 1)
- Return (Math.Sign(ByteCount) * oNum).ToString() & oSuffixes.Item(oIndex)
- End Function
-End Class
diff --git a/Language/Watch.vb b/Language/Watch.vb
deleted file mode 100644
index 6a567627..00000000
--- a/Language/Watch.vb
+++ /dev/null
@@ -1,23 +0,0 @@
-Public Class Watch
-
- Private ReadOnly _StopWatch As Stopwatch
- Private ReadOnly _Name As String
-
- Public Sub New(pName As String)
- _StopWatch = New Stopwatch()
- _StopWatch.Start()
-
- _Name = pName
- Debug.WriteLine($"Starting [{pName}].")
- End Sub
-
- Public Sub Restart()
- _StopWatch.Restart()
- Debug.WriteLine($"Starting [{_Name}].")
- End Sub
-
- Public Sub [Stop]()
- _StopWatch.Stop()
- Debug.WriteLine($"Stopped [{_Name}] after {_StopWatch.Elapsed.TotalSeconds} seconds.")
- End Sub
-End Class
diff --git a/Language/packages.config b/Language/packages.config
deleted file mode 100644
index 37cb9210..00000000
--- a/Language/packages.config
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/Messaging/Email.vb b/Messaging/Email.vb
index 194b69c6..1df6d950 100644
--- a/Messaging/Email.vb
+++ b/Messaging/Email.vb
@@ -1,8 +1,4 @@
-Imports Independentsoft.Email
-Imports Independentsoft.Email.Pop3
-Imports Independentsoft.Email.Mime
-Imports Independentsoft.Email.Imap
-Imports System.Net.Mail
+Imports System.Net.Mail
Imports System.Net
Imports System.Reflection
Imports System.IO
diff --git a/Messaging/Email2.vb b/Messaging/Email2.vb
index a03189dd..805dfb9d 100644
--- a/Messaging/Email2.vb
+++ b/Messaging/Email2.vb
@@ -435,7 +435,7 @@ Public Class Email2
Dim oTempPath As String = IO.Path.GetTempPath()
Dim oFileNameWithoutExtension = Path.GetFileNameWithoutExtension(pMsgFile)
- Dim oFileNameWithoutInvalidChars = Language.Utils.RemoveInvalidCharacters(oFileNameWithoutExtension)
+ Dim oFileNameWithoutInvalidChars = StringEx.RemoveInvalidCharacters(oFileNameWithoutExtension)
Dim oEmlPath As String = IO.Path.Combine(oTempPath, $"{oFileNameWithoutInvalidChars}.eml")
Dim oVersionedPath As String = FileEx.GetVersionedFilename(oEmlPath)
diff --git a/Messaging/Messaging.vbproj b/Messaging/Messaging.vbproj
index 46292b10..63fd34b6 100644
--- a/Messaging/Messaging.vbproj
+++ b/Messaging/Messaging.vbproj
@@ -140,10 +140,6 @@
{6ea0c51f-c2b1-4462-8198-3de0b32b74f8}
Base
-
- {d3c8cfed-d6f6-43a8-9bdf-454145d0352f}
- Language
-
{903b2d7d-3b80-4be9-8713-7447b704e1b0}
Logging
diff --git a/Modules.sln b/Modules.sln
index 9a9b395b..ab7f3d54 100644
--- a/Modules.sln
+++ b/Modules.sln
@@ -17,8 +17,6 @@ Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Interfaces", "Interfaces\In
EndProject
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Jobs", "Jobs\Jobs.vbproj", "{39EC839A-3C30-4922-A41E-6B09D1DDE5C3}"
EndProject
-Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Language", "Language\Language.vbproj", "{D3C8CFED-D6F6-43A8-9BDF-454145D0352F}"
-EndProject
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "License", "License\License.vbproj", "{5EBACBFA-F11A-4BBF-8D02-91461F2293ED}"
EndProject
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Logging", "Logging\Logging.vbproj", "{903B2D7D-3B80-4BE9-8713-7447B704E1B0}"
@@ -37,7 +35,7 @@ Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Messaging", "Messaging\Mess
EndProject
Project("{778DAE3C-4631-46EA-AA77-85C1314464D9}") = "Database.Test", "Database.Test\Database.Test.vbproj", "{91B4DFC0-543C-43A7-A9E0-6817DCA277EC}"
EndProject
-Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Base.Test", "Base.Test\Base.Test.vbproj", "{2485A8FE-2CE1-418A-B1A0-1332AECE54C4}"
+Project("{778DAE3C-4631-46EA-AA77-85C1314464D9}") = "Base.Test", "Base.Test\Base.Test.vbproj", "{2485A8FE-2CE1-418A-B1A0-1332AECE54C4}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -73,10 +71,6 @@ Global
{39EC839A-3C30-4922-A41E-6B09D1DDE5C3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{39EC839A-3C30-4922-A41E-6B09D1DDE5C3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{39EC839A-3C30-4922-A41E-6B09D1DDE5C3}.Release|Any CPU.Build.0 = Release|Any CPU
- {D3C8CFED-D6F6-43A8-9BDF-454145D0352F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D3C8CFED-D6F6-43A8-9BDF-454145D0352F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D3C8CFED-D6F6-43A8-9BDF-454145D0352F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D3C8CFED-D6F6-43A8-9BDF-454145D0352F}.Release|Any CPU.Build.0 = Release|Any CPU
{5EBACBFA-F11A-4BBF-8D02-91461F2293ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5EBACBFA-F11A-4BBF-8D02-91461F2293ED}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5EBACBFA-F11A-4BBF-8D02-91461F2293ED}.Release|Any CPU.ActiveCfg = Release|Any CPU
diff --git a/Windows/FileDrop.vb b/Windows/FileDrop.vb
index 51fce442..e54dfa44 100644
--- a/Windows/FileDrop.vb
+++ b/Windows/FileDrop.vb
@@ -226,7 +226,7 @@ Partial Public Class FileDrop
oMailItem = oApp.ActiveExplorer.Selection.Item(oIndex)
- Dim oSubject As String = ConvertTextToSlug(oMailItem.Subject)
+ Dim oSubject As String = StringEx.ConvertTextToSlug(oMailItem.Subject)
If oSubject = "" Then
oSubject = "NO_SUBJECT"
End If
diff --git a/Windows/Windows.vbproj b/Windows/Windows.vbproj
index 2ff51567..bf125735 100644
--- a/Windows/Windows.vbproj
+++ b/Windows/Windows.vbproj
@@ -138,10 +138,6 @@
{6ea0c51f-c2b1-4462-8198-3de0b32b74f8}
Base
-
- {d3c8cfed-d6f6-43a8-9bdf-454145d0352f}
- Language
-
{903B2D7D-3B80-4BE9-8713-7447B704E1B0}
Logging
diff --git a/Windream/ConnectionBuilder.vb b/Windream/ConnectionBuilder.vb
index 17c8def6..4414cd1b 100644
--- a/Windream/ConnectionBuilder.vb
+++ b/Windream/ConnectionBuilder.vb
@@ -2,6 +2,7 @@
Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.Windream
Imports DigitalData.Modules.Language
+Imports DigitalData.Modules.Base
Public Class ConnectionBuilder
Implements IConnectionBuilder
@@ -64,9 +65,9 @@ Public Class ConnectionBuilder
End Function
Public Function WithWindreamObjectsOrDriveLetter(BasePath As String, DriveLetter As String) As IConnectionBuilder Implements IConnectionBuilder.WithWindreamObjectsOrDriveLetter
- If Utils.NotNull(BasePath, Nothing) IsNot Nothing Then
+ If ObjectEx.NotNull(BasePath, Nothing) IsNot Nothing Then
Return WithWindreamObjects(BasePath)
- ElseIf Utils.NotNull(DriveLetter, Nothing) IsNot Nothing Then
+ ElseIf ObjectEx.NotNull(DriveLetter, Nothing) IsNot Nothing Then
Return WithDriveLetter(DriveLetter)
Else
Return WithWindreamObjects()
diff --git a/Windream/Windream.vb b/Windream/Windream.vb
index 3317bf30..a1aa3621 100644
--- a/Windream/Windream.vb
+++ b/Windream/Windream.vb
@@ -819,7 +819,7 @@ Public Class Windream
Dim oNormalizedPath As String = pPath
If pCleanPath = True Then
- oNormalizedPath = Utils.RemoveInvalidCharacters(pPath)
+ oNormalizedPath = StringEx.RemoveInvalidCharacters(pPath)
_logger.Debug("Path after RemoveInvalidCharacters: [{0}]", oNormalizedPath)
End If
diff --git a/Windream/Windream.vbproj b/Windream/Windream.vbproj
index a2b67d1d..fbcf6136 100644
--- a/Windream/Windream.vbproj
+++ b/Windream/Windream.vbproj
@@ -137,10 +137,6 @@
{6EA0C51F-C2B1-4462-8198-3DE0B32B74F8}
Base
-
- {d3c8cfed-d6f6-43a8-9bdf-454145d0352f}
- Language
-
{903b2d7d-3b80-4be9-8713-7447b704e1b0}
Logging
diff --git a/ZooFlow/ZooFlow.vbproj b/ZooFlow/ZooFlow.vbproj
index c6f2363f..b10f3f7e 100644
--- a/ZooFlow/ZooFlow.vbproj
+++ b/ZooFlow/ZooFlow.vbproj
@@ -132,10 +132,6 @@
{25017513-0d97-49d3-98d7-ba76d9b251b0}
EDMI.API
-
- {d3c8cfed-d6f6-43a8-9bdf-454145d0352f}
- Language
-
{903b2d7d-3b80-4be9-8713-7447b704e1b0}
Logging