public static IQueryable <CustomersListDto> FilterItemsBy( this IQueryable <CustomersListDto> customers, CustomesFiltersBy filterBy, string filterValue) { if (string.IsNullOrEmpty(filterValue)) { return(customers); } switch (filterBy) { case CustomesFiltersBy.NoFilter: return(customers); case CustomesFiltersBy.ByFirstNames: var filterFirstname = filterValue; return(customers.Where(x => x.FisrtName.StartsWith(filterFirstname))); case CustomesFiltersBy.ByLastNames: var filterLastName = filterValue; return(customers.Where(x => x.LastName.StartsWith(filterLastName))); case CustomesFiltersBy.ByPhoneNumber: var filterPhoneNumber = filterValue; return(customers.Where(x => x.PhoneNumber.StartsWith(filterPhoneNumber))); default: throw new ArgumentOutOfRangeException (nameof(filterBy), filterBy, null); } }
public IEnumerable <DropdownTuple> GetFilterDropDownValues(CustomesFiltersBy filterBy) { switch (filterBy) { case CustomesFiltersBy.NoFilter: return(new List <DropdownTuple>()); case CustomesFiltersBy.ByFirstNames: return(FormVotesDropDown()); case CustomesFiltersBy.ByLastNames: var result = _context.Customers.Select(c => c.LastName) .Select(c => new DropdownTuple { Value = c.ToString(), Text = c.ToString() }); return(result); case CustomesFiltersBy.ByPhoneNumber: result = _context.Customers.Select(c => c.PhoneNumber) .Select(c => new DropdownTuple { Value = c.ToString(), Text = c.ToString() }); return(result); default: throw new ArgumentOutOfRangeException(nameof(filterBy), filterBy, null); } }