/// <summary> /// The get all paged. /// </summary> /// <param name="searchPattern"> /// The name. /// </param> /// <param name="companyId"> /// The company Id. /// </param> /// <param name="pageIndex"> /// The page index. /// </param> /// <param name="pageSize"> /// The page size. /// </param> /// <param name="totalCount"> /// The total count. /// </param> /// <returns> /// The <see cref="IEnumerable{T}"/>. /// </returns> public IEnumerable <Category> GetAllByCompanyAndNamePaged(string searchPattern, int companyId, int pageIndex, int pageSize, out int totalCount) { var searchIds = new List <int>(); if (pageIndex <= default(int)) { pageIndex = 1; } var queryOver = new DefaultQueryOver <Category, int>().GetQueryOver(); if (companyId != 0) { queryOver = queryOver.Where(x => x.Company.Id == companyId); } if (!string.IsNullOrWhiteSpace(searchPattern)) { searchIds = this.fullTextModel.Search(searchPattern, typeof(Category), int.MaxValue).ToList(); queryOver = queryOver.AndRestrictionOn(x => x.Id).IsIn(searchIds); } QueryOver <Category, Category> rowCountQuery = queryOver.ToRowCountQuery(); totalCount = this.Repository.FindOne <int>(rowCountQuery).Value; QueryOver <Category> pagedQuery = queryOver.OrderBy(x => x.CategoryName).Asc; if (pageSize > 0) { pagedQuery = pagedQuery.Take(pageSize).Skip((pageIndex - 1) * pageSize); } return(searchIds.Any() ? this.Repository.FindAll(pagedQuery).ToList().OrderBy(x => searchIds.IndexOf(x.Id)) : this.Repository.FindAll(pagedQuery)); }
public List <LmsCompany> GetEnabledForSynchronization(string consumerKey = null) { LmsCompany lc = null; LmsCompanySetting lcs = null; OfficeHours oh = null; IList <LmsCourseMeeting> lcm = null; //IList<LmsUserMeetingRole> lumr = null; //IList<LmsUser> lu = null; //LmsUser u = null; var defaultQuery = new DefaultQueryOver <LmsCompany, int>() .GetQueryOver(() => lc) .Where(x => x.IsActive); if (!string.IsNullOrEmpty(consumerKey)) { defaultQuery = defaultQuery.Where(x => x.ConsumerKey == consumerKey); } defaultQuery = defaultQuery .JoinAlias(() => lc.Settings, () => lcs) .Where(() => lcs.Name == LmsLicenseSettingNames.UseSynchronizedUsers && lcs.Value == "True") .JoinAlias(() => lc.LmsCourseMeetings, () => lcm) .JoinAlias(() => lcm.First().OfficeHours, () => oh, JoinType.LeftOuterJoin) // .JoinAlias(() => lcm.First().MeetingRoles, () => lumr) // .Fetch(x => x.Settings).Eager .Fetch(x => x.LmsCourseMeetings).Eager .Fetch(x => x.LmsCourseMeetings.First().OfficeHours).Eager // .Fetch(x => x.LmsCourseMeetings.First().MeetingRoles).Eager .Fetch(x => x.AdminUser).Eager .TransformUsing(Transformers.DistinctRootEntity); return(this.Repository.FindAll(defaultQuery).ToList()); }
///// <summary> ///// Gets one by domain ///// </summary> ///// <param name="domain"> ///// The domain ///// </param> ///// <returns> ///// The canvas ac meeting ///// </returns> //public IFutureValue<LmsCompany> GetOneByDomain(string domain) //{ // var defaultQuery = new DefaultQueryOver<LmsCompany, int>().GetQueryOver() // .Where(x => x.LmsDomain == domain).Take(1); // return this.Repository.FindOne(defaultQuery); //} //public IFutureValue<LmsCompany> GetOneByAcDomain(string adobeConnectDomain) //{ // if (adobeConnectDomain.EndsWith("/")) // { // adobeConnectDomain = adobeConnectDomain.Remove(adobeConnectDomain.Length - 1); // } // var defaultQuery = new DefaultQueryOver<LmsCompany, int>().GetQueryOver() // .WhereRestrictionOn(x => x.AcServer).IsInsensitiveLike(adobeConnectDomain, MatchMode.Start) // .Take(1); // return this.Repository.FindOne(defaultQuery); //} //public IFutureValue<LmsCompany> GetOneByProviderAndConsumerKey(int lmsProviderId, string consumerKey) //{ // var defaultQuery = new DefaultQueryOver<LmsCompany, int>().GetQueryOver() // .Fetch(x => x.Settings).Eager // .Where(x => (x.ConsumerKey == consumerKey && x.LmsProviderId == lmsProviderId)); // return this.Repository.FindOne(defaultQuery); //} public IFutureValue <LmsCompany> GetOneByConsumerKey(string consumerKey, bool includeSettings = false) { var defaultQuery = new DefaultQueryOver <LmsCompany, int>().GetQueryOver(); if (includeSettings) { defaultQuery = defaultQuery.Fetch(x => x.Settings).Eager; } defaultQuery = defaultQuery.Where(x => (x.ConsumerKey == consumerKey)); return(this.Repository.FindOne(defaultQuery)); }