// ========================================================================
// Copyright 2006 - Volian Enterprises, Inc. All rights reserved.          
// Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
// ------------------------------------------------------------------------
// $Workfile: $     $Revision: $                                           
// $Author: $   $Date: $                                                   
//                                                                         
// $History: $                                                             
// ========================================================================
using System;
using System.Data;
using System.Data.SqlClient;
using Csla;
using Csla.Data;
namespace Volian.Object.Library
{
    /// 
    ///	PermissionInfo Generated by MyGeneration using the CSLA Object Mapping template
    /// 
    [Serializable()]
    public partial class PermissionInfo : ReadOnlyBase
    {
        #region Business Methods
        private int _pid;
        [System.ComponentModel.DataObjectField(true, true)]
        public int Pid
        {
            [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
            get
            {
                return _pid;
            }
        }
        private int _rid;
        [System.ComponentModel.DataObjectField(true, true)]
        public int Rid
        {
            [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
            get
            {
                return _rid;
            }
        }
        private int _permlevel;
        /// 
        /// 0 - Security, 1 - System, 2 - RO, 3 - Procdures, 4 - Sections, 5 - Steps, 6 - Comments
        /// 
        [System.ComponentModel.DataObjectField(true, true)]
        public int PermLevel
        {
            [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
            get
            {
                return _permlevel;
            }
        }
        private int _versiontype;
        /// 
        /// 0 - Working Draft, 1 - Temporary Change, 2 Approved
        /// 
        [System.ComponentModel.DataObjectField(true, true)]
        public int VersionType
        {
            [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
            get
            {
                return _versiontype;
            }
        }
        private int _permvalue;
        /// 
        /// 1 - Read, 2 - Write, 4 - Create, 8 - Delete (15 - All)
        /// 
        [System.ComponentModel.DataObjectField(true, true)]
        public int PermValue
        {
            [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
            get
            {
                return _permvalue;
            }
        }
        private int _permad;
        /// 
        /// 0 - Allow, 1 - Deny
        /// 
        [System.ComponentModel.DataObjectField(true, true)]
        public int Permad
        {
            [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
            get
            {
                return _permad;
            }
        }
        private string _startdate = string.Empty;
        [System.ComponentModel.DataObjectField(true, true)]
        public string StartDate
        {
            [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
            get
            {
                return _startdate;
            }
        }
        private string _enddate = string.Empty;
        [System.ComponentModel.DataObjectField(true, true)]
        public string EndDate
        {
            [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
            get
            {
                return _enddate;
            }
        }
        private DateTime _dts = new DateTime();
        [System.ComponentModel.DataObjectField(true, true)]
        public DateTime Dts
        {
            [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
            get
            {
                return _dts;
            }
        }
        private string _usrid = string.Empty;
        [System.ComponentModel.DataObjectField(true, true)]
        public string Usrid
        {
            [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
            get
            {
                return _usrid;
            }
        }
        // TODO: Replace base PermissionInfo.ToString function as necessary
        /// 
        /// Overrides Base ToString
        /// 
        /// A string representation of current PermissionInfo
        //public override string ToString()
        //{
        //  return base.ToString();
        //}
        // TODO: Check PermissionInfo.GetIdValue to assure that the ID returned is unique
        /// 
        /// Overrides Base GetIdValue - Used internally by CSLA to determine equality
        /// 
        /// A Unique ID for the current PermissionInfo
        protected override object GetIdValue()
        {
            return _pid;
        }
        #endregion
        #region Factory Methods
        private PermissionInfo()
        { /* require use of factory methods */ }
        #endregion
        #region Data Access Portal
        internal PermissionInfo(SafeDataReader dr)
        {
            try
            {
                _pid = dr.GetInt32("PID");
                _rid = dr.GetInt32("RID");
                _permlevel = dr.GetInt32("PermLevel");
                _versiontype = dr.GetInt32("VersionType");
                _permvalue = dr.GetInt32("PermValue");
                _permad = dr.GetInt32("PermAD");
                _startdate = dr.GetSmartDate("StartDate").Text;
                _enddate = dr.GetSmartDate("EndDate").Text;
                _dts = dr.GetDateTime("DTS");
                _usrid = dr.GetString("UsrID");
            }
            catch (Exception ex)
            {
                Database.LogException("PermissionInfo", ex);
            }
        }
        #endregion
    } // Class
} // Namespace