<Serializable()> _
Public Class ServicePlanFeatures

  Private _featureList As Dictionary(Of String, String)
  'Private _custList As Dictionary(Of String, Integer)
  Private _parentList As Dictionary(Of String, Parent)

  Public Sub New()
    _featureList = New Dictionary(Of String, String)
    '_custList = New Dictionary(Of String, Integer)
    _parentList = New Dictionary(Of String, Parent)
  End Sub

  Public ReadOnly Property FeatureList() As Dictionary(Of String, String)
    Get
      Return _featureList
    End Get

  End Property

  'Public ReadOnly Property CustomizationList() As Dictionary(Of String, Integer)
  '  Get
  '    Return _custList
  '  End Get
  'End Property

  Public ReadOnly Property ParentList() As Dictionary(Of String, Parent)
    Get
      Return _parentList
    End Get
  End Property

  Public Sub AddFeature(ByVal featureID As String, ByVal ParentID As String)
    _featureList.Add(featureID, ParentID)
  End Sub

  'Public Sub AddCustomization(ByVal featureID As String, ByVal ParentID As Integer)
  '  _custList.Add(featureID, ParentID)
  'End Sub

  Public Sub AddParent(ByVal ParentID As String, ByVal objParent As Parent)
    _parentList.Add(ParentID, objParent)
  End Sub

End Class

<Serializable()> _
Public Class Parent

  Private _Min As Integer
  Private _Max As Integer
  Private _AllowedMin As Integer
  Private _Allowedmax As Integer

  Public Sub New(ByVal Min As Integer, ByVal max As Integer, ByVal AllowedMin As Integer, ByVal Allowedmax As Integer)
    _Min = Min
    _Max = max
    _AllowedMin = AllowedMin
    _Allowedmax = Allowedmax
  End Sub

  Public Property Min() As Integer
    Get
      Return _Min
    End Get
    Set(ByVal value As Integer)
      _Min = value
    End Set
  End Property

  Public Property Max() As Integer
    Get
      Return _Max
    End Get
    Set(ByVal value As Integer)
      _Max = value
    End Set
  End Property

  Public Property AllowedMin() As Integer
    Get
      Return _AllowedMin
    End Get
    Set(ByVal value As Integer)
      _AllowedMin = value
    End Set
  End Property

  Public Property Allowedmax() As Integer
    Get
      Return _Allowedmax
    End Get
    Set(ByVal value As Integer)
      _Allowedmax = value
    End Set
  End Property

End Class

