62 lines
1.3 KiB
C#
62 lines
1.3 KiB
C#
using System;
|
|
using System.Data;
|
|
using System.Data.SqlClient;
|
|
using Csla;
|
|
using Csla.Data;
|
|
|
|
namespace ProjectTracker.Library
|
|
{
|
|
[Serializable()]
|
|
public class ResourceList :
|
|
ReadOnlyListBase<ResourceList, ResourceInfo>
|
|
{
|
|
#region Factory Methods
|
|
|
|
public static ResourceList GetResourceList()
|
|
{
|
|
return DataPortal.Fetch<ResourceList>(new Criteria());
|
|
}
|
|
|
|
private ResourceList()
|
|
{ /* require use of factory methods */ }
|
|
|
|
#endregion
|
|
|
|
#region Data Access
|
|
|
|
[Serializable()]
|
|
private class Criteria
|
|
{ /* no criteria - retrieve all resources */ }
|
|
|
|
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 = "getResources";
|
|
|
|
using (SafeDataReader dr =
|
|
new SafeDataReader(cm.ExecuteReader()))
|
|
{
|
|
IsReadOnly = false;
|
|
while (dr.Read())
|
|
{
|
|
ResourceInfo info = new ResourceInfo(dr);
|
|
this.Add(info);
|
|
}
|
|
IsReadOnly = true;
|
|
}
|
|
}
|
|
}
|
|
this.RaiseListChangedEvents = true;
|
|
}
|
|
|
|
#endregion
|
|
|
|
}
|
|
}
|