public void MultipleSelectManyProjectionWorks()
        {
            Reset();

            var dataQuery = TestableThing.MakeQuery(5);

            IQueryable <Tuple <string, string, string> > SelectMany(IQueryable <TestableThing> query) =>
            query.SelectMany(t => t.ChildThings, (t, c) => new
            {
                parentId = t.Id,
                childId  = c.Id,
                children = c.ChildThings
            }).SelectMany(tc => tc.children, (tc, tcc) => new
            {
                tc.parentId,
                tc.childId,
                grandChildId = tcc.Id
            }).Select(t => Tuple.Create(t.parentId, t.childId, t.grandChildId));

            var query = SelectMany(IQueryableExtensions.CreateQueryTemplate <TestableThing>());

            var json = Serializer.Serialize(query);

            // make sure we're not just pulling from the cache
            Reset();

            var newQuery = Serializer.DeserializeQuery <Tuple <string, string, string> >(json, dataQuery);

            var expected = SelectMany(dataQuery).ToList();
            var actual   = newQuery.ToList();

            Assert.NotNull(actual);
            Assert.Equal(expected, actual);
        }
Пример #2
0
 private IQueryable <QueryHelper> TestQuery() =>
 IQueryableExtensions.CreateQueryTemplate <QueryHelper>()
 .Where(q => q.Id == nameof(QueryHelper) &&
        q.Created > DateTime.Now.AddDays(-1))
 .Skip(2)
 .Take(3)
 .OrderBy(q => q.Created);
Пример #3
0
        private void PopulateDropDowns(RaceViewModel model)
        {
            var selectListItem = IQueryableExtensions.Default_SelectListItem();

            model.FinYears = _finYearBL.GetSelectListItem(true, true);


            model.OrganisationTypes = _context.OrganisationType
                                      .Include(a => a.Organisations)
                                      .Where(a => a.Organisations.Any())
                                      .ToSelectListItem(a => a.Name, x => x.Id.ToString());

            model.Countries = _context.Country
                              .Include(a => a.Provinces)
                              .Where(a => a.Provinces.Any())
                              .ToSelectListItem(a => a.Name, x => x.Id.ToString());

            model.Distances = _context.Distance
                              .ToSelectListItem(a => a.Name, x => x.Id.ToString(), true);
            model.Organisations           = selectListItem;
            model.RaceDefinitions         = selectListItem;
            model.Provinces               = selectListItem;
            model.RaceDistances           = new List <RaceDistanceViewModel>();
            model.RaceDistancesSelectList = selectListItem;
            model.Genders = selectListItem;
        }
        public void GivenNonRemoteQueryWhenExecuteRemoteAsyncThenShouldThrowNullReference()
        {
            var query = IQueryableExtensions.CreateQueryTemplate <TestThing>();

            Assert.Throws <NullReferenceException>(
                () => query.ExecuteRemote());
        }
Пример #5
0
        public void GivenTargetNullWhenIsPartOfCalledThenShouldReturnFalse()
        {
            var source = IQueryableExtensions.CreateQueryTemplate <IdType>()
                         .Take(5);

            Assert.False(eq.IsPartOf(source.Expression, null));
        }
