protected override void InsertAuditRecordToDatabase(EntityAuditRecord record)
        {
            // Bodge to prevent duplicate audit records being made.
            if (tempChanges.Contains(record.Entity))
            {
                tempChanges.Remove(record.Entity);
            }
            else
            {
                return;
            }

            AuditLog audit = new AuditLog()
            {
                ID = getNextIdentifier(typeof(AuditLog), this), EventDateUTC = DateTime.UtcNow
            };

            audit.EventDateUTC = DateTime.Now;

            switch (record.Action)
            {
            case AuditAction.Insert:
                audit.EventType = "INSERT";
                break;

            case AuditAction.Update:
                audit.EventType = "UPDATE";
                break;

            case AuditAction.Delete:
                audit.EventType = "DELETE";
                break;

            default:
                break;
            }

            audit.TableName = record.EntityTable;
            audit.RecordId  = record.EntityTableKey;

            foreach (ModifiedEntityProperty av in record.ModifiedProperties)
            {
                if (av.NewValue.StartsWith("System."))
                {
                    continue;
                }
                if (av.NewValue.StartsWith("ChampionshipSolutions.DM."))
                {
                    continue;
                }

                AuditLogDetails detail = new AuditLogDetails()
                {
                    ID = getNextIdentifier(typeof(AuditLogDetails), this)
                };

                detail.ColumnName    = av.MemberName;
                detail.OriginalValue = av.OldValue;
                detail.NewValue      = av.NewValue;

                audit.AddDetail(detail);
            }

            this.AuditLog.InsertOnSubmit(audit);
        }
 public void AddDetail(AuditLogDetails Detail)
 {
     //Detail.AuditLogRecord = this;
     //_Details.Add(Detail);
 }