async private Task Import(object arg) { if (!(arg is ImportArguments)) { return; } ImportArguments args = (ImportArguments)arg; await Task.Delay(300); // open reporter UI... bool succeeded = true; foreach (string filename in args.Data) { succeeded = await args.Operator.Import(filename, args.Providers); if (!succeeded) { break; } } AccessFDB fdb = args.dataset.Database as AccessFDB; if (fdb != null) { IFeatureClass fc = await fdb.GetFeatureclass(args.dataset.DatasetName, args.dataset.DatasetName + "_IMAGE_POLYGONS"); if (fc != null) { await fdb.CalculateExtent(fc); } await fdb.ShrinkSpatialIndex(args.dataset.DatasetName + "_IMAGE_POLYGONS"); //if (!fdb.CalculateSpatialIndex(fdb.GetFeatureclass(args.dataset.DatasetName, args.dataset.DatasetName + "_IMAGE_POLYGONS"), 10, 0)) //{ // MessageBox.Show("ERROR: CalculateSpatialIndex - " + fdb.lastErrorMsg); //} } }
async private Task RebuildIndicesAsync(object argument) { if (!(argument is List <IClass>)) { return; } List <IClass> classes = argument as List <IClass>; if (ReportProgress != null) { _report.featureMax = classes.Count; _report.featurePos = 0; ReportProgress(_report); } foreach (IClass cl in classes) { if (!(cl is IFeatureClass) || cl.Dataset == null || !(cl.Dataset.Database is AccessFDB)) { continue; } if (ReportProgress != null) { _report.featurePos = classes.IndexOf(cl); _report.Message = "Featureclass " + cl.Name; ReportProgress(_report); } AccessFDB fdb = cl.Dataset.Database as AccessFDB; if (!await fdb.ShrinkSpatialIndex(cl.Name)) { MessageBox.Show("Error rebuilding " + cl.Name + " index:\n" + fdb.LastErrorMessage); return; } if (!_cancelTracker.Continue) { return; } } }