69 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using System;
 | 
						|
using System.Collections.Generic;
 | 
						|
using System.Text;
 | 
						|
using System.Data.SqlClient;
 | 
						|
using Csla;
 | 
						|
 | 
						|
namespace Templates
 | 
						|
{
 | 
						|
  [Serializable()]
 | 
						|
  class EditableChildList : 
 | 
						|
    BusinessListBase<EditableChildList, EditableChild>
 | 
						|
  {
 | 
						|
    #region Factory Methods
 | 
						|
 | 
						|
    internal static EditableChildList NewEditableChildList()
 | 
						|
    {
 | 
						|
      return new EditableChildList();
 | 
						|
    }
 | 
						|
 | 
						|
    internal static EditableChildList GetEditableChildList(
 | 
						|
      SqlDataReader dr)
 | 
						|
    {
 | 
						|
      return new EditableChildList(dr);
 | 
						|
    }
 | 
						|
 | 
						|
    private EditableChildList()
 | 
						|
    {
 | 
						|
      MarkAsChild();
 | 
						|
    }
 | 
						|
 | 
						|
    private EditableChildList(SqlDataReader dr)
 | 
						|
    {
 | 
						|
      MarkAsChild();
 | 
						|
      Fetch(dr);
 | 
						|
    }
 | 
						|
 | 
						|
    #endregion
 | 
						|
 | 
						|
    #region Data Access
 | 
						|
 | 
						|
    private void Fetch(SqlDataReader dr)
 | 
						|
    {
 | 
						|
      RaiseListChangedEvents = false;
 | 
						|
      while (dr.Read())
 | 
						|
      {
 | 
						|
        this.Add(EditableChild.GetEditableChild(dr));
 | 
						|
      }
 | 
						|
      RaiseListChangedEvents = true;
 | 
						|
    }
 | 
						|
 | 
						|
    internal void Update(object parent)
 | 
						|
    {
 | 
						|
      RaiseListChangedEvents = false;
 | 
						|
      foreach (EditableChild item in DeletedList)
 | 
						|
        item.DeleteSelf();
 | 
						|
      DeletedList.Clear();
 | 
						|
 | 
						|
      foreach (EditableChild item in this)
 | 
						|
        if (item.IsNew)
 | 
						|
          item.Insert(parent);
 | 
						|
        else
 | 
						|
          item.Update(parent);
 | 
						|
      RaiseListChangedEvents = true;
 | 
						|
    }
 | 
						|
 | 
						|
    #endregion
 | 
						|
  }
 | 
						|
}
 |