// ========================================================================
// Copyright 2006 - Volian Enterprises, Inc. All rights reserved.
// Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
// ------------------------------------------------------------------------
// $Workfile: $ $Revision: $
// $Author: $ $Date: $
//
// $History: $
// ========================================================================
using System;
using System.Data;
using System.Data.SqlClient;
using Csla;
using Csla.Data;
namespace Volian.Object.Library
{
///
/// RoleAssignments Generated by MyGeneration using the CSLA Object Mapping template
///
[Serializable()]
public partial class RoleAssignments : BusinessListBase
{
#region Business Methods
public RoleAssignment this[int folderid, int gid]
{
get
{
foreach (RoleAssignment assignment in this)
if (assignment.Folderid == folderid && assignment.Gid == gid)
return assignment;
return null;
}
}
public RoleAssignment GetItem(int folderid, int gid)
{
foreach (RoleAssignment assignment in this)
if (assignment.Folderid == folderid && assignment.Gid == gid)
return assignment;
return null;
}
public void Add(int gid, int folderid)
{
if (!Contains(folderid, gid))
{
RoleAssignment assignment =
RoleAssignment.New(gid, folderid);
this.Add(assignment);
}
else
throw new InvalidOperationException("assignment already exists");
}
public void Remove(int folderid, int gid)
{
foreach (RoleAssignment assignment in this)
{
if (assignment.Folderid == folderid && assignment.Gid == gid)
{
Remove(assignment);
break;
}
}
}
public bool Contains(int folderid, int gid)
{
foreach (RoleAssignment assignment in this)
if (assignment.Folderid == folderid && assignment.Gid == gid)
return true;
return false;
}
public bool ContainsDeleted(int folderid, int gid)
{
foreach (RoleAssignment assignment in DeletedList)
if (assignment.Folderid == folderid && assignment.Gid == gid)
return true;
return false;
}
#endregion
#region Factory Methods
internal static RoleAssignments New()
{
return new RoleAssignments();
}
internal static RoleAssignments Get(SafeDataReader dr)
{
return new RoleAssignments(dr);
}
private RoleAssignments()
{
MarkAsChild();
}
private RoleAssignments(SafeDataReader dr)
{
MarkAsChild();
Fetch(dr);
}
#endregion
#region Data Access Portal
// called to load data from the database
private void Fetch(SafeDataReader dr)
{
this.RaiseListChangedEvents = false;
while (dr.Read())
this.Add(RoleAssignment.Get(dr));
this.RaiseListChangedEvents = true;
}
internal void Update(Role role,SqlConnection cn)
{
this.RaiseListChangedEvents = false;
// update (thus deleting) any deleted child objects
foreach (RoleAssignment obj in DeletedList)
obj.DeleteSelf(role,cn);
// now that they are deleted, remove them from memory too
DeletedList.Clear();
// add/update any current child objects
foreach (RoleAssignment obj in this)
{
if (obj.IsNew)
obj.Insert(role,cn);
else
obj.Update(role,cn);
}
this.RaiseListChangedEvents = true;
}
#endregion
} // Class
} // Namespace