Exemple #1
0
        private void ListCallback(IDbServiceAsyncCallback <List <object> > callback)
        {
            var data = (CachedListCallback)callback;
            var list = data.Cache.Data;

            list.RaiseListChangedEvents = false;
            list.Clear();
            list.Add(string.Empty);
            foreach (var i in data.Results)
            {
                list.Add(i);
            }
            list.RaiseListChangedEvents = true;
            list.ResetBindings();
        }
Exemple #2
0
        private void SearchComplete(IDbServiceAsyncCallback <DataTable> callback)
        {
            var data = (ResultCallback)callback;

            if (data.Exception != null)
            {
                MessageBox.Show(data.Exception.Message, "Search", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            else
            {
                ResultSQL         = ((SearchDetails)data.Details).Sql;
                Result.DataSource = data.Results;
            }

            SearchCanceller = null;
        }
Exemple #3
0
        public Action GetList(IFieldPath path, IDbServiceAsyncCallback <List <object> > callback) //ListCallback callback)
        {
            var worker = new BackgroundWorker();

            worker.WorkerSupportsCancellation = true;

            worker.DoWork += (s1, e1) =>
            {
                e1.Result = GetList(path);
                e1.Cancel = worker.CancellationPending;
            };
            worker.RunWorkerCompleted += (s2, e2) =>
            {
                worker.Dispose();

                // cancellation assumes the SearchWorker property has been set null
                if (e2.Cancelled)
                {
                    return;
                }

                if (e2.Error != null)
                {
                    //MessageBox.Show("There was an error when trying to perform the search.\n\n" + e2.Error.Message, "Search", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    callback.Exception = e2.Error;
                }
                else
                {
                    callback.Results = e2.Result as List <object>;
                    //callback(path, e2.Result as List<object>);
                }
                callback.Callback(callback);
            };
            worker.RunWorkerAsync();
            return(new Action(worker.CancelAsync));
        }