Esempio n. 1
0
        public IActionResult Get(int page = 0, int pageSize = 50)
        {
            if (pageSize > 200 || pageSize <= 0)
            {
                pageSize = 50;
            }
            if (page > count / pageSize)
            {
                page = count / pageSize;
            }
            else if (page < 0)
            {
                page = 0;
            }
            List <TEntity>       data = _repository.Get(page, pageSize, null) as List <TEntity>;
            List <Encapsulation> tmp  = new List <Encapsulation>();

            data.ForEach(e => {
                tmp.Add(new Encapsulation {
                    Url = createUrl(e.Id), Data = e
                });
            });
            var result = new ListEncapsulation
            {
                Total = count,
                Pages = count / pageSize,
                Page  = page,
                Prev  = createUrl(null, page - 1, pageSize),
                Next  = createUrl(null, page + 1, pageSize),
                Url   = createUrl(null, page, pageSize),
                Data  = tmp
            };

            return(Ok(result));
        }
Esempio n. 2
0
        public override IActionResult Get(int page = 0, int pageSize = 50, int byScore = 0)
        {
            if (pageSize > 200 || pageSize <= 0)
            {
                pageSize = 50;
            }
            if (page > count / pageSize)
            {
                page = count / pageSize;
            }
            else if (page < 0)
            {
                page = 0;
            }
            Task <List <Post> > data;

            if (byScore == 1)
            {
                data = _repository.Get(page, pageSize, (e) => e.OrderByDescending(f => f.score)) as Task <List <Post> >;
            }
            else
            {
                data = _repository.Get(page, pageSize, null) as Task <List <Post> >;
            }
            List <Encapsulation> tmp = new List <Encapsulation>();

            data.Result.ForEach(e =>
            {
                tmp.Add(new Encapsulation {
                    Url = createUrl(e.Id), Data = e
                });
            });
            var result = new ListEncapsulation
            {
                Total = count,
                Pages = count / pageSize,
                Page  = page,
                Prev  = createUrl(null, page - 1, pageSize),
                Next  = createUrl(null, page + 1, pageSize),
                Url   = createUrl(null, page, pageSize),
                Data  = tmp
            };

            return(Ok(result));
        }
        public IActionResult GetAnswersForPost(int parentId, int page = 0, int pageSize = 50)
        {
            int count = this._dataService.GetPostRepository().GetNumberAnswerToPost(parentId).Result;

            if (pageSize > 200 || pageSize <= 0)
            {
                pageSize = 50;
            }
            if (page > count / pageSize)
            {
                page = count / pageSize;
            }
            else if (page < 0)
            {
                page = 0;
            }
            List <int>           data = _dataService.GetPostRepository().GetAnswersToPost(parentId, page, pageSize).Result;
            List <Encapsulation> tmp  = new List <Encapsulation>();

            data.ForEach(e =>
            {
                tmp.Add(new Encapsulation {
                    Url = "", Data = new Post {
                        Id = e
                    }
                });
            });

            var result = new ListEncapsulation
            {
                Total = count,
                Pages = count / pageSize,
                Page  = page,
                Prev  = makeURL(null, page - 1, pageSize, "parentId/" + parentId.ToString(), count),
                Next  = makeURL(null, page + 1, pageSize, "parentId/" + parentId.ToString(), count),
                Url   = makeURL(null, page, pageSize, "parentId/" + parentId.ToString(), count),
                Data  = tmp
            };

            return(Ok(result));
        }
        public IActionResult SearchInPosts(string query = "", int page = 0, int pageSize = 50)
        {
            var data = _dataService.GetProcedures().SearchInPosts(query);

            if (pageSize > 200 || pageSize <= 0)
            {
                pageSize = 50;
            }
            if (page > data.Count / pageSize)
            {
                page = data.Count / pageSize;
            }
            else if (page < 0)
            {
                page = 0;
            }

            List <Encapsulation> tmp = data
                                       .Skip(page * pageSize)
                                       .Take(pageSize)
                                       .Select(e => new Encapsulation {
                Url = "", Data = new Post {
                    Id = e
                }
            })
                                       .ToList();

            var result = new ListEncapsulation
            {
                Total = data.Count,
                Pages = data.Count / pageSize,
                Page  = page,
                Prev  = makeURL(null, page - 1, pageSize, $"searchInPosts/{query}", data.Count),
                Next  = makeURL(null, page + 1, pageSize, $"searchInPosts/{query}", data.Count),
                Url   = makeURL(null, page, pageSize, $"searchInPosts/{query}", data.Count),
                Data  = tmp
            };

            return(Ok(result));
        }
        public override IActionResult Get(int page = 0, int pageSize = 50, int order = 0)
        {
            if (pageSize > 200 || pageSize <= 0)
            {
                pageSize = 50;
            }
            if (page > count / pageSize)
            {
                page = count / pageSize;
            }
            else if (page < 0)
            {
                page = 0;
            }
            Task <List <QueryHistory> > data = _repository.Get(page, pageSize, e => e.OrderBy(f => f.CreationDate)) as Task <List <QueryHistory> >;
            List <Encapsulation>        tmp  = new List <Encapsulation>();

            data.Result.ForEach(e =>
            {
                tmp.Add(new Encapsulation {
                    Url = createUrl(e.Id), Data = e
                });
            });
            var result = new ListEncapsulation
            {
                Total = count,
                Pages = count / pageSize,
                Page  = page,
                Prev  = createUrl(null, page - 1, pageSize),
                Next  = createUrl(null, page + 1, pageSize),
                Url   = createUrl(null, page, pageSize),
                Data  = tmp
            };

            return(Ok(result));
        }