Пример #6
0
        public virtual async Task <ActionResult <IEnumerable <dynamic> > > GetAllAsync([FromQuery] string fields, [FromQuery] string asc, [FromQuery] string desc, [FromQuery] string type, [FromQuery] string rating, [FromQuery] string date, [FromQuery] string range)
        {
            var query = _context.Set <TModel>().AsQueryable();

            if (!string.IsNullOrWhiteSpace(asc) || !string.IsNullOrWhiteSpace(desc))
            {
                query = query.OrderByAscOrDesc(asc, desc);
            }
            if (!string.IsNullOrWhiteSpace(type) || !string.IsNullOrWhiteSpace(rating) || !string.IsNullOrWhiteSpace(date))
            {
                string[] fieldNames = { "Type", "Rating", "Date" };
                query = query.FilterCustomized(fieldNames, type, rating, date);
            }
            if (!string.IsNullOrWhiteSpace(range))
            {
                var tab   = range.Split('-');
                var start = int.Parse(tab[0]);
                var end   = int.Parse(tab[1]);
                //query = query.RangePagination(tab[0], tab[1]);
                query = query.Where(x => x.ID >= start && x.ID <= end);
            }
            if (!string.IsNullOrWhiteSpace(fields))
            {
                var tab = fields.Split(',');
                // var results = await IQueryableExtensions.SelectDynamic<TModel>(query, tab).ToListAsync();
                var results = await query.SelectDynamic(tab).ToListAsync();

                return(results.Select((x) => IQueryableExtensions.SelectObject(x, tab)).ToList());
            }
            else
            {
                return(Ok(ToJsonList(await query.ToListAsync())));
            }
        }
        /// <summary>
        /// 获取活动评论
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public async Task <IActionResult> GetComments(Guid id, string listPageParaJson)
        {
            var listPagePara = new ListPageParameter();

            if (listPageParaJson != null)
            {
                listPagePara = Newtonsoft.Json.JsonConvert.DeserializeObject <ListPageParameter>(listPageParaJson);
            }

            ViewBag.activityId = id;
            //获取一级评论
            var commentList = await _commonExtension.GetAll().OrderByDescending(x => x.CommentDataTime).Include(x => x.Activity).Include(x => x.User).Include(x => x.User.Avatar).Where(x => x.Activity.ID == id && x.ParentGrade == null).ToListAsync();

            var comments = new List <CommentVM>();

            foreach (var item in commentList)
            {
                var commentVM = new CommentVM(item);
                commentVM.CommentChildrens = await _commonExtension.GetAll().OrderBy(x => x.CommentDataTime).Include(x => x.Activity).Include(x => x.AcceptUser).Include(x => x.User).Include(x => x.User.Avatar).Where(x => x.ParentGrade == item.ID).ToListAsync();

                comments.Add(commentVM);
            }
            var commentPageList    = IQueryableExtensions.ToPaginatedList(comments.AsQueryable(), listPagePara.PageIndex, listPagePara.PageSize);
            var commentCollections = new List <CommentVM>();

            foreach (var commentTermPage in commentPageList)
            {
                commentCollections.Add(commentTermPage);
            }
            var pageGroup = PagenateGroupRepository.GetItem(commentPageList, 5, listPagePara.PageIndex);

            ViewBag.PageGroup     = pageGroup;
            ViewBag.PageParameter = listPagePara;
            return(View("~/Views/BusinessView/ActivityTermView/_GetComments.cshtml", commentCollections));
        }
        public TrainingRequestService(DBContext context, IUnitOfWork unitOfWork, IQueryableExtensions <TrainingRequest> query) : base(context, unitOfWork)
        {
            _dbContext  = context;
            _unitOfWork = unitOfWork;

            _queryableExtensions = query;
        }
Пример #9
0
        public void ExecutesAll()
        {
            var queryable = GetIQueryable();
            var particles = new List <Mock <IFilterParticle <IQueryableApplyTests> > >()
            {
                GetParticle(),
                GetParticle(),
                GetParticle(),
                GetParticle(),
            };

            // Create the MockSequence to validate the call order
            var sequence = new MockSequence();

            foreach (var p in particles)
            {
                p.InSequence(sequence)
                .Setup(x => x.GetExpression(It.IsAny <ParameterExpression>()))
                .Returns <Expression>(x =>
                {
                    return(Expression.Constant(true));
                });
            }

            var result = IQueryableExtensions.Apply(
                source: GetIQueryable(),
                particles: particles.Select(x => x.Object).AsEnumerable()
                );

            foreach (var p in particles)
            {
                p.Verify(x => x.GetExpression(It.IsAny <ParameterExpression>()));
            }
        }
