public PageOfPersonDocuments SearchPersons(int pageNumber, int numRecordsInPage, string sort, SortDirection sortDirection, PersonDocument searchCriteria) { var pageOfListPerson = footlooseService.SearchPersonDocuments(pageNumber, numRecordsInPage, sort, sortDirection, searchCriteria); var pageOfPersons = new PageOfPersonDocuments(); pageOfPersons.Data = pageOfListPerson.Data; pageOfPersons.PageIndex = pageOfListPerson.PageIndex; pageOfPersons.PageSize = pageOfListPerson.PageSize; pageOfPersons.TotalItemCount = pageOfListPerson.TotalItemCount; return(pageOfPersons); }
public ActionResult Search(SearchParameters searchParameters) { // Serialize sort column to an enum of PersonSearchColumn PersonSearchColumn personSearchColumn = PersonSearchColumn.LastName; Enum.TryParse <PersonSearchColumn>(searchParameters.SortColumn, out personSearchColumn); // Serialize sort direction to an enum of SortDirection SortDirection sortDirection = SortDirection.Ascending; Enum.TryParse <SortDirection>(searchParameters.SortDirection, out sortDirection); // Serialize the search criteria array into a dictionary of person search column and value Dictionary <PersonSearchColumn, string> searchCriteria = new Dictionary <PersonSearchColumn, string>(); if (searchParameters.SearchCriteria != null && searchParameters.SearchCriteria.Count() > 0) { foreach (var searchCriterion in searchParameters.SearchCriteria) { if (!string.IsNullOrEmpty(searchCriterion.Value)) { PersonSearchColumn column = PersonSearchColumn.None; Enum.TryParse <PersonSearchColumn>(searchCriterion.Key, out column); if (column != PersonSearchColumn.None) { searchCriteria.Add(column, searchCriterion.Value); } } } } var personsPage = _footlooseFSService.SearchPersonDocuments(searchParameters.PageNumber, personSearchColumn, sortDirection, searchParameters.NumberRecordsPerPage, searchCriteria); personsPage.SearchCriteria = searchParameters.SearchCriteria; return(PartialView(personsPage)); }