private PagedList FindDinners(string where, object parameters, string orderBy = "DinnerID", int page = 1, int pageSize = 20) { using (var connection = MvcApplication.GetOpenConnection()) { var builder = new SqlBuilder(); var start = (page - 1) * pageSize + 1; var finish = page * pageSize; var selectTemplate = builder.AddTemplate(pagedQuery, new { start, finish }); var countTemplate = builder.AddTemplate(totalQuery); builder.Where(where, parameters); builder.OrderBy(orderBy); var results = connection.Query(selectTemplate.RawSql, selectTemplate.Parameters); var count = connection.Query(countTemplate.RawSql, countTemplate.Parameters).First(); return new PagedList(results, page, count, pageSize); } }