Commit for development environment setup
This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
using System;
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
using Csla;
|
||||
using Csla.Data;
|
||||
|
||||
namespace ProjectTracker.Library
|
||||
{
|
||||
[Serializable()]
|
||||
public class RoleList :
|
||||
NameValueListBase<int, string>
|
||||
{
|
||||
#region Business Methods
|
||||
|
||||
public static int DefaultRole()
|
||||
{
|
||||
RoleList list = GetList();
|
||||
if (list.Count > 0)
|
||||
return list.Items[0].Key;
|
||||
else
|
||||
throw new NullReferenceException(
|
||||
"No roles available; default role can not be returned");
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Factory Methods
|
||||
|
||||
private static RoleList _list;
|
||||
|
||||
/// <summary>
|
||||
/// Returns a list of roles.
|
||||
/// </summary>
|
||||
public static RoleList GetList()
|
||||
{
|
||||
if (_list == null)
|
||||
_list = DataPortal.Fetch<RoleList>
|
||||
(new Criteria(typeof(RoleList)));
|
||||
return _list;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Clears the in-memory RoleList cache
|
||||
/// so the list of roles is reloaded on
|
||||
/// next request.
|
||||
/// </summary>
|
||||
public static void InvalidateCache()
|
||||
{
|
||||
_list = null;
|
||||
}
|
||||
|
||||
private RoleList()
|
||||
{ /* require use of factory methods */ }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Data Access
|
||||
|
||||
private void DataPortal_Fetch(Criteria criteria)
|
||||
{
|
||||
this.RaiseListChangedEvents = false;
|
||||
using (SqlConnection cn = new SqlConnection(Database.PTrackerConnection))
|
||||
{
|
||||
cn.Open();
|
||||
using (SqlCommand cm = cn.CreateCommand())
|
||||
{
|
||||
cm.CommandType = CommandType.StoredProcedure;
|
||||
cm.CommandText = "getRoles";
|
||||
|
||||
using (SafeDataReader dr =
|
||||
new SafeDataReader(cm.ExecuteReader()))
|
||||
{
|
||||
IsReadOnly = false;
|
||||
while (dr.Read())
|
||||
{
|
||||
this.Add(new NameValuePair(
|
||||
dr.GetInt32("id"), dr.GetString("name")));
|
||||
}
|
||||
IsReadOnly = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
this.RaiseListChangedEvents = true;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user