Example #1
0
        public async Task <IActionResult> GetAllElanatsPaged(int pageNum = 1, int pageSize = 10, string expression = "", string sortBy = "", string sortMethod = "asc")
        {
            var paggingData = new paggingData()
            {
                PageSize   = pageSize,
                PageNum    = pageNum,
                SortBy     = sortBy,
                Expression = expression,
                SortMethod = sortMethod
            };
            var elanats = await _elanatsService.GetAllElanatsPaged(paggingData);

            var list = new List <ElanatViewModel>();

            if (!elanats.Any())
            {
                return(NoContent());
            }
            foreach (var item in elanats)
            {
                list.Add(new ElanatViewModel()
                {
                    ElanatId = item.ElanatId,

                    messageText  = item.MessageText,
                    messageTopic = item.MessageTopic,
                    dateFrom     = item.DateFrom,
                    dateTo       = item.DateTo
                });
            }

            var pagedList = new PagedList <ElanatViewModel>()
            {
                list       = list,
                PageSize   = paggingData.PageSize,
                Count      = paggingData.Count,
                Expression = paggingData.Expression,
                SortBy     = paggingData.SortBy,
                PageNum    = paggingData.PageNum,
                SortMethod = paggingData.SortMethod,
            };

            return(Ok(pagedList));
        }
Example #2
0
        /// <summary>
        /// paging
        /// </summary>

        public static IQueryable <T> PagedResult <T>(IQueryable <T> query, paggingData paggingData)
        {
            if (paggingData.PageSize <= 0)
            {
                paggingData.PageSize = 20;
            }


            paggingData.Count = query.Count();

            if (paggingData.Count <= paggingData.PageSize || paggingData.PageNum <= 0)
            {
                paggingData.PageNum = 1;
            }

            int excludedRows = (paggingData.PageNum - 1) * paggingData.PageSize;

            return(query.Skip(excludedRows).Take(paggingData.PageSize));
        }
Example #3
0
        public async Task <ICollection <Elanat> > GetAllElanatsPaged(paggingData paggingData)
        {
            if (paggingData.Expression.IsNullOrEmpty())
            {
                paggingData.Expression = "";
            }
            if (paggingData.SortBy.IsNullOrEmpty())
            {
                paggingData.SortBy = "ElanatId";
            }
            var list = _entity.Where(c => c.MessageTopic.Contains(paggingData.Expression) || c.MessageText.Contains(paggingData.Expression))
                       .OrderBy(c => c.ElanatId);



            if (paggingData.SortMethod == "asc")
            {
                switch (paggingData.SortBy)
                {
                case "messageTopic":
                    list = list.OrderBy(c => c.MessageTopic);
                    break;

                case "messageText":
                    list = list.OrderBy(c => c.MessageText);
                    break;

                case "dateFrom":
                    list = list.OrderBy(c => c.DateFrom);
                    break;

                case "dateTo":
                    list = list.OrderBy(c => c.DateTo);
                    break;
                //case "DesLevel":
                //    list = list.OrderBy(c => c.DesLevel);
                //    break;

                default:
                    list = list.OrderBy <Elanat>(paggingData.SortBy);
                    break;
                }
            }
            else
            {
                switch (paggingData.SortBy)
                {
                case "messageTopic":
                    list = list.OrderByDescending(c => c.MessageTopic);
                    break;

                case "messageText":
                    list = list.OrderByDescending(c => c.MessageText);
                    break;

                case "dateFrom":
                    list = list.OrderByDescending(c => c.DateFrom);
                    break;

                case "dateTo":
                    list = list.OrderByDescending(c => c.DateTo);
                    break;

                default:

                    list = list.OrderBy <Elanat>(paggingData.SortBy + " descending");
                    break;
                }
            }

            return(await Pagging.PagedResult(list, paggingData).ToListAsync());
        }