public SearchResult <MenuDTO> Search(MenuSearchFilter filter) { if (string.IsNullOrEmpty(filter.SortName)) { filter.SortName = "Menu_PK"; } var filteredRecords = GetQuery() .Where(menu => menu.Code.Contains(filter.Keyword) || menu.Caption.Contains(filter.Keyword) || menu.Path.Contains(filter.Keyword) || menu.ParentGroup.Contains(filter.Keyword) ); var displayedRecords = filteredRecords. SortBy(filter.SortName, filter.SortDir) .Skip(filter.Skip) .Take(filter.PageSize) .ToList(); var searchResult = new SearchResult <MenuDTO>(filter); searchResult.Filter = filter; searchResult.Count.TotalRecords = GetTotalRecords(); searchResult.Count.TotalFiltered = filteredRecords.Count(); searchResult.Count.TotalDisplayed = displayedRecords.Count(); searchResult.Records = displayedRecords; return(searchResult); }
public MenuListModel Get(MenuSearchFilter searchFilter) { MenuListFormData formData = new MenuListFormData(); SearchResult <MenuDTO> searchResult = menuQuery.Search(searchFilter); return(new MenuListModel() { FormData = formData, SearchResult = searchResult }); }
public IHttpActionResult Search([FromUri] MenuSearchFilter filter) { ThrowIfUserHasNoRole(readRole); if (filter == null) { throw new KairosException("Missing search filter parameter"); } using (var menuQuery = new MenuQuery(Db)) { var data = menuQuery.Search(filter); return(Ok(new SuccessResponse(data))); } }