Пример #10
0
        private void PopulateDropDowns(MemberViewModel model)
        {
            var selectListItem = IQueryableExtensions.Default_SelectListItem();
            var countries      = _context.Country.Include(a => a.Provinces).ThenInclude(a => a.Cities);

            model.Genders       = _context.Gender.ToSelectListItem(a => a.Name, x => x.Id.ToString());
            model.Titles        = _context.Title.ToSelectListItem(a => a.Name, x => x.Id.ToString());
            model.Nationalities = _context.Country.ToSelectListItem(a => a.Name, x => x.Id.ToString());
            model.IDTypes       = _context.IDType.ToSelectListItem(a => a.Name, x => x.Id.ToString());;
            model.Address       = new AddressViewModel
            {
                Countries = countries.Where(a => a.Provinces.Any()).ToSelectListItem(a => a.Name, x => x.Id.ToString()),
                Provinces = selectListItem,
                Cities    = selectListItem,
                Towns     = selectListItem,
                Suburbs   = selectListItem
            };

            if (model.Id != 0)
            {
                model.Members = _context.Member.Where(a => a.Id != model.Id)
                                .Include(a => a.Person.Gender)
                                .ToSelectListItem(a => a.Person.FullName, x => x.Id.ToString(), true);
            }
        }
Пример #11
0
        public async Task <IEnumerable <Vehicle> > GetVehicles(VehicleQuery queryObject)
        {
            var query = context.Vehicles
                        .Include(v => v.Model)
                        .ThenInclude(m => m.Make)
                        .Include(v => v.Features)
                        .ThenInclude(vf => vf.Feature)
                        .AsQueryable();

            if (queryObject.MakeId.HasValue)
            {
                query = query.Where(v => v.Model.MakeId == queryObject.MakeId);
            }

            var columnsMap = new Dictionary <string, Expression <Func <Vehicle, object> > >
            {
                ["make"]        = v => v.Model.Make.Name,
                ["model"]       = v => v.Model.Name,
                ["contactName"] = v => v.ContactName,
                ["id"]          = v => v.Id
            };

            query = IQueryableExtensions <Vehicle> .ApplyOrdering(query, queryObject, columnsMap);

            query = IQueryableExtensions <Vehicle> .ApplyPaging(query, queryObject);

            return(await query.ToListAsync());
        }
        public async Task <IActionResult> List(string keywork, string probably, string listPageParaJson)
        {
            var listPagePara = new ListPageParameter();

            if (listPageParaJson != null)
            {
                listPagePara = Newtonsoft.Json.JsonConvert.DeserializeObject <ListPageParameter>(listPageParaJson);
            }
            var atCollection = new List <ActivityTerm>();

            if (!String.IsNullOrEmpty(keywork))
            {
                Expression <Func <ActivityTerm, bool> > condtion = x =>
                                                                   x.Name.Contains(keywork) ||
                                                                   x.User.Name.Contains(keywork) ||
                                                                   x.AnAssociation.Name.Contains(keywork) ||
                                                                   x.Address.Contains(keywork);
                atCollection = await _activityTermExtension.GetAll().Include(x => x.User).Include(x => x.AnAssociation).Include(x => x.Avatar).Where(condtion).Where(x => x.Status == ActivityStatus.未开始 && x.IsDisable).ToListAsync();

                if (probably == "1")
                {
                    atCollection = atCollection.Where(x => x.AnAssociation != null).ToList();
                }
                else if (probably == "2")
                {
                    atCollection = atCollection.Where(x => x.User != null && x.AnAssociation == null).ToList();
                }
            }
            else
            {
                atCollection = await _activityTermExtension.GetAll().Include(x => x.User).Include(x => x.AnAssociation).Include(x => x.Avatar).Where(x => x.Status == ActivityStatus.未开始 && x.IsDisable).ToListAsync();

                if (probably == "1")
                {
                    atCollection = atCollection.Where(x => x.AnAssociation != null).ToList();
                }
                else if (probably == "2")
                {
                    atCollection = atCollection.Where(x => x.User != null && x.AnAssociation == null).ToList();
                }
            }
            var activityTermPageList = IQueryableExtensions.ToPaginatedList(atCollection.AsQueryable(), listPagePara.PageIndex, 12);

            var activityCollections = new List <ActivityTermVM>();

            foreach (var activityTermPage in activityTermPageList)
            {
                activityCollections.Add(new ActivityTermVM(activityTermPage)
                {
                    EnteredNumber = (await _activityUserExtension.GetAll().Where(x => x.ActivityTermId == activityTermPage.ID).ToListAsync()).Count
                });
            }

            var pageGroup = PagenateGroupRepository.GetItem(activityTermPageList, 5, listPagePara.PageIndex);

            ViewBag.PageGroup     = pageGroup;
            ViewBag.PageParameter = listPagePara;
            return(View("~/Views/BusinessView/ActivityTermView/_List.cshtml", activityCollections));
        }
