Пример #1
0
        public static DynamicListRenderPageModel FromPagedList <T>(PagedListContainer <T> Objects)
        {
            if (Objects is null)
            {
                throw new System.ArgumentNullException(nameof(Objects));
            }

            DynamicListRenderPageModel model = new DynamicListRenderPageModel()
            {
                PagedList = new PagedListContainer <IMetaObject>()
                {
                    Count      = Objects.Count,
                    Page       = Objects.Page,
                    TotalCount = Objects.TotalCount
                },

                Type = nameof(T)
            };

            model.PagedList.HiddenColumns.AddRange(Objects.HiddenColumns);

            foreach (object?thisItem in Objects.Items)
            {
                if (thisItem is IMetaObject m)
                {
                    model.PagedList.Items.Add(m);
                }
                else
                {
                    model.PagedList.Items.Add(new MetaObjectHolder(thisItem));
                }
            }

            return(model);
        }
        public ActionResult ListEntries(string TypeName = "", Guid?Target = null, int count = 20, int page = 0)
        {
            bool typeSelected = !string.IsNullOrWhiteSpace(TypeName);

            IQueryable <AuditEntry> FilterQuery(IQueryable <AuditEntry> toQuery)
            {
                return(toQuery.Where(a => (!typeSelected || a.TypeName == TypeName) && (Target == null || a.Target == Target)));
            }

            MetaConstructor c = Constructor;

            PagedListContainer <IMetaObject> model = new PagedListContainer <IMetaObject>
            {
                TotalCount = FilterQuery(AuditEntryRepository.All).Count(),
                Page       = page,
                Count      = count
            };

            model.Items.AddRange(FilterQuery(AuditEntryRepository.All).OrderByDescending(a => a.Logged).Skip(page * count).Take(count).ToList().Select(o => { MetaObject me = new MetaObject(o, c); me.Hydrate(); return(me); }));

            if (Target.HasValue)
            {
                model.HiddenColumns.Add(nameof(Target));
                model.HiddenColumns.Add(nameof(TypeName));
            }
            else if (!string.IsNullOrWhiteSpace(TypeName))
            {
                model.HiddenColumns.Add(nameof(TypeName));
            }

            return(this.View(model));
        }
        public HttpResponseMessage GetVakifListByPagedList(int pageNumber = 1, int pageSize = 10, string cityFilter = "", string foundationFilter = "")

        {
            //sdfsdf
            try
            {
                using (CONTOSOEntities db = new CONTOSOEntities())
                {
                    IQueryable <Foundation> query = db.Foundation.AsQueryable();

                    if (!string.IsNullOrEmpty(cityFilter))
                    {
                        query = query.Where(vakif => vakif.Province.ProvinceName.Contains(cityFilter)).AsQueryable();
                    }

                    if (!string.IsNullOrEmpty(foundationFilter))
                    {
                        query = query.Where(vakif => vakif.County.CountyName.Contains(foundationFilter)).AsQueryable();
                    }

                    query = query.OrderBy(a => a.Province.ProvinceName).ThenBy(a => a.County.CountyName);

                    PagedList <Foundation> returnList = new PagedList <Foundation>(query, pageNumber, pageSize);

                    IEnumerable <FoundationViewModel> fvm = new List <FoundationViewModel>();

                    fvm = returnList.Select(f => new FoundationViewModel {
                        ID           = f.ID,
                        FName        = f.FName,
                        CountyName   = f.County.CountyName,
                        ProvinceName = f.Province.ProvinceName,
                        Address      = f.Address,
                        Phone        = f.Phone,
                        Fax          = f.Fax,
                        EMail        = f.EMail
                    });

                    PagedList <FoundationViewModel> list = new PagedList <FoundationViewModel>(fvm, returnList.PagingMetaData);

                    PagedListContainer <FoundationViewModel> pgList = new PagedListContainer <FoundationViewModel>(list);
                    return(Request.CreateResponse(HttpStatusCode.OK, pgList));
                }
            }

            catch (Exception e)
            {
                return(Request.CreateResponse(HttpStatusCode.InternalServerError));
            }
        }
Пример #4
0
        public PagedListContainer <T> GenerateList <T>(Type t, int count = 20, int page = 0, string text = "", Func <object, T>?Converter = null) where T : class
        {
            Converter ??= new Func <object, T>((o) => (T)o);

            PropertyInfo?Key = ContextHelper.GetKeyForType(t);

            if (Key is null)
            {
                throw new Exception($"Unable to find Key for type {t}");
            }

            PagedListContainer <T> pagedList = new PagedListContainer <T>();

            QueryResults DBResult;

            if (this.ServiceProvider.GetRepositoryForType <IKeyedObjectRepository>(t) is IKeyedObjectRepository TypedRepository)
            {
                DBResult = this.GetType().GetMethod(nameof(AdminController.QueryDatabase)).MakeGenericMethod(t).Invoke(this, new object[] { count, page, text }) as QueryResults;

                DBResult.Results = DBResult.Results.Select(Converter);
            }
            else
            {
                throw new Exception("Can not access data source for objects that dont derive from KeyedObjectType in this version");
            }

            pagedList.Page = page;

            pagedList.Items.AddRange(DBResult.Results.Cast <T>());

            pagedList.Count = count;

            pagedList.TotalCount = DBResult.TotalCount;

            return(pagedList);
        }