private void Evict(ORMGOUserGroup result, NHibernate.ISession session) { foreach (var entity in session.GetSessionImplementation().PersistenceContext.EntitiesByKey.Values.ToArray()) { var evictee = entity as ORMGOUserGroup; if (evictee != null && evictee.CompositeIdentity.Equals(result.CompositeIdentity)) { session.Evict(evictee); } } }
private void Evict(ORMGOLoginHistory result, NHibernate.ISession session) { foreach (var entity in session.GetSessionImplementation().PersistenceContext.EntitiesByKey.Values.ToArray()) { var evictee = entity as ORMGOLoginHistory; if (evictee != null && evictee.Id == result.Id) { session.Evict(evictee); } } }
private void Evict(ORMUserProfile result, NHibernate.ISession session) { foreach (var entity in session.GetSessionImplementation().PersistenceContext.EntitiesByKey.Values.ToArray()) { var evictee = entity as ORMUserProfile; if (evictee != null && evictee.Uri == result.Uri) { session.Evict(evictee); } } }
public static void ProcessAuditProperties(object entity, DateTime dtNow, IDictionary <int, string> auditedObjects, NHibernate.ISession nHibernateSession) { Type entityType = null; try { object unProxiedEntity = nHibernateSession.GetSessionImplementation().PersistenceContext.Unproxy(entity); entityType = unProxiedEntity.GetType(); } catch { //Es un proxy que no pudo ser inicializado... return; } if (auditedObjects == null) { auditedObjects = new Dictionary <int, string>(); } if (auditedObjects.ContainsKey(entity.GetHashCode())) { return; } Nullable <int> primaryKeyValue = (Nullable <int>)GetPrimaryKeyPropertyValue(entityType, entity); if (entityType.IsSubclassOf(typeof(BaseEntity))) { auditedObjects.Add(entity.GetHashCode(), entityType.Name); ISession session = SamsaraAppContext.Resolve <ISession>(); if ((entity as BaseEntity).Activated == null) { (entity as BaseEntity).Activated = true; } if ((entity as BaseEntity).Deleted == null) { (entity as BaseEntity).Deleted = false; } if (primaryKeyValue <= 0) { (entity as BaseEntity).CreatedBy = session.UserId; (entity as BaseEntity).CreatedOn = dtNow; } else { (entity as BaseEntity).UpdatedBy = session.UserId; (entity as BaseEntity).UpdatedOn = dtNow; } } foreach (PropertyInfo propertyInfo in entityType.GetProperties()) { object value = entityType.GetProperty(propertyInfo.Name).GetValue(entity, null); if (value != null && value.GetType().IsSubclassOf(typeof(BaseEntity))) { ProcessAuditProperties(value, dtNow, auditedObjects, nHibernateSession); } if (value != null && value.GetType().GetInterface(typeof(IEnumerable).FullName) != null) { foreach (object item in (value as IEnumerable)) { if (item != null && item.GetType().IsSubclassOf(typeof(BaseEntity))) { ProcessAuditProperties(item, dtNow, auditedObjects, nHibernateSession); } } } } }