Public MustInherit Class SiteClient
    Inherits GenericClient


#Region "Search"
    Public MustOverride Function SearchSite(ByVal SearchString As String) As ISearchResultCollection
    Public MustOverride Function SearchSupport(ByVal SearchString As String) As ISearchResultCollection
#End Region


#Region "WEB CONFIGURATION SETTINGS SECTION"
    Public MustOverride Function GetWebConfigSettings(ByVal RequestLocation As String) As IWebConfigSettingsCollection
#End Region
 

#Region "Support"
    Public MustOverride Sub AddDocumentComments(ByVal Comments As String, ByVal CreatedBy As String, ByVal DocumentID As Integer, ByVal Helpful As Boolean, ByVal Rating As Integer)
    Public MustOverride Function GetRelatedDocuments(ByVal ID As Integer) As Dictionary(Of String, Object)
    Public MustOverride Sub RemoveDocumentRelation(ByVal ID As Integer, ByRef IDtoRemove As Integer)
    Public MustOverride Function GetAllDocuments() As Dictionary(Of String, Object)
    Public MustOverride Sub RelateDocument(ByVal ID As Integer, ByRef IDtoRelate As Integer)
    Public MustOverride Function AddDocument(ByVal folderID As Integer, ByVal HTML As String, ByVal ID As Integer, ByVal KeyWords As String, ByVal Summary As String, ByVal Title As String) As Integer
    Public MustOverride Function AddFolder(ByVal ID As Integer, ByVal Name As String, ByVal NumberOfChildren As Integer, ByVal ParentFolderID As Integer) As Integer
    Public MustOverride Sub DeleteDocument(ByVal documentID As Integer)
    Public MustOverride Sub DeleteFolder(ByVal FolderID As Integer)
    Public MustOverride Function GetDistinctKeyWords() As Dictionary(Of String, Object)
    Public MustOverride Function GetDocument(ByVal documentID As Integer) As Dictionary(Of String, Object)
    Public MustOverride Function GetEligibility(ByVal account As String, ByVal mac As String, ByVal phone As String, ByVal zipAccount As String, ByVal zipPhone As String) As String

    Public MustOverride Function GetAllFolders() As DataTable
  Public MustOverride Function GetDocumentFolders() As Dictionary(Of String, Object)
    Public MustOverride Function GetDocumentFolders(ByVal parentFolderID As Integer) As Dictionary(Of String, Object)
    Public MustOverride Function GetFolder(ByVal folderID As Integer) As Dictionary(Of String, Object)
    'Public MustOverride Function GetFolderDocuments(ByVal folderID As Integer) As Dictionary(Of String, Object)
    Public MustOverride Sub MoveDocument(ByVal documentID As Integer, ByVal newFolderID As Integer)
    Public MustOverride Sub UpdateDocument(ByVal HTML As String, ByVal ID As Integer, ByVal KeyWords As String, ByVal Summary As String, ByVal Title As String)
    Public MustOverride Sub UpdateFolder(ByVal ID As Integer, ByVal Name As String, ByVal NumberOfChildren As Integer, ByVal ParentFolderID As Integer)
  Public MustOverride Function GetBinaryDocument(ByVal ID As Integer) As KeyValuePair(Of String, Byte())
#End Region

#Region "Populate Channel Line Up (CLU) Functions"

    'Public MustOverride Sub GetLineupByID(ByVal trackingID As String, ByVal FTA As String, ByVal ServiceLevelName As String, ByVal SystemCode As String)

    Public MustOverride Sub GetLineupBySystemFTA(ByVal trackingID As String, ByVal FTA As String, ByVal SystemCode As String)

    Public MustOverride Sub GetLineupByZipZip4(ByVal trackingID As String, ByVal Zip As String, ByVal Zip4 As String)

    Public MustOverride Function GetChannelLineup(ByVal trackingid As String, ByVal AddressLine1 As String, ByVal AddressLine2 As String, ByVal ZipCode As String, ByVal HDTVOnly As Boolean) As IChannelLineUp

#End Region

#Region "CONTACT US"
	Public MustOverride Function ContactUsByEmail(ByVal trackingiD As String, ByVal fName As String, ByVal lName As String, ByVal streetAddress As String, ByVal city As String, ByVal state As String, ByVal zip As String, ByVal phoneNumber As String, ByVal fromEmail As String, ByVal subject As String, ByVal body As String) As Boolean
#End Region

#Region "Register for Services"

  Public MustOverride Function PreRegisterForUpdate(ByVal trackingID As String, ByVal fName As String, ByVal lname As String, _
        ByVal street As String, ByVal apt As String, ByVal city As String, ByVal state As String, ByVal zip As String, ByVal phone As String, ByVal email As String) As Boolean

  Public MustOverride Function RequestForFollowUp(ByVal trackingID As String, ByVal fName As String, ByVal lname As String, _
          ByVal street As String, ByVal apt As String, ByVal city As String, ByVal state As String, ByVal zip As String, _
          ByVal phone As String, ByVal email As String, ByVal cable As Boolean, ByVal hsd As Boolean, ByVal telephone As Boolean) As Boolean

#End Region

#Region "OTHER"

  Public MustOverride Sub SubscribeForUpdates(ByVal trackingID As String, ByVal eMail As String, ByVal cable As Boolean, ByVal data As Boolean, ByVal voice As Boolean)

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

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

  Public MustOverride Sub SetKey(ByVal trackingID As String, ByVal SiteKey As String)

#End Region

End Class
