private void AfterTextChanged(object sender, AfterTextChangedEventArgs eventArgs)
        {
            if (_cancellationTokenSource != null)
            {
                _cancellationTokenSource.Cancel();
            }
            _cancellationTokenSource = new CancellationTokenSource();
            var token = _cancellationTokenSource.Token;

            Criteria.Name = eventArgs.Editable.ToString();

            Task.Run(async() =>
            {
                var result = await _locationService.GetLocations(Criteria, token);

                _activity.RunOnUiThread(() =>
                {
                    _locationAdapter.UpdateList(result.Data);
                });
            }, token);
        }
        public override View GetView(int position, View convertView, ViewGroup parent)
        {
            AddGoodsDispatchedNoteAdapterViewHolder viewHolder = null;

            if (convertView == null)
            {
                convertView     = _layoutInflater.Inflate(_resourceId, parent, false);
                viewHolder      = new AddGoodsDispatchedNoteAdapterViewHolder(convertView);
                convertView.Tag = viewHolder;
            }
            else
            {
                viewHolder = (AddGoodsDispatchedNoteAdapterViewHolder)convertView.Tag;
            }

            var item = GetItem(position);

            viewHolder.Position = position;
            viewHolder.AddGoodsDispatchedNoteRowItemProductName.Text = item.Name;
            viewHolder.AddGoodsDispatchedNoteRowItemLocation.Adapter = _locationAdapter;

            var token = Helpers.Helpers.CancelAndSetTokenForView(viewHolder.AddGoodsDispatchedNoteRowItemLocation);

            Task.Run(async() =>
            {
                var adapter = new BaseArrayAdapter <Models.Location>(Context, Android.Resource.Layout.SimpleListItem1);

                var result = await _locationService.GetLocationsByProduct("name", item.Name, token);

                _activity.RunOnUiThread(() =>
                {
                    viewHolder.AddGoodsDispatchedNoteRowItemLocation.Adapter = adapter;
                    adapter.UpdateList(result.Data);
                });
            }, token);

            return(convertView);
        }