' <fileinfo name="ProductsbyCategoryRow_Base.vb">
'       <copyright>
'           All rights reserved.
'       </copyright>
'       <remarks>
'           Do not change this source code manually. Changes to this file may 
'           cause incorrect behavior and will be lost if the code is regenerated.
'       </remarks>
'       <generator rewritefile="True" infourl="http://www.SharpPower.com">RapTier</generator>
' </fileinfo>

Option Strict Off
Option Explicit On

Imports System

''' <summary>
''' The base class for <see cref="ProductsbyCategoryRow"/> that 
''' represents a record in the <c>Products by Category</c> view.
''' </summary>
''' <remarks>
''' Do not change this source code manually. Update the <see cref="ProductsbyCategoryRow"/>
''' class if you need to add or change some functionality.
''' </remarks>
Public MustInherit Class ProductsbyCategoryRow_Base
    Private _categoryName As String
    Private _productName As String
    Private _quantityPerUnit As String
    Private _unitsInStock As Short
    Private _unitsInStockNull As Boolean = True
    Private _discontinued As Boolean

    ''' <summary>
    ''' Initializes a new instance of the <see cref="ProductsbyCategoryRow_Base"/> class.
    ''' </summary>
    Public Sub New()
        MyBase.New()
        ' EMPTY
    End Sub

        ''' <summary>
        ''' Gets or sets the <c>CategoryName</c> column value.
        ''' </summary>
        ''' <value>The <c>CategoryName</c> column value.</value>
    Public Property CategoryName As String
        Get
            Return _categoryName
        End Get
        Set
            _categoryName = value
        End Set
    End Property

        ''' <summary>
        ''' Gets or sets the <c>ProductName</c> column value.
        ''' </summary>
        ''' <value>The <c>ProductName</c> column value.</value>
    Public Property ProductName As String
        Get
            Return _productName
        End Get
        Set
            _productName = value
        End Set
    End Property

        ''' <summary>
        ''' Gets or sets the <c>QuantityPerUnit</c> column value.
        ''' This column is nullable.
        ''' </summary>
        ''' <value>The <c>QuantityPerUnit</c> column value.</value>
    Public Property QuantityPerUnit As String
        Get
            Return _quantityPerUnit
        End Get
        Set
            _quantityPerUnit = value
        End Set
    End Property

        ''' <summary>
        ''' Gets or sets the <c>UnitsInStock</c> column value.
        ''' This column is nullable.
        ''' </summary>
        ''' <value>The <c>UnitsInStock</c> column value.</value>
    Public Property UnitsInStock As Short
        Get
            If IsUnitsInStockNull Then
                Throw New InvalidOperationException("Cannot get value because it is DBNull.")
            End If
            Return _unitsInStock
        End Get
        Set
            _unitsInStockNull = false
            _unitsInStock = value
        End Set
    End Property

    ''' <summary>
    ''' Indicates whether the <see cref="UnitsInStock"/>
    ''' property value is null.
    ''' </summary>
    ''' <value>true if the property value is null, otherwise false.</value>
    Public Property IsUnitsInStockNull As Boolean
        Get
            Return _unitsInStockNull
        End Get
        Set
            _unitsInStockNull = value
        End Set
    End Property

        ''' <summary>
        ''' Gets or sets the <c>Discontinued</c> column value.
        ''' </summary>
        ''' <value>The <c>Discontinued</c> column value.</value>
    Public Property Discontinued As Boolean
        Get
            Return _discontinued
        End Get
        Set
            _discontinued = value
        End Set
    End Property

    ''' <summary>
    ''' Returns the string representation of this instance.
    ''' </summary>
    ''' <returns>The string representation of this instance.</returns>
    Public Overrides Function ToString() As String
        Dim dynStr As System.Text.StringBuilder = New System.Text.StringBuilder(Me.GetType().Name)
        dynStr.Append(":")
        dynStr.Append("  CategoryName=")
        dynStr.Append(Me.CategoryName)
        dynStr.Append("  ProductName=")
        dynStr.Append(Me.ProductName)
        dynStr.Append("  QuantityPerUnit=")
        dynStr.Append(Me.QuantityPerUnit)
        dynStr.Append("  UnitsInStock=")
        If IsUnitsInStockNull Then
            dynStr.Append("<NULL>")
        Else
            dynStr.Append(Me.UnitsInStock)
        End If
        dynStr.Append("  Discontinued=")
        dynStr.Append(Me.Discontinued)
        Return dynStr.ToString()
    End Function
End Class