/// <summary> /// Actions handler. /// </summary> protected void HeaderActions_ActionPerformed(object sender, CommandEventArgs e) { if (ContactGroupHelper.AuthorizedModifyContactGroup(this.SiteID, true)) { switch (e.CommandName.ToLower()) { case "save": // Save changes in the contact group EditForm.SaveData(null); break; case "evaluate": if (EditForm.EditedObject != null) { ContactGroupInfo cgi = (ContactGroupInfo)EditForm.EditedObject; if (cgi != null) { // Set 'Rebuilding' status cgi.ContactGroupStatus = ContactGroupStatusEnum.Rebuilding; ContactGroupInfoProvider.SetContactGroupInfo(cgi); // Evaluate the membership of the contact group ContactGroupEvaluator evaluator = new ContactGroupEvaluator(); evaluator.ContactGroupID = cgi.ContactGroupID; evaluator.Execute(null); EditForm.InfoLabel.Text = GetString("om.contactgroup.evaluationstarted"); EditForm.InfoLabel.Visible = true; // Get scheduled task and update last run time if (cgi.ContactGroupScheduledTaskID > 0) { task = TaskInfoProvider.GetTaskInfo(cgi.ContactGroupScheduledTaskID); if (task != null) { task.TaskLastRunTime = DateTime.Now; TaskInfoProvider.SetTaskInfo(task); } } // Display basic info about dynamic contact group InitInfoPanel(cgi, false); } } break; } } }
/// <summary> /// Performs contact group recalculation. /// Fires, when recalculate button is clicked. /// </summary> private void RecalculateContactGroup(object sender, EventArgs e) { if (ContactGroup == null || ContactGroup.ContactGroupStatus == ContactGroupStatusEnum.Rebuilding) { return; } if (ContactGroupHelper.AuthorizedModifyContactGroup(ContactGroup.ContactGroupSiteID, true)) { RebuildHeaderAction.Text = ResHelper.GetString("om.contactgroup.rebuilding"); RebuildHeaderAction.Enabled = false; StatusLabel.Visible = false; // Set status that the contact group is being rebuilt ContactGroup.ContactGroupStatus = ContactGroupStatusEnum.Rebuilding; ContactGroupInfoProvider.SetContactGroupInfo(ContactGroup); // Evaluate the membership of the contact group ContactGroupEvaluator evaluator = new ContactGroupEvaluator(); evaluator.ContactGroup = ContactGroup; Task.Factory.StartNew(CMSThread.Wrap(evaluator.Run), TaskCreationOptions.LongRunning); } }
private void RecalculateCGsBtnAction(object sender, EventArgs e) { var contactGroups = ContactGroupInfoProvider.GetContactGroups() .WhereEquals("ContactGroupStatus", ContactGroupStatusEnum.ConditionChanged) .OnSite(SiteContext.CurrentSiteID); foreach (var contactGroup in contactGroups) { // Evaluate the membership of the contact group ContactGroupEvaluator evaluator = new ContactGroupEvaluator(); evaluator.ContactGroup = contactGroup; evaluator.Execute(null); // Get scheduled task and update last run time var task = ContactGroupRebuildTaskManager.GetScheduledTask(contactGroup); if (task != null) { task.TaskLastRunTime = DateTime.Now; TaskInfoProvider.SetTaskInfo(task); } } ShowInformation("Contact Group recalculation started"); }
/// <summary> /// Actions handler. /// </summary> protected void HeaderActions_ActionPerformed(object sender, CommandEventArgs e) { if (ContactGroupHelper.AuthorizedModifyContactGroup(SiteID, true)) { switch (e.CommandName.ToLowerCSafe()) { case "save": if (chkDynamic.Checked) { // Get scheduled interval string scheduleInterval = schedulerInterval.ScheduleInterval; } // Save changes in the contact group if (EditForm.SaveData(null)) { mBtnEvaluate.Visible = chkDynamic.Checked; ScriptHelper.RefreshTabHeader(Page, null); } break; case "evaluate": if (EditForm.EditedObject != null) { ContactGroupInfo cgi = (ContactGroupInfo)EditForm.EditedObject; if (cgi != null) { // Set 'Rebuilding' status cgi.ContactGroupStatus = ContactGroupStatusEnum.Rebuilding; ContactGroupInfoProvider.SetContactGroupInfo(cgi); // Evaluate the membership of the contact group ContactGroupEvaluator evaluator = new ContactGroupEvaluator(); evaluator.ContactGroupID = cgi.ContactGroupID; evaluator.Execute(null); EditForm.InfoLabel.Text = GetString("om.contactgroup.evaluationstarted"); EditForm.InfoLabel.Visible = true; // Get scheduled task and update last run time if (cgi.ContactGroupScheduledTaskID > 0) { task = TaskInfoProvider.GetTaskInfo(cgi.ContactGroupScheduledTaskID); if (task != null) { task.TaskLastRunTime = DateTime.Now; TaskInfoProvider.SetTaskInfo(task); // Initialize interval control schedulerInterval.ScheduleInterval = task.TaskInterval; schedulerInterval.ReloadData(); } } // Display basic info about dynamic contact group InitInfoPanel(cgi, false); } } break; } } }