示例#1
0
        internal void ReplaceUserFilters()
        {
            if (MessageBox.Show(ParentForm,
                "Are you sure you want to apply the selected user synchronization filters to other users?",
                "Question", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
            {
                return;
            }

            List<Entity> users = null;

            var usDialog = new UserSelectionDialog(service);
            if (usDialog.ShowDialog(this) == DialogResult.OK)
            {
                users = usDialog.SelectedUsers;
            }
            else
            {
                return;
            }

            loadingPanel = InformationPanel.GetInformationPanel(this, "Initiating...", 340, 120);

            var bwReplaceFilters = new BackgroundWorker { WorkerReportsProgress = true };
            bwReplaceFilters.DoWork += bwReplaceFilters_DoWork;
            bwReplaceFilters.ProgressChanged += bwReplaceFilters_ProgressChanged;
            bwReplaceFilters.RunWorkerCompleted += bwReplaceFilters_RunWorkerCompleted;
            bwReplaceFilters.RunWorkerAsync(new object[] { GetSelectedUsers()[0], users });
        }
        internal void ApplySelectedFiltersToUsers(bool applyToActiveUsers = false)
        {
            if (lvViews.SelectedItems.Count == 0)
            {
                return;
            }

            var templates = new EntityReferenceCollection();
            foreach (ListViewItem item in lvViews.SelectedItems)
            {
                templates.Add(new EntityReference(entityName, ((Entity)item.Tag).Id));
            }

            List<Entity> users = null;

            if (!applyToActiveUsers)
            {
                var usDialog = new UserSelectionDialog(service);
                if (usDialog.ShowDialog(this) == DialogResult.OK)
                {
                    users = usDialog.SelectedUsers;
                }
                else
                {
                    return;
                }

            }

            if (users == null || users.Count > 0)
            {
                loadingPanel = InformationPanel.GetInformationPanel(this, "Processing...", 340, 120);

                var bwApplyFiltersToUsers = new BackgroundWorker {WorkerReportsProgress = true};
                bwApplyFiltersToUsers.DoWork += bwApplyFiltersToUsers_DoWork;
                bwApplyFiltersToUsers.ProgressChanged += bwApplyFiltersToUsers_ProgressChanged;
                bwApplyFiltersToUsers.RunWorkerCompleted += bwApplyFiltersToUsers_RunWorkerCompleted;
                bwApplyFiltersToUsers.RunWorkerAsync(new object[] {templates, users});
            }
        }
        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);
                    }
                }
            }
        }
示例#4
0
 private void LoadUserLocalDataRulesForUsers()
 {
     var usDialog = new UserSelectionDialog(Service);
     if (usDialog.ShowDialog(this) == DialogResult.OK)
     {
         usersLocalDataRulesView.Service = Service;
         usersLocalDataRulesView.DisplayOfflineFilter = chkDisplayOfflineFilters.Checked;
         usersLocalDataRulesView.DisplayOutlookFilter = chkDisplayOutlookFilters.Checked;
         usersLocalDataRulesView.LoadSystemViews(usDialog.SelectedUsers);
     }
 }