Пример #13
0
        private void PopulateDropDowns(RaceResultImportViewModel model)
        {
            var selectListItem = IQueryableExtensions.Default_SelectListItem();

            model.People = _context.Person
                           .Where(a => a.Members.Any())
                           .ToSelectListItem(a => a.FullName, x => x.Id.ToString());
        }
Пример #14
0
 /// <summary>
 /// Deserializes a query from the raw json.
 /// </summary>
 /// <typeparam name="T">The type of the query.</typeparam>
 /// <param name="json">The json text.</param>
 /// <param name="host">The <see cref="IQueryable{T}"/> host to create the query.</param>
 /// <param name="config">The optional configuration.</param>
 /// <returns>The deserialized <see cref="IQueryable{T}"/>.</returns>
 public static IQueryable <T> DeserializeQuery <T>(
     string json,
     IQueryable <T> host = null,
     Action <IConfigurationBuilder> config = null)
 {
     host = host ?? IQueryableExtensions.CreateQueryTemplate <T>();
     return(DeserializeQuery(host, json, config) as IQueryable <T>);
 }
Пример #15
0
 public EmployeeService(DBContext context, IUnitOfWork unitOfWork, IQueryableExtensions <Employee> query,
                        IPasswordResetService PS, IUploadernDownloader UnDService) : base(context, unitOfWork)
 {
     _dbContext              = context;
     _unitOfWork             = unitOfWork;
     _passwordResetService   = PS;
     _uploadndownloadService = UnDService;
     _queryableExtensions    = query;
 }
Пример #16
0
 private void PopulateDropDowns(OrganisationViewModel model)
 {
     model.Provinces = IQueryableExtensions.Default_SelectListItem();
     model.Countries = _context.Country
                       .Include(a => a.Provinces)
                       .Where(a => a.Provinces.Any())
                       .ToSelectListItem(a => a.Name, x => x.Id.ToString());
     model.OrganisationTypes = _context.OrganisationType.ToSelectListItem(a => a.Name, x => x.Id.ToString());
 }
Пример #17
0
 private void PopulateDropDowns(WinnerViewModel model)
 {
     model.Frequencies = _context.Frequency
                         .ToSelectListItem(a => a.Name, x => x.Id.ToString());
     model.FinYears       = _finYearBL.GetLatestFinYearSelectItem();
     model.CalendarMonths = _context.CalendarMonth.OrderBy(a => a.Ordinal).ToSelectListItem(a => a.Name, x => x.Id.ToString(), excludeSort: true);
     model.Awards         = IQueryableExtensions.Default_SelectListItem();
     model.Members        = IQueryableExtensions.Default_SelectListItem();
 }
