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