public async Task <IHttpActionResult> DocMotTrangHangHoa([FromBody] PagedInput input)
        {
            try
            {
                int n          = (input.PageIndex - 1) * input.PageSize;
                int totalItems = await db.HangHoas.CountAsync();

                var hangHoaItems = await db.HangHoas
                                   .OrderBy(p => p.ID)
                                   .Skip(n)
                                   .Take(input.PageSize)
                                   .Include(p => p.Loai)
                                   .Select(p => new HangHoaOutput
                {
                    hangHoaEntity = p,
                    loaiEntity    = p.Loai
                })
                                   .ToListAsync();

                var onePageOfData = new PagedOutput <HangHoaOutput>
                {
                    Items          = hangHoaItems,
                    TotalItemCount = totalItems
                };
                return(Ok(onePageOfData));
            }
            catch (Exception ex)
            {
                return(BadRequest($"Lỗi không truy cập được dữ liệu. Lý do: {ex.Message}"));
            }
        }
Ejemplo n.º 2
0
        public async Task <PagedOutput <HangHoaOutput> > GetOnePage(PagedInput input)
        {
            try
            {
                int n          = (input.PageIndex - 1) * input.PageSize;
                int totalItems = await _db.HangHoas.CountAsync();

                var hangHoaItems = await _db.HangHoas
                                   .OrderByDescending(p => p.ID)
                                   .Skip(n)
                                   .Take(input.PageSize)
                                   .Include(p => p.ChungLoai)
                                   .Select(p => new HangHoaOutput

                {
                    hangHoaEntity   = p,
                    chungLoaiEntity = p.ChungLoai
                })
                                   .ToListAsync();

                var onePageOfData = new PagedOutput <HangHoaOutput>
                {
                    Items          = hangHoaItems,
                    TotalItemCount = totalItems
                };

                return(onePageOfData);
            }
            catch (Exception ex)
            {
                throw new Exception($"Loi khong truy cap duoc du lieu. Ly do : {ex.Message}");
            }
        }
Ejemplo n.º 3
0
        public async Task <IPagedOutput <HelloOutput> > GetHelloPaged()
        {
            var helloRepo = _repositoryFactory.CreateRepository <IHelloRepository>();
            var data      = await helloRepo.GetHelloWorld();

            var output = new PagedOutput <HelloOutput>();

            output.Items      = data.Items.MapToList <HelloOutput>();
            output.TotalCount = data.TotalCount;
            return(output);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Uses CRUD service for getting paged and sorted items.
        /// </summary>
        /// <param name="input">Paging and sorting</param>
        /// <returns>Response object with status description and items as result if success</returns>
        public async Task <IActionResult> GetAll(PagedAndSortedInput input)
        {
            input.ValidateAndSetDefaults();

            PagedOutput <PeopleMarkViewModel> model = null;

            try
            {
                model = await _crudService.GetAll(input, p => p.Mark);
            }
            catch (Exception ex)
            {
                return(StatusCode(500, ApiResult.FailResult(ex.Message)));
            }


            return(Json(ApiResult.SuccessResult(model)));
        }
        public async Task <IHttpActionResult> DocMotTrangTheoLoai([FromBody] PagedInput input, int id)
        {
            try
            {
                var LoaiItem = await db.Loais
                               .SingleOrDefaultAsync(p => p.ID == id);

                if (LoaiItem == null)
                {
                    throw new Exception($"Loại ID={id} không tồn tại.");
                }
                ;
                int n          = (input.PageIndex - 1) * input.PageSize;
                int totalItems = await db.HangHoas.CountAsync(p => p.LoaiID == id);

                var hangHoaItems = await db.HangHoas
                                   .Where(p => p.LoaiID == id)
                                   .OrderBy(p => p.ID)
                                   .Skip(n)
                                   .Take(input.PageSize)
                                   .Select(p => new HangHoaOutput
                {
                    hangHoaEntity = p,
                    loaiEntity    = p.Loai
                })
                                   .ToListAsync();

                var onePageOfData = new PagedOutput <HangHoaOutput>
                {
                    Items          = hangHoaItems,
                    TotalItemCount = totalItems
                };
                return(Ok(onePageOfData));
            }
            catch (Exception ex)
            {
                return(BadRequest($"Lỗi không truy cập được dữ liệu. lý do: {ex.Message}"));
            }
        }
Ejemplo n.º 6
0
        public static async Task <IPagedOutput <T> > Paged <T, TOrder>(this IQueryable <T> query, Expression <Func <T, TOrder> > order, int pageIndex, int pageSize, bool isDesc = true) where T : class
        {
            var output = new PagedOutput <T>();

            output.TotalCount = await query.CountAsync();

            if (isDesc)
            {
                query = query.OrderByDescending(order);
            }
            else
            {
                query = query.OrderBy(order);
            }

            query = query.Skip((pageIndex - 1) * pageSize).Take(pageSize);

            output.Items = await query.ToListAsync();



            return(output);
        }