Пример #1
0
        /// <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));
        }
Пример #2
0
        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());
        }
Пример #3
0
        ///// <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));
        }