private void DoDelete(Workbench wb, OSGeo.MapGuide.MaestroAPI.Services.IResourceService resSvc, RepositoryItem[] items) { var pdlg = new ProgressDialog(); pdlg.CancelAbortsThread = true; string[] args = new string[items.Length]; for (int i = 0; i < items.Length; i++) { args[i] = items[i].ResourceId; } var work = new Maestro.Shared.UI.ProgressDialog.DoBackgroundWork((worker, e, target) => { int deleted = 0; if (target == null || target.Length == 0) { return(deleted); } int step = 100 / target.Length; int current = 0; foreach (RepositoryItem item in target) { if (worker.CancellationPending || e.Cancel) { return(deleted); } current += step; if (item.IsRoot) //Wait a minute...! { continue; } else { resSvc.DeleteResource(item.ResourceId); deleted++; worker.ReportProgress(current, item.ResourceId); } } //collect affected parents and update the model foreach (RepositoryItem item in target) { var parent = item.Parent; if (parent != null) { parent.RemoveChild(item); } } return(deleted); }); pdlg.RunOperationAsync(wb, work, items); }
private void DoDelete(Workbench wb, OSGeo.MapGuide.MaestroAPI.Services.IResourceService resSvc, RepositoryItem[] items) { var pdlg = new ProgressDialog(); pdlg.CancelAbortsThread = true; string[] args = new string[items.Length]; for (int i = 0; i < items.Length; i++) { args[i] = items[i].ResourceId; } var work = new Maestro.Shared.UI.ProgressDialog.DoBackgroundWork((worker, e, target) => { int deleted = 0; if (target == null || target.Length == 0) return deleted; int step = 100 / target.Length; int current = 0; foreach (RepositoryItem item in target) { if (worker.CancellationPending || e.Cancel) return deleted; current += step; if (item.IsRoot) //Wait a minute...! { continue; } else { resSvc.DeleteResource(item.ResourceId); deleted++; worker.ReportProgress(current, item.ResourceId); } } //collect affected parents and update the model foreach (RepositoryItem item in target) { var parent = item.Parent; if (parent != null) { parent.RemoveChild(item); } } return deleted; }); pdlg.RunOperationAsync(wb, work, items); }