public HttpResponseMessage Page(ProjectsPageParams parameters) { PageResult result = null; ExecuteInSession(session => { IList <Project> data = GetPageCriteriaByParams(session, parameters) .SetFirstResult((parameters.Page - 1) * parameters.PageSize) .SetMaxResults(parameters.PageSize) .List <Project>(); result = new PageResult() { Total = GetPageCriteriaByParams(session, parameters).SetProjection(Projections.Count(Projections.Id())).UniqueResult <int>(), Data = ModelMapper.Map <IEnumerable <Project>, IEnumerable <ProjectDto> >(data) }; }); return(Request.CreateResponse(HttpStatusCode.OK, result)); }
private ICriteria GetPageCriteriaByParams(ISession session, ProjectsPageParams parameters) { return(session.CreateCriteria <Project>()); }