public List <PersonDbo> Find(PersonFind personFind) { List <string> wheres = new List <string>(); string sqlFrom = " from Person p "; 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; using (var conn = base.OpenConnection()) { items = Query <PersonDbo>(conn, "select * " + sql, null); } return(items.ToList()); }
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)); }