Пример #18
0
 /// <summary>
 /// Deserializes a query from the raw json.
 /// </summary>
 /// <typeparam name="T">The type of the query.</typeparam>
 /// <param name="root">The serialization root.</param>
 /// <param name="host">The <see cref="IQueryable{T}"/> host to create the query.</param>
 /// <param name="config">The optional configuration.</param>
 /// <param name="stateCallback">Register a callback to inspect the state.</param>
 /// <returns>The deserialized <see cref="IQueryable{T}"/>.</returns>
 public static IQueryable <T> DeserializeQuery <T>(
     SerializationRoot root,
     IQueryable host = null,
     Action <IConfigurationBuilder> config     = null,
     Action <SerializationState> stateCallback = null)
 {
     host = host ?? IQueryableExtensions.CreateQueryTemplate <T>();
     return(DeserializeQuery(host, root, config, stateCallback) as IQueryable <T>);
 }
        public static void InitFactory(IQueryableExtensions queryableExtensions)
        {
            if (QueryableExtensions != null)
            {
                throw new Exception($"Attempted to initialise {nameof(QuerableExtensionsFactory)} multiple times");
            }

            QueryableExtensions = queryableExtensions ?? throw new ArgumentNullException(nameof(queryableExtensions));
        }
Пример #20
0
        public void HandlesEmptyList()
        {
            var result = IQueryableExtensions.Apply(
                source: GetIQueryable(),
                particles: Array.Empty <IFilterParticle <IQueryableApplyTests> >()
                );

            Assert.NotNull(result);
        }
Пример #21
0
 public void ThrowsOnNullParticles()
 {
     Assert.Throws <ArgumentNullException>("particles", () =>
     {
         IQueryableExtensions.Apply(
             source: GetIQueryable(),
             particles: (IEnumerable <IFilterParticle <IQueryableApplyTests> >)null
             );
     });
 }
        private IQueryable <TestThing> GetQuery(bool remote = true)
        {
            var core = IQueryableExtensions.CreateQueryTemplate <TestThing>();

            if (remote)
            {
                core = core.AsRemoteQueryable(context);
            }
            return(core.OrderBy(t => EF.Property <string>(t, nameof(TestThing.Id))).Take(5));
        }
Пример #23
0
        public virtual async Task <ActionResult <IEnumerable <dynamic> > > Sort([FromQuery] string fields, [FromQuery] string asc, [FromQuery] string desc)
        {
            var query = _context.Set <T>().AsQueryable();

            if (!string.IsNullOrWhiteSpace(asc))
            {
                var tab2 = asc.Split(',');
                //on verifie si on a deux éléments dans le tableau pour savoir si on va faire le thenBy()

                if (tab2.Length == 1)
                {
                    query = IQueryableExtensions.SelectColonnesAscOne(query, tab2[0]);
                }
                else
                {
                    query = IQueryableExtensions.SelectColonnesAsc(query, tab2);
                }
            }


            if (!string.IsNullOrWhiteSpace(desc))
            {
                var tab3 = desc.Split(',');
                //on verifie si on a deux éléments dans le tableau pour savoir si on va faire le thenBy()

                if (tab3.Length == 1)
                {
                    query = IQueryableExtensions.SelectColonnesDescOne(query, tab3[0]);
                }
                else
                {
                    query = IQueryableExtensions.SelectColonnesDesc(query, tab3);
                }
            }



            if (!string.IsNullOrWhiteSpace(fields))
            {
                var tab1 = fields.Split(',');

                // var results = await IQueryableExtensions.SelectDynamic<TModel>(query, tab).ToListAsync();
                var results = await query.SelectModel(tab1).ToListAsync();

                return(results.Select((x) => IQueryableExtensions.SelectObject(x, tab1)).ToList());

                // toujours penser a faire le select a la fin
                return(await query.ToListAsync());
            }
            else
            {
                return(Ok(ToJsonList(await query.ToListAsync())));
            }
        }
