public ApiResponse Index([FromQuery] Query query, [FromHeader] Header header) { if (query.Pagination) { List <UserRepository> usersRepo = this.userApplication.GetList(query.Search, query.Page, query.PerPage); int count = this.userApplication.Count(query.Search); decimal pageInCount = ((decimal)count) / query.PerPage; PaginationModel paginate = new PaginationModel() { TotalPage = (int)Math.Ceiling(pageInCount), Page = query.Page, PerPage = query.PerPage, Data = UserItem.MapRepo(usersRepo), Total = count }; return(new ApiResponsePagination(HttpStatusCode.OK, paginate)); } else { var usersRepo = this.userApplication.GetList(query.Search, query.Page, query.PerPage); return(new ApiResponseDataList(HttpStatusCode.OK, usersRepo, usersRepo.Count)); } }