I have read several posts as well as the documentation and cannot see what I am doing wrong:
1. I am using adapter. V2.6 latest build. (SD.LLBLGen.Pro.ORMSupportClasses.NET20, Version=2.6.0.0) VS 2010. .Net Framework 4.0. SQL Server DB.
2. I have a web application which references my 2 llblgen code generated dlls.
3. I have a 4th dll for auditing.
4. This auditing dll is referenced by the web applicaiton, so the dll is in the bin folder of the web application.
5. The auditing dll references the Database Generic llblgen'd dll.
6. My web.config has the following: (NOTE: I have tried with and without the app setting: <add key="autoDependencyInjectionDiscovery" value="true"/>)
<configSections>
<section name="dependencyInjectionInformation" type="SD.LLBLGen.Pro.ORMSupportClasses.DependencyInjectionSectionHandler, SD.LLBLGen.Pro.ORMSupportClasses.NET20, Version=2.6.0.0, Culture=neutral, PublicKeyToken=ca73b74ba4e3ff27"/>
</configSections>
<appSettings />
<dependencyInjectionInformation>
<additionalAssemblies>
<assembly fullName="SmartEducationAuditors, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>
</additionalAssemblies>
</dependencyInjectionInformation>
Everything runs with no errors but my auditing code does not fire.
The following is my auditing code:
namespace SmartEducationAuditors
{
[DependencyInjectionInfo(typeof(StudentAttendanceEntity), "AuditorToUse")]
[Serializable]
class StudentAttendanceAuditor : AuditorBase
{
List<AuditAttendanceEntity> _auditAtendanceEntities;
private enum AuditType
{
DeleteOfEntry = 1,
InsertOfNewEntity = 2,
UpdateOfExistingEntity = 3
}
public StudentAttendanceAuditor()
{
_auditAtendanceEntities = new List<AuditAttendanceEntity>();
}
public override bool RequiresTransactionForAuditEntities(SingleStatementQueryAction actionToStart)
{
return true;
}
public override void AuditUpdateOfExistingEntity(IEntityCore entity)
{
AuditEntity(entity, AuditType.UpdateOfExistingEntity);
}
public override void AuditInsertOfNewEntity(IEntityCore entity)
{
AuditEntity(entity, AuditType.InsertOfNewEntity);
}
public override void AuditDeleteOfEntity(IEntityCore entity)
{
AuditEntity(entity, AuditType.DeleteOfEntry);
}
private void AuditEntity(IEntityCore entity, AuditType auditType)
{
StudentAttendanceEntity attendanceEntity = entity as StudentAttendanceEntity;
if (attendanceEntity != null)
{
AuditAttendanceEntity auditEntity = new AuditAttendanceEntity { Id = Guid.NewGuid() };
auditEntity.UpdateTime = DateTime.Now;
auditEntity.UpdateUser= Utility.GetCurrentUserName();
auditEntity.StudentAttendance_ = attendanceEntity;
_auditAtendanceEntities.Add(auditEntity);
}
}
public override void AuditEntityFieldSet(IEntityCore entity, int fieldIndex, object originalValue)
{
if (entity is AuditAttendanceEntity)
return;
}
public override System.Collections.IList GetAuditEntitiesToSave()
{
return _auditAtendanceEntities;
}
public override void TransactionCommitted()
{
_auditAtendanceEntities.Clear();
}
}
}
Thanks in advance,
Billy Jacobs