///////////////////////////////////////////////////////////
// UserTimeZoneOffsetFetcher.cs
// Implementation of Class UserTimeZoneOffsetFetcher
// CSLA type: Read-only object
// Created on: 20091111
// Object design: John
// Coded: 20091111
///////////////////////////////////////////////////////////
using System;
using System.Data;
using CSLA.Data;
using GZTW.Data;
using CSLA;
using System.Threading;
using CSLA.Security;
using System.ComponentModel;
namespace GZTW.AyaNova.BLL
{
//case 58
///
///Quickly fetch users TimeZoneOffset
///
[Serializable, EditorBrowsable(EditorBrowsableState.Never)]
internal class UserTimeZoneOffsetFetcher : ReadOnlyBase
{
#region Attributes
private decimal mTimeZoneOffset;
#endregion
#region Constructor
///
/// Private constructor to prevent direct instantiation
///
private UserTimeZoneOffsetFetcher()
{
}
#endregion
#region Static methods
internal static decimal UserTimeZoneOffset(Guid UserID)
{
return ((UserTimeZoneOffsetFetcher)DataPortal.Fetch(new Criteria(UserID))).mTimeZoneOffset;
}
#endregion
#region DAL DATA ACCESS
///
///
protected override void DataPortal_Fetch(object Criteria)
{
Criteria crit = (Criteria)Criteria;
this.mTimeZoneOffset = DBUtil.ScalarToDecimal(DBUtil.GetScalarFromSQLString(
"SELECT aTimeZoneOffset FROM aUser WHERE " +
"(aID = @ID)", crit.UserID
));
}
#endregion
#region criteria
///
/// Criteria for identifying existing object
///
[Serializable]
private class Criteria
{
public Guid UserID;
public Criteria(Guid _UserID)
{
UserID = _UserID;
}
}
#endregion
}//end class
}//end namespace GZTW.AyaNova.BLL