' <fileinfo name="SalesbyCategoryRow_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="SalesbyCategoryRow"/> that 
''' represents a record in the <c>Sales by Category</c> view.
''' </summary>
''' <remarks>
''' Do not change this source code manually. Update the <see cref="SalesbyCategoryRow"/>
''' class if you need to add or change some functionality.
''' </remarks>
Public MustInherit Class SalesbyCategoryRow_Base
    Private _categoryID As Integer
    Private _categoryName As String
    Private _productName As String
    Private _productSales As Decimal
    Private _productSalesNull As Boolean = True

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

        ''' <summary>
        ''' Gets or sets the <c>CategoryID</c> column value.
        ''' </summary>
        ''' <value>The <c>CategoryID</c> column value.</value>
    Public Property CategoryID As Integer
        Get
            Return _categoryID
        End Get
        Set
            _categoryID = value
        End Set
    End Property

        ''' <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>ProductSales</c> column value.
        ''' This column is nullable.
        ''' </summary>
        ''' <value>The <c>ProductSales</c> column value.</value>
    Public Property ProductSales As Decimal
        Get
            If IsProductSalesNull Then
                Throw New InvalidOperationException("Cannot get value because it is DBNull.")
            End If
            Return _productSales
        End Get
        Set
            _productSalesNull = false
            _productSales = value
        End Set
    End Property

    ''' <summary>
    ''' Indicates whether the <see cref="ProductSales"/>
    ''' property value is null.
    ''' </summary>
    ''' <value>true if the property value is null, otherwise false.</value>
    Public Property IsProductSalesNull As Boolean
        Get
            Return _productSalesNull
        End Get
        Set
            _productSalesNull = 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("  CategoryID=")
        dynStr.Append(Me.CategoryID)
        dynStr.Append("  CategoryName=")
        dynStr.Append(Me.CategoryName)
        dynStr.Append("  ProductName=")
        dynStr.Append(Me.ProductName)
        dynStr.Append("  ProductSales=")
        If IsProductSalesNull Then
            dynStr.Append("<NULL>")
        Else
            dynStr.Append(Me.ProductSales)
        End If
        Return dynStr.ToString()
    End Function
End Class