public async Task <IHttpActionResult> Get([FromUri] JournalEntrySearchOptions options) { var list = db.JournalEntries.Select(s => s); list = SearchInternal(list, options); return(await Page(db.JournalEntries, options.Page.Value)); }
private IQueryable <JournalEntry> SearchInternal(IQueryable <JournalEntry> list, JournalEntrySearchOptions opt) { if (!String.IsNullOrEmpty(opt.Search)) { list = Filter(list, opt.Search, opt.DeepSearch); } if (!String.IsNullOrEmpty(opt.entityname)) { list = list.Where(p => p.EntityName == opt.entityname); } if (opt.recordid.HasValue) { list = list.Where(p => p.RecordId == opt.recordid); } if (!String.IsNullOrEmpty(opt.propertyname)) { list = list.Where(p => p.PropertyName == opt.propertyname); } if (!String.IsNullOrEmpty(opt.Order)) { list = Sort(list, opt.Order, opt.Ascending.Value); } else { list = list.OrderByDescending(c => c.Id); } return(list); }