public async Task <IActionResult> GetPagedDormitoryBlock([FromQuery] DormitoryBlockParams dormitoryBlockParams)
        {
            var dormitoryBlock = await dormitoryBlockRepository.GetPagedDormitoryBlock(dormitoryBlockParams);

            var result = mapper.Map <IEnumerable <ViewDormitoryBlockResource> >(dormitoryBlock);

            Response.AddPagination(dormitoryBlock.CurrentPage, dormitoryBlock.PageSize, dormitoryBlock.TotalCount, dormitoryBlock.TotalPages);

            return(Ok(result));
        }
Example #2
0
        public async Task <PagedList <DormitoryBlock> > GetPagedDormitoryBlock(DormitoryBlockParams dormitoryBlockParams)
        {
            var dormitoryBlock = context.DormitoryBlock.AsQueryable();

            // perlu user id untuk membatasi
            if (!string.IsNullOrEmpty(dormitoryBlockParams.Code))
            {
                dormitoryBlock = dormitoryBlock.Where(e =>
                                                      e.Code.Contains(dormitoryBlockParams.Code, StringComparison.OrdinalIgnoreCase));
            }

            if (!string.IsNullOrEmpty(dormitoryBlockParams.Name))
            {
                dormitoryBlock = dormitoryBlock.Where(e =>
                                                      e.Name.Contains(dormitoryBlockParams.Name, StringComparison.OrdinalIgnoreCase));
            }

            //name,sort
            if (dormitoryBlockParams.isDescending)
            {
                if (!string.IsNullOrEmpty(dormitoryBlockParams.OrderBy))
                {
                    switch (dormitoryBlockParams.OrderBy.ToLower())
                    {
                    case "code":
                        dormitoryBlock = dormitoryBlock.OrderByDescending(e => e.Code);
                        break;

                    case "name":
                        dormitoryBlock = dormitoryBlock.OrderByDescending(e => e.Name);
                        break;

                    default:
                        dormitoryBlock = dormitoryBlock.OrderByDescending(e => e.Code);
                        break;
                    }
                }
                else
                {
                    dormitoryBlock = dormitoryBlock.OrderByDescending(e => e.Code);
                }
            }
            else
            {
                if (!string.IsNullOrEmpty(dormitoryBlockParams.OrderBy))
                {
                    switch (dormitoryBlockParams.OrderBy.ToLower())
                    {
                    case "code":
                        dormitoryBlock = dormitoryBlock.OrderBy(e => e.Code);
                        break;

                    case "name":
                        dormitoryBlock = dormitoryBlock.OrderBy(e => e.Name);
                        break;

                    default:
                        dormitoryBlock = dormitoryBlock.OrderBy(e => e.Code);
                        break;
                    }
                }
                else
                {
                    dormitoryBlock = dormitoryBlock.OrderBy(e => e.Code);
                }
            }
            return(await PagedList <DormitoryBlock>
                   .CreateAsync(dormitoryBlock, dormitoryBlockParams.PageNumber, dormitoryBlockParams.PageSize));
        }