Imports CharterDotCom.CommonEntities.Library.Enumerations

Public MustInherit Class OrderClient
    Inherits GenericClient

#Region "Order"

    ' this method should be used to submit an order, only if credit card information is not avaialable
    Public MustOverride Function SubmitOrder(ByVal trackingID As String) As Boolean

    ' this method should be used to submit an order, if credit card information is available
    'Public MustOverride Function SubmitOrder(ByVal trackingID As String, ByVal amount As Decimal, ByVal name As String, ByVal type As String, ByVal number As String, ByVal expMonth As String, ByVal expYear As String) As Boolean

    'Public MustOverride Function CancelOrder(ByVal trackingID As String, ByVal orderConfirmation As String, ByVal reason As String) As Boolean
    Public MustOverride Function GetOrderConfirmations(ByVal trackingID As String) As Dictionary(Of Category, IOrder.IOrderConfirmation)

    Public MustOverride Sub GetConfirmationInfo(ByVal trackID As String, ByRef list As Dictionary(Of String, IConfirmation))

#End Region

#Region "Schedule"

    ' this method returns the available schedules for cable, hsd and Telephone categories 
    Public MustOverride Sub GetSchedule(ByVal trackingID As String, ByRef schedule1 As IOrder.ISchedule, ByRef schedule2 As IOrder.ISchedule)

    Public MustOverride Function SubmitSchedules(ByVal trackingID As String, ByVal type1 As String, ByVal schedule1 As List(Of String), ByVal type2 As String, ByVal schedule2 As List(Of String)) As Boolean

#End Region

#Region "Appointments"

    Public MustOverride Sub GetAppointments(ByVal trackingID As String, ByRef list As Dictionary(Of ScheduleType, IOrder.IAppointment))

#End Region

#Region "FINISH ORDER"
    Public MustOverride Sub ClearShoppingCart(ByVal trackingID As String)
    Public MustOverride Function SendOrderConfirmationEmail(ByVal trackingID As String) As Boolean
#End Region


    Public MustOverride Function SendELOA(ByVal trackingID As String, ByVal userIDField As String, ByVal passwordField As String, ByVal eLOANameField As String, ByVal versionField As String, ByVal dNISField As String, ByVal telephoneNbrField As String, ByVal firstNameField As String, ByVal lastNameField As String, ByVal affiliateIDField As String, ByVal affiliateNameField As String, ByVal affiliateTypeField As String, ByVal decisionMakerField As String, ByVal securityTypeField As String, ByVal securityValueField As String, ByVal localField As String, ByVal localTollField As String, ByVal longDistanceField As String, ByVal e911Field As String, ByVal statusField As String, ByVal reasonCodeField As String, ByVal wTNsField() As String) As Boolean

End Class
