56 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using System;
 | 
						|
using System.Collections.Generic;
 | 
						|
using System.Text;
 | 
						|
using System.Data.SqlClient;
 | 
						|
using Csla;
 | 
						|
 | 
						|
namespace Templates
 | 
						|
{
 | 
						|
  [Serializable()]
 | 
						|
  class NameValueList : NameValueListBase<int, string>
 | 
						|
  {
 | 
						|
    #region Factory Methods
 | 
						|
 | 
						|
    private static NameValueList _list;
 | 
						|
 | 
						|
    public static NameValueList GetNameValueList()
 | 
						|
    {
 | 
						|
      if (_list == null)
 | 
						|
        _list = DataPortal.Fetch<NameValueList>(
 | 
						|
          new Criteria(typeof(NameValueList)));
 | 
						|
      return _list;
 | 
						|
    }
 | 
						|
 | 
						|
    public static void InvalidateCache()
 | 
						|
    {
 | 
						|
      _list = null;
 | 
						|
    }
 | 
						|
 | 
						|
    private NameValueList()
 | 
						|
    { /* require use of factory methods */ }
 | 
						|
 | 
						|
    #endregion
 | 
						|
 | 
						|
    #region Data Access
 | 
						|
 | 
						|
    protected override void DataPortal_Fetch(object criteria)
 | 
						|
    {
 | 
						|
      RaiseListChangedEvents = false;
 | 
						|
      IsReadOnly = false;
 | 
						|
      // TODO: load values
 | 
						|
      using (SqlDataReader dr = null)
 | 
						|
      {
 | 
						|
        while (dr.Read())
 | 
						|
        {
 | 
						|
          Add(new NameValueListBase<int, string>.
 | 
						|
            NameValuePair(dr.GetInt32(0), dr.GetString(1)));
 | 
						|
        }
 | 
						|
      }
 | 
						|
      IsReadOnly = true;
 | 
						|
      RaiseListChangedEvents = true;
 | 
						|
    }
 | 
						|
 | 
						|
    #endregion
 | 
						|
  }
 | 
						|
}
 |