108 lines
2.2 KiB
C#
108 lines
2.2 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using System.Data.SqlClient;
|
|
using Csla;
|
|
|
|
namespace Templates
|
|
{
|
|
[Serializable()]
|
|
class EditableRootList :
|
|
BusinessListBase<EditableRootList, EditableChild>
|
|
{
|
|
#region Authorization Rules
|
|
|
|
public static bool CanAddObject()
|
|
{
|
|
// TODO: customize to check user role
|
|
//return ApplicationContext.User.IsInRole("");
|
|
return true;
|
|
}
|
|
|
|
public static bool CanGetObject()
|
|
{
|
|
// TODO: customize to check user role
|
|
//return ApplicationContext.User.IsInRole("");
|
|
return true;
|
|
}
|
|
|
|
public static bool CanEditObject()
|
|
{
|
|
// TODO: customize to check user role
|
|
//return ApplicationContext.User.IsInRole("");
|
|
return true;
|
|
}
|
|
|
|
public static bool CanDeleteObject()
|
|
{
|
|
// TODO: customize to check user role
|
|
//return ApplicationContext.User.IsInRole("");
|
|
return true;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Factory Methods
|
|
|
|
public static EditableRootList NewEditableRootList()
|
|
{
|
|
return new EditableRootList();
|
|
}
|
|
|
|
public static EditableRootList GetEditableRootList(int id)
|
|
{
|
|
return DataPortal.Fetch<EditableRootList>(new Criteria(id));
|
|
}
|
|
|
|
private EditableRootList()
|
|
{ /* Require use of factory methods */ }
|
|
|
|
#endregion
|
|
|
|
#region Data Access
|
|
|
|
[Serializable()]
|
|
private class Criteria
|
|
{
|
|
private int _id;
|
|
public int Id
|
|
{
|
|
get { return _id; }
|
|
}
|
|
public Criteria(int id)
|
|
{ _id = id; }
|
|
}
|
|
|
|
private void DataPortal_Fetch(Criteria criteria)
|
|
{
|
|
RaiseListChangedEvents = false;
|
|
// TODO: load values
|
|
using (SqlDataReader dr = null)
|
|
{
|
|
while (dr.Read())
|
|
{
|
|
this.Add(EditableChild.GetEditableChild(dr));
|
|
}
|
|
}
|
|
RaiseListChangedEvents = true;
|
|
}
|
|
|
|
protected override void DataPortal_Update()
|
|
{
|
|
RaiseListChangedEvents = false;
|
|
foreach (EditableChild item in DeletedList)
|
|
item.DeleteSelf();
|
|
DeletedList.Clear();
|
|
|
|
foreach (EditableChild item in this)
|
|
if (item.IsNew)
|
|
item.Insert(this);
|
|
else
|
|
item.Update(this);
|
|
RaiseListChangedEvents = true;
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
}
|