// GET: Customers
        public async Task <IActionResult> Index(string searchString, SortState sortOrder = SortState.LastNameAsc)
        {
            var customers = from c in await _customers.GetAllAsync()
                            select c;

            ViewData["CurrentFilter"] = searchString;
            if (!String.IsNullOrEmpty(searchString))
            {
                customers = customers.Where(s => s.LastName.Contains(searchString) ||
                                            s.FirstName.Contains(searchString));
            }

            ViewData["LastNameSort"] =
                sortOrder == SortState.LastNameAsc ? SortState.LastNameDesc : SortState.LastNameAsc;
            ViewData["AddressSort"] = sortOrder == SortState.AddressAsc ? SortState.AddressDesc : SortState.AddressAsc;

            customers = sortOrder switch
            {
                SortState.LastNameDesc => customers.OrderByDescending(c => c.LastName),
                SortState.AddressAsc => customers.OrderBy(c => c.Address),
                SortState.AddressDesc => customers.OrderByDescending(c => c.Address),
                _ => customers.OrderBy(c => c.LastName),
            };
            return(View(customers));
        }