using System;
using System.Collections.Generic;
using Kreta.Framework.Collections;
using Kreta.Framework.Collections.Generic;
namespace Kreta.Framework.Entities.Generic
{
///
/// Entitások adatbázisműveleteit végző objektumának őse
///
public abstract class EntityDataAccessor : IEntityDataAccessor, IEntityDataAccessor
where EntityType : Kreta.Framework.Entities.Entity
{
protected abstract IEntityDBHelper dbhelper
{
get;
}
///
/// Beállítja a létrehozóját egy entitásnak
///
/// A beállítandó entitás
protected void SetEntityCreator(EntityType entity, DateTime timestamp, int uniqueidentifier)
{
entity.EntityCreated = timestamp;
entity.EntityCreator = uniqueidentifier;
//entity.EntitySubsCreator = UserContext.Instance.SubstituteEmployeePrintName;
}
///
/// Beállítja a módosítóját egy entitásnak
///
/// A beállítandó entitás
protected void SetEntityModifier(EntityType entity, DateTime timestamp, int uniqueidentifier)
{
entity.EntityLastChanged = timestamp;
entity.EntityModifier = uniqueidentifier;
//entity.EntitySubsLastModifier = UserContext.Instance.SubstituteEmployeePrintName;
}
#region ISDAEntityDataAccessor Members
public abstract bool LoadEntity(EntityType entity, int entityId);
public virtual bool FilteredLoadEntity(EntityType entity, int entityId, ColumnFilterMode columnFilterMode, IEnumerable columns)
{
return LoadEntity(entity, entityId);
}
public abstract void LoadWithFilter(IEntityCollection collection, string filter, Dictionary commandParameters);
public virtual void LoadWithFilter(IEntityCollection collection, string filter, ColumnFilterMode columnFilterMode, IEnumerable columns, Dictionary commandParameters)
{
LoadWithFilter(collection, filter, commandParameters);
}
public abstract void InsertEntity(EntityType entity);
public abstract bool UpdateEntity(EntityType entity);
public abstract bool UpdateAssociations(EntityType entity);
public abstract void DeleteEntity(EntityType entity, bool logikai = true);
#endregion
#region IEntityDataAccessor Members
bool IEntityDataAccessor.LoadEntity(Entity entity, int entityId)
{
return LoadEntity((EntityType)entity, entityId);
}
bool IEntityDataAccessor.FilteredLoadEntity(Entity entity, int entityId, ColumnFilterMode columnFilterMode, IEnumerable columns)
{
return FilteredLoadEntity((EntityType)entity, entityId, columnFilterMode, columns);
}
void IEntityDataAccessor.LoadWithFilter(IEntityCollection collection, string filter, Dictionary commandParameters)
{
LoadWithFilter((IEntityCollection)collection, filter, commandParameters);
}
void IEntityDataAccessor.InsertEntity(Entity entity)
{
InsertEntity((EntityType)entity);
}
bool IEntityDataAccessor.UpdateEntity(Entity entity)
{
return UpdateEntity((EntityType)entity);
}
bool IEntityDataAccessor.UpdateAssociations(Entity entity)
{
return UpdateAssociations((EntityType)entity);
}
void IEntityDataAccessor.DeleteEntity(Entity entity, bool logikai)
{
DeleteEntity((EntityType)entity, logikai);
}
#endregion
}
}