// ========================================================================
// 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
{
	/// 
	///	MembershipInfo Generated by MyGeneration using the CSLA Object Mapping template
	/// 
	[Serializable()]
	public partial class MembershipInfo : ReadOnlyBase
	{
	#region Business Methods
	
		private int _ugid;
		[System.ComponentModel.DataObjectField(true, true)]
		public int Ugid
		{
			[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
			get
			{
				CanReadProperty(true);
				return _ugid;
			}
		}
		private int _uid;
		[System.ComponentModel.DataObjectField(true, true)]
		public int Uid
		{
			[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
			get
			{
				CanReadProperty(true);
				return _uid;
			}
		}
		private int _gid;
		[System.ComponentModel.DataObjectField(true, true)]
		public int Gid
		{
			[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
			get
			{
				CanReadProperty(true);
				return _gid;
			}
		}
		private string _startdate=string.Empty;
		[System.ComponentModel.DataObjectField(true, true)]
		public string StartDate
		{
			[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
			get
			{
				CanReadProperty(true);
				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
			{
				CanReadProperty(true);
				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
			{
				CanReadProperty(true);
				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
			{
				CanReadProperty(true);
				return _usrid;
			}
		}
		// TODO: Replace base MembershipInfo.ToString function as necessary
		/// 
		/// Overrides Base ToString
		/// 
		/// A string representation of current MembershipInfo
		//public override string ToString()
		//{
		//  return base.ToString();
		//}
		// TODO: Check MembershipInfo.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 MembershipInfo
		protected override object GetIdValue()
		{
			return _ugid;
		}
	#endregion
	#region Factory Methods
    private MembershipInfo()
    { /* require use of factory methods */ }
	#endregion
	#region Data Access Portal
	internal MembershipInfo(SafeDataReader dr)
    {
		try
		{
			_ugid = dr.GetInt32("UGID");
			_uid = dr.GetInt32("UID");
			_gid = dr.GetInt32("GID");
			_startdate = dr.GetSmartDate("StartDate").Text;
			_enddate = dr.GetSmartDate("EndDate").Text;
			_dts = dr.GetDateTime("DTS");
			_usrid = dr.GetString("UsrID");
		}
		catch(Exception ex)
		{
			Database.LogException("MembershipInfo",ex);
		}
    }
	#endregion
	} // Class
} // Namespace