diff --git a/DigitalDataBNSPlugin/DigitalDataBNSPlugin.vbproj b/DigitalDataBNSPlugin/DigitalDataBNSPlugin.vbproj
index 14ada9e..715430a 100644
--- a/DigitalDataBNSPlugin/DigitalDataBNSPlugin.vbproj
+++ b/DigitalDataBNSPlugin/DigitalDataBNSPlugin.vbproj
@@ -50,6 +50,7 @@
+
True
@@ -67,6 +68,7 @@
True
+
@@ -95,14 +97,6 @@
-
- False
- ..\..\DDModules\Database\bin\Debug\DigitalData.Modules.Database.dll
-
-
- False
- ..\..\DDModules\Logging\bin\Debug\DigitalData.Modules.Logging.dll
-
P:\Visual Studio Projekte\Bibliotheken\windream\Interop.WINDREAMLib.dll
True
@@ -119,10 +113,7 @@
P:\Visual Studio Projekte\Bibliotheken\windream\Interop.WMOTOOLLib.dll
True
-
- False
- D:\ProgramFiles\windream\windream Web Service SDK\Libraries\3rdParty\Microsoft.Practices.Unity.dll
-
+
False
..\packages\NLog.5.0.5\lib\net46\NLog.dll
diff --git a/DigitalDataBNSPlugin/DigitalDataController.vb b/DigitalDataBNSPlugin/DigitalDataController.vb
index 8d16324..39d0f09 100644
--- a/DigitalDataBNSPlugin/DigitalDataController.vb
+++ b/DigitalDataBNSPlugin/DigitalDataController.vb
@@ -1,7 +1,6 @@
-Imports DigitalData.Modules.Database
-Imports DigitalData.Modules.Logging
-Imports System.Collections.Generic
+Imports System.Collections.Generic
Imports System.Data
+Imports System.Data.SqlClient
Imports System.Net
Imports System.Net.Http
Imports System.Net.Http.Headers
@@ -12,6 +11,7 @@ Imports System.Web.Http
Imports System.Web.Http.Controllers
Imports System.Xml
Imports Windream.WebService.Documents
+Imports Windream.WebService.Logging
Imports Windream.WebService.WebAPI.PlugIns
Imports WINDREAMLib
Imports WMCNNCTDLLLib
@@ -22,14 +22,9 @@ Namespace Controllers
Public Class DigitalDataController
Inherits PlugInBaseController
- Private ReadOnly _routesSettings As IEnumerable(Of RouteSettings)
Private ReadOnly _docController As IDocumentsController
Private _session As IWMSession6
-
- Private ReadOnly _logConfig As LogConfig
- Private ReadOnly _logger As Logger
-
- Private ReadOnly _database As MSSQLServer
+ Private _logger As ILogging
'''
''' Gets the routes settings for the controller.
@@ -40,61 +35,21 @@ Namespace Controllers
'''
Public Overrides ReadOnly Property RoutesSettings As IEnumerable(Of RouteSettings)
Get
- Return _routesSettings
+ Return New List(Of RouteSettings) From {
+ New RouteSettings("DigitalDataController", "DigitalData/{action}/{id}", New With {
+ .id = RouteParameter.Optional, .controller = "DigitalData"
+ })
+ }
End Get
End Property
-
- Public Overrides Function ExecuteAsync(controllerContext As HttpControllerContext, cancellationToken As CancellationToken) As Task(Of HttpResponseMessage)
- Return MyBase.ExecuteAsync(controllerContext, cancellationToken)
- End Function
-
'''
''' Initializes a new instance of the class.
'''
- Sub New()
- MyBase.New()
+ Sub New(pLogger As ILogging)
+ _logger = pLogger
- Dim routesSettings As New List(Of RouteSettings) From {
- New RouteSettings("DigitalDataController", "DigitalData/{action}/{id}", New With {
- .id = RouteParameter.Optional, .controller = "DigitalData"
- })
- }
- _routesSettings = routesSettings
-
- Dim oLogPath = GetLogPath()
- _logConfig = New LogConfig(LogPath:=LogConfig.PathType.CustomPath, oLogPath)
- _logger = _logConfig.GetLogger()
-
- 'Dim config = New LoggingConfiguration()
-
- 'Dim fileTarget = New FileTarget() With {
- ' .Name = "BNSPlugin",
- ' .ArchiveEvery = FileArchivePeriod.Day,
- ' .FileName = "D:/ProgramFiles/DigitalData/SERVICES/WMWebServiceBNS/Log/${date:format=yyyy-MM-dd}-WMWebServiceBNS.txt",
- ' .Layout = "${longdate} || ${message}"
- '}
-
- 'config.AddTarget("file", fileTarget)
-
- 'Dim rule = New LoggingRule("*", LogLevel.Debug, fileTarget)
- 'config.LoggingRules.Add(rule)
-
- 'LogManager.Configuration = config
- '_logger = LogManager.GetLogger("DigitalDataController")
-
- Dim oConnectionString = GetConnectionString()
-
- _logger.Info($"[DATABASE] Verbindung zu {oConnectionString}")
-
- _database = New MSSQLServer(_logConfig, oConnectionString)
-
- If _database.DBInitialized = False Then
- _logger.Info("[DATABASE] Die Verbindung zur Datenbank konnte nicht hergestellt werden.")
- Else
- _logger.Info("[DATABASE] Die Verbindung zur Datenbank wurde hergestellt.")
- End If
- _logger.Info("[INIT] Die Initialisierung wurde abgeschlossen.")
+ _logger.Write("[INIT] Die Initialisierung wurde abgeschlossen.")
End Sub
Private Function GetPluginPath()
@@ -117,7 +72,7 @@ Namespace Controllers
Return Doc
Else
- _logger.Info($"[CONFIG] Konfigurations Datei {configFile} wurde NICHT gefunden!")
+ _logger.Write($"[CONFIG] Konfigurations Datei {configFile} wurde NICHT gefunden!")
Return Nothing
End If
@@ -134,17 +89,6 @@ Namespace Controllers
End If
End Function
- Private Function GetLogPath() As String
- Dim oConfig = GetConfig()
-
- If oConfig IsNot Nothing Then
- Dim oLogPath As String = oConfig.DocumentElement.SelectSingleNode("/config/logPath").InnerText
- Return oLogPath
- Else
- Return Nothing
- End If
- End Function
-
'''
''' A simple example of a http-get service method implementation.
'''
@@ -153,31 +97,37 @@ Namespace Controllers
''' This method creates a nice greeting.
Public Function BNSDownload( docId As Integer, userId As String) As HttpResponseMessage
- Dim DT As DataTable
+ Dim DT As New DataTable("DDRESULT")
Dim Domain, Username, Password As String
- _logger.Info($"[REQUEST] Anfrage von Benutzer-ID {userId} für Dokument-ID {docId}")
+ _logger.Write($"[REQUEST] Anfrage von Benutzer-ID {userId} für Dokument-ID {docId}")
Try
- DT = _database.GetDatatable($"SELECT DOMAIN, USERNAME, PW FROM TBDD_WEBSERVICE_USER_EX WHERE USERNAME_LINK = '{userId}'")
+ Using oConnection As New SqlConnection(GetConnectionString())
+ Using oAdapter As New SqlDataAdapter($"SELECT DOMAIN, USERNAME, PW FROM TBDD_WEBSERVICE_USER_EX WHERE USERNAME_LINK = '{userId}'", oConnection)
+ oAdapter.Fill(DT)
+ End Using
+ End Using
+
+ 'DT = _database.GetDatatable($"SELECT DOMAIN, USERNAME, PW FROM TBDD_WEBSERVICE_USER_EX WHERE USERNAME_LINK = '{userId}'")
Catch ex As Exception
- _logger.Info("[DATABASE] Fehler beim Zugriff auf die Datenbank ")
- _logger.Info(ex.Message)
+ _logger.Write("[DATABASE] Fehler beim Zugriff auf die Datenbank ")
+ _logger.WriteError(ex)
Return CreateResponseMessage(Request, HttpStatusCode.InternalServerError)
End Try
If DT.Rows.Count = 0 Then
- _logger.Info($"[DATABASE] BenutzerID {userId} wurde nicht in der Datenbank gefunden.")
+ _logger.Write($"[DATABASE] BenutzerID {userId} wurde nicht in der Datenbank gefunden.")
Return CreateResponseMessage(Request, $"Benutzer {userId} wurde nicht gefunden", HttpStatusCode.Unauthorized)
Else
- Dim firstRow As DataRow = DT.Rows.Item(0)
+ Dim oRow As DataRow = DT.Rows.Item(0)
- Domain = firstRow.Item("DOMAIN")
- Username = firstRow.Item("USERNAME")
- Password = firstRow.Item("PW")
+ Domain = oRow.Item("DOMAIN")
+ Username = oRow.Item("USERNAME")
+ Password = oRow.Item("PW")
- _logger.Info($"[DATABASE] BenutzerID {userId} wurde gefunden.")
+ _logger.Write($"[DATABASE] BenutzerID {userId} wurde gefunden.")
End If
Dim loggedIn As Boolean = CreateSessionForUser(Username, Password, Domain)
@@ -194,9 +144,9 @@ Namespace Controllers
Try
WMDoc = _session.GetWMObjectById(WMEntity.WMEntityDocument, docId)
Catch ex As Exception
- _logger.Info("[WINDREAM/GetWMObjectById] Ein Fehler beim Zugriff auf Windream ist aufgetreten ")
- _logger.Info(ex.Message)
- _logger.Info($"[WINDREAM/Session] Session für Benutzer {Username} wird geschlossen")
+ _logger.Write("[WINDREAM/GetWMObjectById] Ein Fehler beim Zugriff auf Windream ist aufgetreten ")
+ _logger.WriteError(ex)
+ _logger.Write($"[WINDREAM/Session] Session für Benutzer {Username} wird geschlossen")
_session.Logout()
Return CreateResponseMessage(Request, "Document not found", HttpStatusCode.NotFound)
@@ -206,15 +156,15 @@ Namespace Controllers
WMStream = WMDoc.OpenStream("BinaryObject", WMObjectStreamOpenMode.WMObjectStreamOpenModeRead)
fileContent = WMStream.Read(WMStream.GetSize())
Catch ex As Exception
- _logger.Info("[WINDREAM/OpenStream] Ein Fehler beim Zugriff auf Windream ist aufgetreten")
- _logger.Info(ex.Message)
- _logger.Info($"[WINDREAM/Session] Session für Benutzer {Username} wird geschlossen")
+ _logger.Write("[WINDREAM/OpenStream] Ein Fehler beim Zugriff auf Windream ist aufgetreten")
+ _logger.WriteError(ex)
+ _logger.Write($"[WINDREAM/Session] Session für Benutzer {Username} wird geschlossen")
_session.Logout()
Return CreateResponseMessage(Request, HttpStatusCode.InternalServerError)
End Try
- _logger.Info($"[WINDREAM/Session] Session für Benutzer {Username} wird geschlossen")
+ _logger.Write($"[WINDREAM/Session] Session für Benutzer {Username} wird geschlossen")
_session.Logout()
' Gibt die Datei zum Download zurück
@@ -222,10 +172,11 @@ Namespace Controllers
End Function
Private Function CreateFileResponseMessage(data As Byte(), filename As String) As HttpResponseMessage
- _logger.Info($"[WINDREAM/Download] Datei {filename} wird für Download zur Verfügung gestellt")
- Dim Res = New HttpResponseMessage()
- Res.StatusCode = HttpStatusCode.OK
- Res.Content = New ByteArrayContent(data)
+ _logger.Write($"[WINDREAM/Download] Datei {filename} wird für Download zur Verfügung gestellt")
+ Dim Res = New HttpResponseMessage With {
+ .StatusCode = HttpStatusCode.OK,
+ .Content = New ByteArrayContent(data)
+ }
Res.Content.Headers.ContentType = New MediaTypeHeaderValue("application/octet-stream")
Res.Content.Headers.ContentDisposition = New ContentDispositionHeaderValue("attachment") With {
.FileName = filename
@@ -244,66 +195,68 @@ Namespace Controllers
'' Get the current Windream Server
DMSServer = WMServerBrowser.GetCurrentServer()
Catch ex As Exception
- _logger.Info($"[WINDREAM/ServerBrowser] DMS Server konnte nicht ausgelesen werden.")
- _logger.Info(ex.Message)
+ _logger.Write($"[WINDREAM/ServerBrowser] DMS Server konnte nicht ausgelesen werden.")
+ _logger.WriteError(ex)
Return False
End Try
Try
' Create a User Object for Session
- User = New WMOTOOLLib.WMUserIdentity()
- User.aDomain = domain
- User.aPassword = password
- User.aUserName = username
- User.aServerName = DMSServer
+ User = New WMOTOOLLib.WMUserIdentity With {
+ .aDomain = domain,
+ .aPassword = password,
+ .aUserName = username,
+ .aServerName = DMSServer
+ }
Catch ex As Exception
- _logger.Info($"[WINDREAM/User] User Objekt konnte nicht erstellt werden.")
- _logger.Info(ex.Message)
+ _logger.Write($"[WINDREAM/User] User Objekt konnte nicht erstellt werden.")
+ _logger.WriteError(ex)
Return False
End Try
- _logger.Info("[WINDREAM/Session] Session wird aufgebaut")
- _logger.Info($"[WINDREAM/Session] Username: {username}")
- _logger.Info($"[WINDREAM/Session] Passwort: {password}")
- _logger.Info($"[WINDREAM/Session] Domäne: {domain}")
- _logger.Info($"[WINDREAM/Session] Windream Server: {DMSServer}")
+ _logger.Write("[WINDREAM/Session] Session wird aufgebaut")
+ _logger.Write($"[WINDREAM/Session] Username: {username}")
+ _logger.Write($"[WINDREAM/Session] Passwort: {password}")
+ _logger.Write($"[WINDREAM/Session] Domäne: {domain}")
+ _logger.Write($"[WINDREAM/Session] Windream Server: {DMSServer}")
Try
' Create Connect Object for Session
- Connect = New WMConnect()
- Connect.ModuleId = 9
+ Connect = New WMConnect With {
+ .ModuleId = 9
+ }
Catch ex As Exception
- _logger.Info($"[WINDREAM/Connect] Connect Objekt konnte nicht erstellt werden.")
- _logger.Info(ex.Message)
+ _logger.Write($"[WINDREAM/Connect] Connect Objekt konnte nicht erstellt werden.")
+ _logger.WriteError(ex)
Return False
End Try
Try
Session = Connect.Login(User)
- _logger.Info($"[WINDREAM/Session] Session wurde aufgebaut")
+ _logger.Write($"[WINDREAM/Session] Session wurde aufgebaut")
If Session.aLoggedin Then
_session = Session
- _logger.Info($"[WINDREAM/Session] Benutzer {username} ist eingeloggt")
+ _logger.Write($"[WINDREAM/Session] Benutzer {username} ist eingeloggt")
Return True
Else
- _logger.Info($"[WINDREAM/Session] Fehler beim Aufbau der Session. Benutzer {username} ist nicht eingeloggt!")
+ _logger.Write($"[WINDREAM/Session] Fehler beim Aufbau der Session. Benutzer {username} ist nicht eingeloggt!")
Return False
End If
Catch ex As Exception
- _logger.Info($"[WINDREAM/Session] Fehler bei Login von Benutzer {username}!")
- _logger.Info(ex.Message)
+ _logger.Write($"[WINDREAM/Session] Fehler bei Login von Benutzer {username}!")
+ _logger.WriteError(ex)
If Not IsNothing(Session) AndAlso Session.aLoggedin Then
_session = Session
- _logger.Info($"[WINDREAM/Session] Benutzer {username} ist eingeloggt")
+ _logger.Write($"[WINDREAM/Session] Benutzer {username} ist eingeloggt")
Return True
Else
- _logger.Info($"[WINDREAM/Session] Fehler beim Aufbau der Session. Benutzer {username} ist nicht eingeloggt!")
- _logger.Info(ex.Message)
+ _logger.Write($"[WINDREAM/Session] Fehler beim Aufbau der Session. Benutzer {username} ist nicht eingeloggt!")
+ _logger.WriteError(ex)
Return False
End If
End Try
diff --git a/DigitalDataBNSPlugin/IUselessModel.vb b/DigitalDataBNSPlugin/IUselessModel.vb
new file mode 100644
index 0000000..1b94286
--- /dev/null
+++ b/DigitalDataBNSPlugin/IUselessModel.vb
@@ -0,0 +1,3 @@
+Friend Interface IUselessModel
+ Property Message As String
+End Interface
diff --git a/DigitalDataBNSPlugin/ServiceRegistrator.vb b/DigitalDataBNSPlugin/ServiceRegistrator.vb
index ebd12ec..66e3417 100644
--- a/DigitalDataBNSPlugin/ServiceRegistrator.vb
+++ b/DigitalDataBNSPlugin/ServiceRegistrator.vb
@@ -1,10 +1,10 @@
-Imports Microsoft.Practices.Unity
+Imports Microsoft.practices.unity
Imports Windream.WebService.PlugIns
Public Class ServiceRegistrator
Implements IServiceRegistrator
Public Sub RegisterServices(container As IUnityContainer) Implements IServiceRegistrator.RegisterServices
- ' container.RegisterType(Of TInterface, TImpl)()
+ container.RegisterType(Of IUselessModel, UselessModel)()
End Sub
End Class
diff --git a/DigitalDataBNSPlugin/UselessModel.vb b/DigitalDataBNSPlugin/UselessModel.vb
new file mode 100644
index 0000000..f72d052
--- /dev/null
+++ b/DigitalDataBNSPlugin/UselessModel.vb
@@ -0,0 +1,5 @@
+Public Class UselessModel
+ Implements IUselessModel
+
+ Public Property Message As String Implements IUselessModel.Message
+End Class