public IEnumerable <Question> Search(SearchPaging item)
        {
            try
            {
                var result  = context.Questions.Where(s => s.Content.Contains(item.SearchString)).ToList();
                var size    = 10;
                var maxSize = result.Count();
                if (item.PageSize <= 0)
                {
                    size = maxSize < 10 ? maxSize : 10;
                }
                else
                {
                    size = maxSize < item.PageSize ? maxSize : item.PageSize;
                }
                var index = item.PageIndex <= 0 ? item.PageIndex = 1 : item.PageIndex;

                var start = (index - 1) * size;
                var end   = index * size - 1;
                return(result.GetRange(start, end));
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Ejemplo n.º 2
0
        // Search when Search String is not null
        public async Task <PagedList <User> > ReturnUsers(SearchPaging props)
        {
            var returned = (await SearchUser(props)).OrderBy(x => x.Id).ToList();
            var retList  = PagedList <User> .ToPagedList(returned, props.PageNumber, props.PageSize);

            return(retList);
        }
        public static FindOptions <TDocument, TDocument> CreateFindOptions <TDocument, TFilter>(
            this SearchPaging <TFilter> paging,
            SortDefinition <TDocument> sort)
        {
            var findOptions = new FindOptions <TDocument>();

            var offset = (paging.Page - 1) * paging.Size;

            findOptions.Skip  = offset;
            findOptions.Limit = paging.Size;
            findOptions.Sort  = sort;

            return(findOptions);
        }
        public SearchResult <BankTransaction> Search(SearchPaging <BankTransactionFilters> bankTransactionFilters)
        {
            var filters = this.SearchBankTransactionFilterBuilder(bankTransactionFilters.Filters);
            var sort    = Builders <BankTransaction> .Sort.Descending(r => r.TransactionDate);

            var options = bankTransactionFilters.CreateFindOptions(sort);

            var documents = this.MongoCollection.FindAsync(filters, options)
                            .GetAwaiter().GetResult().ToList();

            var count = this.MongoCollection.CountDocuments(filters);

            return(new SearchResult <BankTransaction>
            {
                Count = count,
                Documents = documents
            });
        }
Ejemplo n.º 5
0
        // Search when search string is null
        public async Task <PagedList <User> > ReturnAllUsers(SearchPaging props)
        {
            IQueryable <User> usersQ = Enumerable.Empty <User>().AsQueryable();

            for (int i = 0; i < props.Role.Length; i++)
            {
                switch (props.Role[i])
                {
                case "Admin":
                    var admins = await _context.Admins.Include(x => x.Person).Where(
                        (x) =>
                        x.Status.CompareTo(props.Status) == 0)
                                 .OrderBy(x => x.Id).ToListAsync();

                    usersQ = usersQ.Concat(admins);
                    break;

                case "Member":
                    var members = await _context.Members.Include(x => x.Person).Where(
                        (x) =>
                        x.Status.CompareTo(props.Status) == 0)
                                  .OrderBy(x => x.Id).ToListAsync();

                    usersQ = usersQ.Concat(members);
                    break;

                default:
                    var users = await _context.Users.Include(x => x.Person).Where(
                        (x) =>
                        x.Status.CompareTo(props.Status) == 0)
                                .OrderBy(x => x.Id).ToListAsync();

                    usersQ = usersQ.Concat(users);
                    break;
                }
            }

            var returned = usersQ.ToList();
            var retList  = PagedList <User> .ToPagedList(returned, props.PageNumber, props.PageSize);

            return(retList);
        }
Ejemplo n.º 6
0
        public string ExportToCsv(BankTransactionFilters bankTransactionFilters)
        {
            var filters = new SearchPaging <BankTransactionFilters>
            {
                Page    = 1,
                Size    = 50,
                Filters = bankTransactionFilters
            };

            var bankTransactions = new List <BankTransaction>();
            var hasNext          = false;

            do
            {
                var result = this.BankTransactionRepository.Search(filters);
                bankTransactions.AddRange(result.Documents);
                hasNext = (result.Documents.Count == filters.Size);
                filters.Page++;
            }while (hasNext);

            return(this.CsvParser.Convert(bankTransactions));
        }
Ejemplo n.º 7
0
        private async Task <IQueryable <User> > SearchUser(SearchPaging props)
        {
            IQueryable <User> users = Enumerable.Empty <User>().AsQueryable();


            for (int i = 0; i < props.Role.Length; i++)
            {
                switch (props.Role[i])
                {
                case "Admin":
                    var a = await _context.Admins.Include(x => x.Person).Where(x =>
                                                                               x.Status == props.Status
                                                                               &&
                                                                               (x.SearchString.Contains(props.SearchString.ToUpper()))).ToListAsync();

                    users = users.Concat(a);
                    break;

                case "Member":
                    var m = await _context.Members.Include(x => x.Person).Where(x =>
                                                                                x.Status == props.Status
                                                                                &&
                                                                                (x.SearchString.Contains(props.SearchString.ToUpper()))).ToListAsync();

                    users = users.Concat(m);
                    break;

                default:
                    var u = await _context.Users.Include(x => x.Person).Where(x =>
                                                                              x.Status == props.Status
                                                                              &&
                                                                              (x.SearchString.Contains(props.SearchString.ToUpper()))).ToListAsync();

                    users = users.Concat(u);
                    break;
                }
            }
            return(users);
        }
Ejemplo n.º 8
0
 public SearchResult <BankTransaction> Search(SearchPaging <BankTransactionFilters> bankTransactionFilters)
 {
     return(this.BankTransactionRepository.Search(bankTransactionFilters));
 }
Ejemplo n.º 9
0
        public async Task <IActionResult> ReturnUsers([FromQuery] SearchPaging props)
        {
            //List<SearchProps> finalReturn = new List<SearchProps>();

            if (!string.IsNullOrEmpty(props.SearchString))
            {
                var userList = await _uService.ReturnUsers(props);

                var returnList = _mapper.Map <List <SearchProps> >(userList);

                for (int i = 0; i < returnList.Count; i++)
                {
                    returnList.ElementAt(i).Role = userList.ElementAt(i).GetType().Name;
                }

                // for (int j = 0; j < props.Role.Length; j++)
                // {
                //     for (int i = 0; i < returnList.Count; i++)
                //     {
                //         if (returnList.ElementAt(i).Role.CompareTo(props.Role[j]) == 0)
                //         {
                //             finalReturn.Add(returnList.ElementAt(i));
                //         }
                //     }

                // }
                var data = new{
                    userList.TotalCount,
                    userList.PageSize,
                    userList.CurrentPage,
                    userList.TotalPages,
                    userList.HasNext,
                    userList.HasPrevious
                };
                var users = new {
                    returnList,
                    data,
                };
                return(Ok(users));
            }
            else
            {
                var userList = await _uService.ReturnAllUsers(props);

                var returnList = _mapper.Map <List <SearchProps> >(userList);

                for (int i = 0; i < returnList.Count; i++)
                {
                    returnList.ElementAt(i).Role = userList.ElementAt(i).GetType().Name.ToString();
                }

                // for (int j = 0; j < props.Role.Length; j++)
                // {
                //     //
                //     for (int i = 0; i < returnList.Count; i++)
                //     {
                //         if (returnList.ElementAt(i).Role.CompareTo(props.Role[j]) == 0)
                //         {
                //             finalReturn.Add(returnList.ElementAt(i));
                //         }
                //     }
                // }
                var data = new
                {
                    userList.TotalCount,
                    userList.PageSize,
                    userList.CurrentPage,
                    userList.TotalPages,
                    userList.HasNext,
                    userList.HasPrevious
                };
                var users = new
                {
                    returnList,
                    data,
                };
                return(Ok(users));
            }
        }
 public IEnumerable <Question> Search(SearchPaging item)
 {
     return(repository.Search(item));
 }
Ejemplo n.º 11
0
 public virtual async Task PagingFilterChange(IPaging paging)
 {
     SearchPaging.AutoMap(paging);
     await Search();
 }