public IEnumerable <Project> GetProjects() { PagingParameterModel pagingParameterModel = new PagingParameterModel(); //Retourne la liste des projets List <Project> lsprojects = objProject.FindAll(); var projets = lsprojects.AsQueryable().OrderBy(x => x.Nom); //Obtenir le nombre de lignes int count = projets.Count(); //Le paramétre a passé de la chaine de requete si elle est nulle alors la valeur par défaut de pageNumber sera : 1 int CurrentPage = pagingParameterModel.pageNumber; //Le paramétre a passé de la chaine de requete si elle est nulle alors la valeur par défaut de pageSize sera : 3 int PageSize = pagingParameterModel.pageSize; //Afficher la total aux enregistrements int TotalCunt = count; //Calcul du nombre total de page int TotalPages = (int)Math.Ceiling(count / (double)PageSize); //Retourne la liste des client aprés l'applicaiton de la pagination var item = projets.Skip((CurrentPage - 1) * PageSize).Take(PageSize).ToList(); //Si CurrentPage est sup à 1 : cela signifie qu'il a previousPage var previousPage = CurrentPage < 1 ? "Oui" : "non"; //Si TotalPages est sup à CurrentPage : cela signifie qu'il a nectPage var nextPage = CurrentPage < TotalPages ? "Oui" : "non"; //Object que je vais envoyer en Header var paginationMetadata = new { totalCount = TotalPages, currentPage = CurrentPage, totalPages = TotalPages, previousPage, nextPage }; // Definition du Header HttpContext.Response.Headers.Add("Paging-Headers", JsonConvert.SerializeObject(paginationMetadata)); // Nouvelle liste return(item.OrderBy(x => x.Id)); }
public ActionResult <List <Project> > Index() { return(objProject.FindAll()); }