Files
BeWoPlaner/Data/Access/AbstractBaseDAO.cs
Lyndon Jetten c6282ec1a9 BeWoWebApi:
BeWoWebApi für den neuen Mobilklient

BeWoPlanerMobil:
.NET Version auf 4.7.2 gesetzt.
GetState im Mobilklienten
Abwesenheiten im Mobilklienten auskommentiert
2020-01-15 16:14:39 +01:00

58 lines
1.9 KiB
C#

using System.Web;
using BeWo.Data.Entities;
using BS.Shared;
using NHibernate;
using NHibernate.Criterion;
namespace BeWo.Data.Access
{
public abstract class AbstractBaseDAO
{
protected ISession Session
{
get
{
if (HttpContext.Current == null)
{
// WCF Request
// DefaultHibernateSessionManager, wenn der SessionOperationContext null ist
return WCFHibernateSessionManager.CurrentSession ?? DefaultHibernateSessionManager.CurrentSession;
}
else
{
// ASP Request
return HttpContext.Current.Items["hibernateSession"] as ISession;
}
}
}
protected ICriteria CreateCriteria<T>() where T : BeWoEntityBase
{
return this.Session.CreateCriteria(typeof(T));
}
protected ICriteria CreateCriteria<T>(string alias) where T : BeWoEntityBase
{
return this.Session.CreateCriteria(typeof(T), alias);
}
protected ICriteria CreateCriteriaIsActive<T>() where T : BeWoEntityBase
{
return this.Session.CreateCriteria(typeof(T)).Add(Restrictions.Eq(BeWoEntityBase.PropertyName_IsActive, ActivationTypeId.Active));
}
protected ICriteria CreateCriteriaIsActiveOrArchived<T>() where T : BeWoEntityBase
{
return this.Session.CreateCriteria(typeof(T)).Add(Restrictions.Or(Restrictions.Eq(BeWoEntityBase.PropertyName_IsActive, ActivationTypeId.Active), Restrictions.Eq(BeWoEntityBase.PropertyName_IsActive, ActivationTypeId.Archived)));
}
private void CheckSession()
{
//WORKAROUND: Bei geleichzeitigen Asynchronen Calls kann e
}
}
}