private void ApplyTemplateToUsers(List <Guid> rulesIds, string question, RuleManager rm, BackgroundWorker worker) { worker.ReportProgress(0, "Waiting for input..."); if ( MessageBox.Show(this, question, "Question", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { var usDialog = new UserSelectionDialog(service); if (usDialog.ShowDialog() == DialogResult.OK) { foreach (var user in usDialog.SelectedUsers) { worker.ReportProgress(0, string.Format("Applying rule(s) to user(s) '{0}'", user.GetAttributeValue <string>("fullname"))); var erc = new EntityReferenceCollection(); foreach (var ruleId in rulesIds) { erc.Add(new EntityReference("savedquery", ruleId)); } rm.ApplyRulesToUser(erc, user.Id); } } } }
void bwApplyFiltersToUsers_DoWork(object sender, DoWorkEventArgs e) { var bw = (BackgroundWorker)sender; var rm = new RuleManager("savedquery", service); var templates = ((EntityReferenceCollection)((object[])e.Argument)[0]); var users = (List <Entity>)((object[])e.Argument)[1]; if (users == null) { rm.ApplyRuleToActiveUsers(templates); } else { foreach (var user in users) { bw.ReportProgress(0, string.Format("Applying filter(s) for user {0}...", user.GetAttributeValue <string>("fullname"))); rm.ApplyRulesToUser(templates, user.Id); } } }