public PageDbo <PersonDbo> Find(PersonFind personFind, int page, int size) { List <string> wheres = new List <string>(); string sqlFrom = " from Person p "; string sqlOrderBy = " order by p.TimeStamp desc "; PageSkipTakeModel pageSkipTake = new PageSkipTakeModel(page, size); if (!string.IsNullOrWhiteSpace(personFind.Instagram)) { wheres.Add(string.Format(" p.Instagram like('%{0}%') ", personFind.Instagram)); } if (!string.IsNullOrWhiteSpace(personFind.Vk)) { wheres.Add(string.Format(" p.Vk like('%{0}%') ", personFind.Vk)); } if (!string.IsNullOrWhiteSpace(personFind.Email)) { wheres.Add(string.Format(" p.Email like('%{0}%') ", personFind.Email)); } if (!string.IsNullOrWhiteSpace(personFind.Name)) { wheres.Add(string.Format(" p.Name like('%{0}%') ", personFind.Name)); } string sql = sqlFrom + base.ConcatWhere(wheres); IEnumerable <PersonDbo> items; int totalCount; using (var conn = base.OpenConnection()) { items = Query <PersonDbo>(conn, "select * " + sql + sqlOrderBy + pageSkipTake.SqlFormat, null); totalCount = QueryFirst <int>(conn, "select Count(*) " + sql, null); } return(new PageDbo <PersonDbo>(items, totalCount)); }
public PageDbo <PersonDbo> Get(int page, int size) { string sqlSelect = "select * from Person "; string sqlTotalCount = "select Count(*) as count from Person"; string sqlOrderBy = "order by TimeStamp desc"; var skipTakeModel = new PageSkipTakeModel(page, size); string sql = string.Format("{0} {1} {2}", sqlSelect, sqlOrderBy, skipTakeModel.SqlFormat); IEnumerable <PersonDbo> items; int totalCount; using (var conn = base.OpenConnection()) { items = Query <PersonDbo>(conn, sql, null); totalCount = QueryFirst <int>(conn, sqlTotalCount, null); } return(new PageDbo <PersonDbo>(items, totalCount)); }