Пример #24
0
        /// <summary>
        /// Creates a trackable query based on the <see cref="DbContext"/> reference.
        /// </summary>
        /// <typeparam name="T">The <see cref="Type"/> of the query.</typeparam>
        /// <param name="template">A template to access the property.</param>
        /// <returns>A new <see cref="IQueryable"/> to usee.</returns>
        /// <exception cref="ArgumentNullException">Thrown when template is null.</exception>
        /// <exception cref="ArgumentException">Thrown when template does not refer to the right context.</exception>
        public static IQueryable <T> Query <T>(
            Expression <Func <TContext, DbSet <T> > > template)
            where T : class
        {
            VerifyTemplate(template);
            var memberExpression = template.AsEnumerable().OfType <MemberExpression>().First();

            return(IQueryableExtensions.CreateQueryTemplate <T>()
                   .AsRemoteQueryable(new RemoteContext(
                                          typeof(TContext),
                                          memberExpression.Member as PropertyInfo)));
        }
Пример #25
0
        public async Task <IEnumerable <Vehicle> > GetVehicles(Filter filter)
        {
            var query = _context.Vehicles
                        .Include(v => v.VehicleFeatures)
                        .ThenInclude(vf => vf.Feature)
                        .Include(v => v.Model)
                        .ThenInclude(m => m.Make).AsQueryable();

            if (filter.MakeId.HasValue)
            {
                query = query.Where(v => v.Model.MakeId == filter.MakeId);
            }

            if (filter.ModelId.HasValue)
            {
                query = query.Where(v => v.ModelId == filter.ModelId);
            }

            // Sorting with Dictionary.
            var columnsMap = new Dictionary <string, Expression <Func <Vehicle, object> > >()
            {
                ["make"]        = v => v.Model.Make.Name,
                ["model"]       = v => v.Model.Name,
                ["contactName"] = v => v.ContactName,
                ["id"]          = v => v.Id
            };

            query = IQueryableExtensions.ApplyOrdering(filter, query, columnsMap);


            // Sorting without Dictionary.

            /*if (filter.SortBy == "make")
             * {
             *  query = filter.IsSortAscending ? query.OrderBy(v => v.Model.Make.Name) : query.OrderByDescending(v => v.Model.Make.Name);
             * }
             * if (filter.SortBy == "model")
             * {
             *  query = filter.IsSortAscending ? query.OrderBy(v => v.Model.Name) : query.OrderByDescending(v => v.Model.Name);
             * }
             * if (filter.SortBy == "contactName")
             * {
             *  query = filter.IsSortAscending ? query.OrderBy(v => v.ContactName) : query.OrderByDescending(v => v.ContactName);
             * }
             * if (filter.SortBy == "id")
             * {
             *  query = filter.IsSortAscending ? query.OrderBy(v => v.Id) : query.OrderByDescending(v => v.Id);
             * }*/

            return(await query.ToListAsync());
        }
