/// <summary> /// 그룹 정보 조회를 위한 <see cref="QueryOver"/>를 빌드합니다. /// </summary> /// <param name="company"></param> /// <param name="code"></param> /// <param name="kind"></param> /// <param name="name"></param> /// <param name="isActive"></param> /// <returns></returns> public static QueryOver<Group, Group> BuildQueryOverOfGroup(Company company, string code = null, GroupKinds? kind = null, string name = null, bool? isActive = null) { if(IsDebugEnabled) log.Debug(@"그룹 정보 조회를 위한 QueryOver 를 빌드합니다... company={0}, code={1} kind={2}, name={3}, isActive={4}", company, code, kind, name, isActive); var query = QueryOver.Of<Group>(); if(company != null) query.AddWhere(g => g.Company == company); if(code.IsNotWhiteSpace()) query.AddWhere(g => g.Code == code); if(kind.HasValue) query.AddWhere(g => g.Kind == kind.Value); if(name.IsNotWhiteSpace()) query.AddWhere(g => g.Name == name); if(isActive.HasValue) query.AddNullAsTrue(g => g.IsActive, isActive); return query; }
/// <summary> /// 그룹 정보 조회를 위한 <see cref="DetachedCriteria"/>를 빌드합니다. /// </summary> public static DetachedCriteria BuildCriteriaOfGroup(Company company, string code = null, GroupKinds? kind = null, string name = null, bool? isActive = null) { return BuildQueryOverOfGroup(company, code, kind, name, isActive).DetachedCriteria; }