Public MustInherit Class ContentClient
  Inherits GenericClient

#Region "Version Maintenance Functions"

  Public MustOverride Function GetContentID(ByVal trackingID As String, ByVal UserControl As String, ByVal OwnerID As String, ByVal Ownertype As String) As Integer

  Public MustOverride Function GetVersions(ByVal trackingID As String, ByVal ContentID As Integer) As List(Of ContentSchema.VERSION)

    Public MustOverride Sub UpdateVersionText(ByVal TrackingId As String, ByVal VersionId As Integer, ByVal VersionText As String, ByVal VersionName As String, ByVal SearchResultDisplayable As Boolean)

  Public MustOverride Sub DeleteVersion(ByVal trackingID As String, ByVal versionID As Integer)

  Public MustOverride Function AddVersion(ByVal TrackingId As String, ByVal ContentID As Integer, ByVal VersionName As String, ByVal VersionText As String) As Boolean

  Public MustOverride Function GetCharterMessages(ByVal trackingID As String, ByVal UserControl As String) As List(Of String)

#End Region

#Region "Schedule Maintenance Functions"

  Public MustOverride Function GetSchedules(ByVal trackingID As String, ByVal VersionID As Integer) As List(Of ContentSchema.SCHEDULE)

  Public MustOverride Sub UpdateSchedule(ByVal TrackingId As String, ByVal ScheduleID As Integer, ByVal Startdate As Date, ByVal EndDate As Date)

  Public MustOverride Sub AddSchedule(ByVal TrackingId As String, ByVal VersionID As Integer, ByVal Startdate As Date, ByVal EndDate As Date)


  Public MustOverride Sub DeleteSchedule(ByVal trackingID As String, ByVal ScheduleID As Integer)

#End Region

#Region "Version Image Maintenance Functions"

  Public MustOverride Function GetImageForVersion(ByVal trackingID As String, ByVal VersionID As Integer) As ContentSchema.IMAGE()

  Public MustOverride Sub UpdateVersionImage(ByVal trackingID As String, ByVal objVersion As ContentSchema.IMAGE)

  Public MustOverride Sub DeleteVersionImage(ByVal trackingID As String, ByVal ImageID As Integer, ByVal versionID As Integer)

  Public MustOverride Sub AddVersionImage(ByVal trackingID As String, ByVal objImage As ContentSchema.IMAGE)

#End Region

#Region "Image Maintenance Functions"

  Public MustOverride Function GetImages(ByVal trackingID As String) As List(Of String)

  Public MustOverride Function AddImage(ByVal trackingID As String, ByVal Name As String, ByVal ImageData() As Byte) As Boolean

  Public MustOverride Sub DeleteImage(ByVal trackingID As String, ByVal Name As String)

  Public MustOverride Function GetImage(ByVal trackingID As String, ByVal ImageName As String) As ContentSchema.IMAGE

#End Region

#Region "Binary File Maintenance Functions"

    Public MustOverride Function GetBinaryFile(ByVal trackingID As String, ByVal BinaryFileName As String, ByVal BinaryFileExtension As String) As ContentSchema.BINARYFILE

#End Region

#Region "Product catalog Content display Functions"

  Public MustOverride Function GetContent(ByVal trackingID As String, ByVal UserControl As String, ByVal OwnerID As String, ByVal Ownertype As String) As String

  Public MustOverride Function GetContentByTemplateID(ByVal TrackingID As String, ByVal TemplateID As Integer) As DataTable


#End Region

#Region "Organization structure Functions"

  'This sub-routine is called on changing Organization level 
  Public MustOverride Sub SetOrganization(ByVal trackingID As String, ByVal OrganizationID As String)

  Public MustOverride Function GetOrganization(ByVal trackingID As String) As String

  Public MustOverride Function GetOwnerTypes(ByVal trackingID As String) As Dictionary(Of Integer, String)

  Public MustOverride Function GetOwners(ByVal trackingID As String, ByVal OwnerTypeID As Integer) As Dictionary(Of Integer, String)

#End Region

End Class
