Imports DigitalData.Modules.Logging Imports System.IO Public Class Path Private ReadOnly _LogConfig As LogConfig Private ReadOnly _Logger As Logger Private ReadOnly _BasePath As String Public Const PATH_ACTIVE As String = "Active" Public Const PATH_ARCHIVE As String = "Archive" Public Const PATH_EDMI As String = "EDMI" Public Sub New(LogConfig As LogConfig, DatastoreBasePath As String) _LogConfig = LogConfig _Logger = LogConfig.GetLogger() _BasePath = DatastoreBasePath End Sub Public Function GetActivePath(DocumentType As String, Optional FileName As String = "") As String Dim oParts = New List(Of String) From {_BasePath, PATH_EDMI, PATH_ACTIVE} oParts.AddRange(Do_GetRelativePath(DocumentType, FileName)) Return IO.Path.Combine(oParts.ToArray()) End Function Public Function GetActivePathFromRelativePath(RelativePath As String) As String Dim oParts = New List(Of String) From {_BasePath, PATH_EDMI, PATH_ACTIVE} oParts.Add(RelativePath) Return IO.Path.Combine(oParts.ToArray) End Function Public Function GetArchivePath(DocumentType As String, Optional FileName As String = "") As String Dim oParts = New List(Of String) From {_BasePath, PATH_EDMI, PATH_ARCHIVE} oParts.AddRange(Do_GetRelativePath(DocumentType, FileName)) Return IO.Path.Combine(oParts.ToArray()) End Function Public Function GetArchivePathFromRelativePath(RelativePath As String) As String Dim oParts = New List(Of String) From {_BasePath, PATH_EDMI, PATH_ARCHIVE} oParts.Add(RelativePath) Return IO.Path.Combine(oParts.ToArray) End Function Public Function GetRelativePath(DocumentType As String, Optional FileName As String = "") As String Return IO.Path.Combine(Do_GetRelativePath(DocumentType, FileName).ToArray) End Function Private Function Do_GetRelativePath(DocumentType As String, Optional FileName As String = "") As List(Of String) Dim oPathParts As New List(Of String) From {DocumentType} oPathParts.AddRange(GetDatePath()) oPathParts.Add(FileName) Return oPathParts End Function Private Function GetDatePath() As List(Of String) Dim oDate = DateTime.Now Dim oResultList As New List(Of String) From { oDate.Year, oDate.Month.ToString.PadLeft(2, "0"), oDate.Day.ToString.PadLeft(2, "0") } Return oResultList End Function End Class