public IEnumerable<Record> Query(RecordFilter filter) { return RecordRepository.Query(filter); }
public IEnumerable<Record> Query(RecordFilter filter) { var cmdText = "select * from record where 1= 1 "; var parameters = new Stack<SQLiteParameter>(); if (filter != null) { if (filter.BeginEditDate != null) { cmdText += "and LastUpdateDate >= @BeginEditDate "; parameters.Push(new SQLiteParameter("@BeginEditDate", filter.BeginEditDate.Value)); } if (!string.IsNullOrWhiteSpace(filter.DealWith)) { cmdText += "and DealWith like @DealWith "; parameters.Push(new SQLiteParameter("@DealWith",string.Format("%{0}%",filter.DealWith))); } if (filter.EndEditDate != null) { cmdText += "and LastUpdateDate < @EndEditDate "; parameters.Push(new SQLiteParameter("@EndEditDate", filter.EndEditDate.Value)); } if (!string.IsNullOrWhiteSpace(filter.Project)) { cmdText += "and project like @Project "; parameters.Push(new SQLiteParameter("@Project", string.Format("%{0}%", filter.Project))); } if (filter.Status != null) { cmdText += "and Status = @Status "; parameters.Push(new SQLiteParameter("@Status", filter.Status.Value)); } if (!string.IsNullOrWhiteSpace(filter.Tag)) { cmdText += "and tag like @Tag "; parameters.Push(new SQLiteParameter("@Tag", string.Format("%{0}%", filter.Tag))); } if (!string.IsNullOrWhiteSpace(filter.Title)) { cmdText += "and title like @Title "; parameters.Push(new SQLiteParameter("@Title", string.Format("%{0}%",filter.Title))); } } var dt = DbContext.ExecuteQuery(cmdText, parameters.ToArray()); var result = new List<Record>(); foreach (DataRow row in dt.Rows) { result.Add(new Record { Id = new Guid(row["Id"].ToString()), CreateDate = (DateTime)row["CreateDate"], DealWith = row["DealWith"].ToString(), LastEditDate = (DateTime)row["LastEditDate"], Description = row["Description"].ToString(), Status = (RecordStatus)row["Status"], Project = row["Project"].ToString(), Tag = row["Tag"].ToString(), Title = row["Title"].ToString() }); } return result; }