Пример #26
0
        public virtual async Task <ActionResult <T> > Search([FromQuery] string lastname, [FromQuery] string genre, [FromQuery] string sort)
        {
            var query = _context.Set <T>().AsQueryable();

            //solution 2: optimisation de la requete SQL

            if (!string.IsNullOrWhiteSpace(lastname))
            {
                //var tab1 = lastname.Split(',');

                if (lastname.StartsWith("*") && lastname.EndsWith("*"))
                {
                    //&& lastname.EndsWith("*")
                    query = IQueryableExtensions.SelectColonnesName(query, "lastname", lastname);
                }
                else
                {
                    return(NotFound(new { Message = $"Le lastname {lastname} doit etre encadré par des *" }));
                }


                if (!string.IsNullOrWhiteSpace(genre))
                {
                    var tab3 = genre.Split(',');
                    //  //on verifie si on a deux éléments dans le tableau pour savoir si on va faire le expression.or()

                    if (tab3.Length == 1)
                    {
                        query = IQueryableExtensions.SelectColonnesGenderOne(query, "genre", tab3[0]);
                    }
                    else
                    {
                        query = IQueryableExtensions.SelectColonnesGender(query, "genre", tab3);
                    }
                }
                if (!string.IsNullOrWhiteSpace(sort))
                {
                    var tab2 = sort.Split(',');

                    query = IQueryableExtensions.SelectColonnesAsc(query, tab2);
                }

                return(Ok(ToJsonList(await query.ToListAsync())));
            }
            else
            {
                return(NotFound(new { Message = $"name {lastname} not found" }));
            }
        }
        /// <summary>
        /// 根据关键词检索人员数据集合,返回给前端页面
        /// </summary>
        /// <param name="keywork"></param>
        /// <returns></returns>
        public async Task <IActionResult> List(string keywork, string listPageParaJson, string pageIndex)
        {
            var listPagePara = new ListPageParameter();

            if (listPageParaJson != null && listPageParaJson != "")
            {
                listPagePara = Newtonsoft.Json.JsonConvert.DeserializeObject <ListPageParameter>(listPageParaJson);
            }
            listPagePara.PageIndex = Convert.ToInt32(pageIndex);
            var boVMCollection = new List <ApplicationUserVM>();

            if (!String.IsNullOrEmpty(keywork) && keywork != "undefined")
            {
                Expression <Func <ApplicationUser, bool> > condtion = x =>//Contains(参数字符串是否包含于string对象中)
                                                                      x.Name.Contains(keywork) ||
                                                                      x.SchoolAddress.Contains(keywork) ||
                                                                      x.School.Contains(keywork);
                var userCollection = await _userExtension.GetAll().Include(x => x.Avatar).Where(condtion).OrderByDescending(x => x.RegisterTime).ToListAsync();

                foreach (var bo in userCollection)
                {
                    boVMCollection.Add(new ApplicationUserVM(bo));
                }
            }
            else
            {
                var userCollection = await _userExtension.GetAll().Include(x => x.Avatar).OrderByDescending(x => x.RegisterTime).ToListAsync();

                foreach (var bo in userCollection)
                {
                    boVMCollection.Add(new ApplicationUserVM(bo));
                }
            }

            var userCollectionPageList = IQueryableExtensions.ToPaginatedList(boVMCollection.AsQueryable <ApplicationUserVM>(), listPagePara.PageIndex, listPagePara.PageSize);

            var userCollections = new List <ApplicationUserVM>();

            foreach (var userCollection in userCollectionPageList)
            {
                userCollections.Add(userCollection);
            }
            var pageGroup = PagenateGroupRepository.GetItem <ApplicationUserVM>(userCollectionPageList, 3, listPagePara.PageIndex);

            ViewBag.PageGroup     = pageGroup;
            ViewBag.PageParameter = listPagePara;
            return(View("~/Views/ApplicationOrganization/ApplicationUser/_List.cshtml", userCollections));
        }
Пример #28
0
        public async Task <IActionResult> Index()
        {
            var anCollection = await _anAssociationExtension.GetAllIncludingAsyn(x => x.User);

            var anVmCollection = new List <AnAssociationVM>();

            foreach (var an in anCollection)
            {
                var anVM = new AnAssociationVM(an);
                anVmCollection.Add(anVM);
            }

            var pageSize          = 10;
            var pageIndex         = 1;
            var anAssociationList = anVmCollection.OrderBy(x => x.Name).FirstOrDefault();

            //处理分页

            var anAssociationCollectionPageList = IQueryableExtensions.ToPaginatedList(anVmCollection.AsQueryable <AnAssociationVM>(), pageIndex, pageSize);
            var anAssociationCollections        = new List <AnAssociationVM>();

            foreach (var anAssociationCollection in anAssociationCollectionPageList)
            {
                anAssociationCollections.Add(anAssociationCollection);
            }

            //提取当前分页关联的分页器实例
            var pageGroup = PagenateGroupRepository.GetItem(anAssociationCollectionPageList, 5, pageIndex);

            ViewBag.PageGroup = pageGroup;

            var listPageParameter = new ListPageParameter()
            {
                PageIndex        = anAssociationCollectionPageList.PageIndex,
                Keyword          = "",
                PageSize         = anAssociationCollectionPageList.PageSize,
                ObjectTypeID     = "",
                ObjectAmount     = anAssociationCollectionPageList.TotalCount,
                SortDesc         = "Default",
                SortProperty     = "UserName",
                PageAmount       = 0,
                SelectedObjectID = ""
            };

            ViewBag.PageParameter = listPageParameter;
            return(View("~/Views/GroupOrganization/AnAssociation/Index.cshtml", anAssociationCollections));
        }
