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)); }
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)); }