private InitiatorCriteria CreateCriteria() { List <DocumentInitiatorLang> documentInitiatorList = new List <DocumentInitiatorLang>(); InitiatorCriteria FilterCriteria = new InitiatorCriteria(); FilterCriteria.UserIDFilter = documentInitiatorList; return(FilterCriteria); }
public IList <UserFavoriteInitiator> FindUserFavoriteInitiatorByUserID(InitiatorCriteria criteria, long UserID) { //ActoType = 2 : Initialtor QueryParameterBuilder parameterBuilder = new QueryParameterBuilder(); StringBuilder sqlBuilder = new StringBuilder(); sqlBuilder.Append("SELECT Row_Number() OVER(ORDER BY SuUserFavoriteActor.UserID DESC) as InitiatorSeq, SuUserFavoriteActor.UserFavoriteActorID"); sqlBuilder.Append(", SuUserFavoriteActor.UserID"); sqlBuilder.Append(", SuUserFavoriteActor.ActorType"); sqlBuilder.Append(", SuUserFavoriteActor.ActorUserID"); sqlBuilder.Append(", SuUser.Email"); sqlBuilder.Append(", SuUser.EmployeeName"); sqlBuilder.Append(", SuUser.SMS"); sqlBuilder.Append(" FROM SuUserFavoriteActor LEFT OUTER JOIN"); sqlBuilder.Append(" SuUser ON SuUserFavoriteActor.ActorUserID = SuUser.UserID "); sqlBuilder.Append(" WHERE SuUserFavoriteActor.UserID = :UserID"); sqlBuilder.AppendFormat(" AND SuUserFavoriteActor.ActorType = {0}", "2"); if (criteria.UserIDFilter != null && criteria.UserIDFilter.Count > 0) { string filter = ""; foreach (DocumentInitiatorLang item in criteria.UserIDFilter) { filter += "'" + item.UserID.ToString() + "',"; } sqlBuilder.AppendFormat(" AND SuUserFavoriteActor.ActorUserID NOT IN ({0})", filter.TrimEnd(',')); } sqlBuilder.Append(" ORDER BY SuUserFavoriteActor.ActorUserID ASC"); parameterBuilder.AddParameterData("UserID", typeof(long), UserID); ISQLQuery query = GetCurrentSession().CreateSQLQuery(sqlBuilder.ToString()); parameterBuilder.FillParameters(query); query.AddScalar("UserFavoriteActorID", NHibernateUtil.Int64) .AddScalar("UserID", NHibernateUtil.Int64) .AddScalar("ActorUserID", NHibernateUtil.Int64) .AddScalar("ActorType", NHibernateUtil.String) .AddScalar("EmployeeName", NHibernateUtil.String) .AddScalar("Email", NHibernateUtil.String) .AddScalar("SMS", NHibernateUtil.Boolean) .AddScalar("InitiatorSeq", NHibernateUtil.Int16); return(query.SetResultTransformer(Transformers.AliasToBean(typeof(UserFavoriteInitiator))).List <UserFavoriteInitiator>()); }