Пример #29
0
        public async Task <IActionResult> OrderList(string selectNnm)
        {
            ViewBag.UserLogonInformation = GetUserName();
            var listPagePara = new ListPageParameter()
            {
                ObjectTypeID     = "Order",    // 对应的归属类型ID
                PageIndex        = 1,          // 当前页码
                PageSize         = 4,          // 每页数据条数 为"0"时显示所有
                PageAmount       = 0,          // 相关对象列表分页处理分页数量
                ObjectAmount     = 0,          // 相关的对象的总数
                Keyword          = "",         // 当前的关键词
                SortProperty     = "SortCode", // 排序属性
                SortDesc         = "default",  // 排序方向,缺省值正向 Default,前端用开关方式转为逆向:Descend
                SelectedObjectID = "",         // 当前页面处理中处理的焦点对象 ID
                IsSearch         = false,      // 当前是否为检索
            };

            listPagePara.PageIndex = selectNnm != null?Convert.ToInt32(selectNnm) : 1;

            var user = User.Claims.FirstOrDefault();

            if (user.Value == new Guid().ToString())
            {
                return(View("../../Views/Home/Logon"));
            }
            var shop = _ShopRepository.GetSingleBy(x => x.ShopForUser.Id == user.Value);
            //查询订单详细所关联的商品列表
            var orderItems     = _OrderItemRepository.FindBy(x => x.ShopName == shop.Name); //获取订单和订单对应的用户和商品
            var orVMCollection = new List <SK_WM_OrderItemVM>();                            //存放用户所有订单

            var OrderAll = orderItems.AsQueryable <SK_WM_OrderItem>();
            var OrderCollectionPageList = IQueryableExtensions.ToPaginatedList(OrderAll, listPagePara.PageIndex, listPagePara.PageSize);

            foreach (var order in OrderCollectionPageList)
            {
                var omVM = new SK_WM_OrderItemVM(order);
                orVMCollection.Add(omVM);
            }

            var pageGroup = PagenateGroupRepository.GetItem <SK_WM_OrderItem>(OrderCollectionPageList, 3, listPagePara.PageIndex);

            ViewBag.PageGroup     = pageGroup;
            ViewBag.PageParameter = listPagePara;

            return(View("../../Views/BusinessOrganization/BusinessBG/OrderList", orVMCollection));
        }
Пример #30
0
        /// <summary>
        /// Creates a trackable query based on the <see cref="DbContext"/> reference.
        /// </summary>
        /// <typeparam name="T">The <see cref="Type"/> of the query.</typeparam>
        /// <param name="template">A template to access the property.</param>
        /// <returns>A new <see cref="IQueryable"/> to usee.</returns>
        /// <exception cref="ArgumentNullException">Thrown when template is null.</exception>
        /// <exception cref="ArgumentException">Thrown when template does not refer to the right context.</exception>
        public static IQueryable <T> Query <T>(
            Expression <Func <TContext, DbSet <T> > > template)
            where T : class
        {
            Ensure.NotNull(() => template);
            var memberExpression = template.AsEnumerable().OfType <MemberExpression>().First();

            if (memberExpression.Member.DeclaringType != typeof(TContext))
            {
                throw new ArgumentException($"{typeof(DbContext)} <> {template}", nameof(template));
            }

            return(IQueryableExtensions.CreateQueryTemplate <T>()
                   .AsRemoteQueryable(new RemoteContext(
                                          typeof(TContext),
                                          memberExpression.Member as PropertyInfo)));
        }