示例#1
0
        public async Task <List <Client> > FilteredList(ClientsSort sortParam, ClientsSearch searchParam, string searchInput)
        {
            var _clientsContext = _context.Client.OrderBy(c => c.FullName);
            var list            = await _clientsContext.ToListAsync();

            if (searchInput != null && searchInput != String.Empty)
            {
                switch (searchParam)
                {
                case ClientsSearch.FullName: list = list.FindAll(v => v.FullName.Contains(searchInput)); break;

                case ClientsSearch.PrefType: list = list.FindAll(v => v.PrefType.Contains(searchInput)); break;

                case ClientsSearch.PhoneNumber: list = list.FindAll(v => v.PhoneNumber.Contains(searchInput)); break;

                case ClientsSearch.PassportNo: list = list.FindAll(v => v.ClientPassportNo.Contains(searchInput)); break;
                }
            }

            switch (sortParam)
            {
            case ClientsSort.FullName: return(list.OrderBy(v => v.FullName).ToList());

            case ClientsSort.PrefType: return(list.OrderBy(v => v.PrefType).ToList());

            case ClientsSort.MaxRent: return(list.OrderBy(v => v.MaxRent).ToList());

            default: return(list.OrderBy(v => v.FullName).ToList());
            }
        }
        async Task GetClientsAsync()
        {
            if (IsBusy)
            {
                return;
            }

            try
            {
                var clients = LocalDataService.GetClients();

                if (clients != null)
                {
                    Clients.ReplaceRange(clients);
                    ClientsSearch.ReplaceRange(clients);
                    IsBusy = false;
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine($"Unable to get clients: {ex.Message}");

                await Application.Current.MainPage.DisplayAlert("Error!", ex.Message, "OK");
            }
            finally
            {
                IsBusy = false;
            }
        }
        async void SearchClients(string search)
        {
            if (Clients == null || IsBusy)
            {
                return;
            }

            try
            {
                var searchList = Clients.Where((f) => f.Name.ToLower().Contains(search.ToLower()));
                ClientsSearch.ReplaceRange(searchList);

                Title = $"{ClientsSearch.Count} clients";
            }
            catch (Exception ex)
            {
                Debug.WriteLine($"Error while searching {ex.Message}");
                await Application.Current.MainPage.DisplayAlert("Error!", ex.Message, "OK");
            }
        }