/// <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; } } }
private static void CreateContactGroup(string contactGroupCodeName, string contactGroupName) { var contactGroup = ContactGroupInfoProvider.GetContactGroupInfo(contactGroupCodeName); if (contactGroup != null) { return; } contactGroup = new ContactGroupInfo { ContactGroupDisplayName = contactGroupName, ContactGroupName = contactGroupCodeName, ContactGroupEnabled = true }; ContactGroupInfoProvider.SetContactGroupInfo(contactGroup); }
private void CreateContactGroupWithFormConsentAgreementRule() { if (ContactGroupInfoProvider.GetContactGroupInfo(CONTACT_GROUP_NAME) != null) { return; } var contactGroup = new ContactGroupInfo { ContactGroupDisplayName = CONTACT_GROUP_DISPLAY_NAME, ContactGroupName = CONTACT_GROUP_NAME, ContactGroupDynamicCondition = GetFormConsentMacroRule(), ContactGroupEnabled = true }; ContactGroupInfoProvider.SetContactGroupInfo(contactGroup); }
private ContactGroupInfo CreateContactGroup( string contactGroupCodeName, string contactGroupName) { var contactGroupInfo = ContactGroupInfoProvider.GetContactGroupInfo(contactGroupCodeName); if (contactGroupInfo != null) { ContactGroupInfoProvider.DeleteContactGroupInfo(contactGroupInfo); } var groupObj = new ContactGroupInfo(); groupObj.ContactGroupDisplayName = contactGroupName; groupObj.ContactGroupName = contactGroupCodeName; groupObj.ContactGroupEnabled = true; ContactGroupInfoProvider.SetContactGroupInfo(groupObj); return(groupObj); }
private static ContactGroupInfo CreateContactGroup(PersonaInfo persona) { var contactGroupInfo = ContactGroupInfoProvider.GetContactGroupInfo(CoffeeGeekPersonaContactGroupName); if (contactGroupInfo != null) { ContactGroupInfoProvider.DeleteContactGroupInfo(contactGroupInfo); } var groupObj = new ContactGroupInfo(); groupObj.ContactGroupDisplayName = "Is in persona 'Martina, the Coffee Geek'"; groupObj.ContactGroupName = CoffeeGeekPersonaContactGroupName; groupObj.ContactGroupEnabled = true; var str = MacroSecurityProcessor.AddSecurityParameters( string.Format( "{{%Rule(\"(Contact.IsInPersona(\\\"{0}\\\"))\", \"<rules><r pos=\\\"0\\\" par=\\\"\\\" op=\\\"and\\\" n=\\\"ContactIsInPersona\\\" ><p n=\\\"_is\\\"><t>is</t><v></v><r>0</r><d>select operation</d><vt>text</vt><tv>0</tv></p><p n=\\\"personaguid\\\"><t>{1}</t><v>{0}</v><r>1</r><d>select persona</d><vt>text</vt><tv>0</tv></p></r></rules>\") %}}", persona.PersonaGUID, persona.PersonaDisplayName), MacroIdentityOption.FromUserInfo(UserInfoProvider.AdministratorUser), null); groupObj.ContactGroupDynamicCondition = str; ContactGroupInfoProvider.SetContactGroupInfo(groupObj); return(groupObj); }
/// <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); } }
/// <summary> /// OnAfterSave event handler. /// </summary> protected void EditForm_OnAfterSave(object sender, EventArgs e) { // Get edited contact group ContactGroupInfo cgi = (ContactGroupInfo)EditForm.EditedObject; if (chkDynamic.Checked) { // Set info for scheduled task task = GetScheduledTask(cgi); // Update scheduled task if (chkSchedule.Checked) { if (!schedulerInterval.CheckOneDayMinimum()) { // If problem occurred while setting schedule interval EditForm.ErrorLabel.Text = GetString("Newsletter_Edit.NoDaySelected"); EditForm.ErrorLabel.Visible = true; EditForm.StopProcessing = true; return; } if (!DataTypeManager.IsValidDate(SchedulingHelper.DecodeInterval(scheduleInterval).StartTime)) { // Start date is not in valid format EditForm.ErrorLabel.Text = GetString("Newsletter.IncorrectDate"); EditForm.ErrorLabel.Visible = true; EditForm.StopProcessing = true; return; } task.TaskInterval = scheduleInterval; task.TaskNextRunTime = SchedulingHelper.GetNextTime(task.TaskInterval, new DateTime(), new DateTime()); task.TaskEnabled = true; } else { task.TaskInterval = scheduleInterval; task.TaskNextRunTime = TaskInfoProvider.NO_TIME; task.TaskEnabled = false; } TaskInfoProvider.SetTaskInfo(task); cgi.ContactGroupScheduledTaskID = task.TaskID; pnlInfo.Visible = true; InitInfoPanel(cgi, true); } else { if (cgi.ContactGroupScheduledTaskID > 0) { // Store task ID for deletion deleteScheduledTaskId = cgi.ContactGroupScheduledTaskID; } cgi.ContactGroupScheduledTaskID = 0; cgi.ContactGroupStatus = ContactGroupStatusEnum.Unspecified; schedulerInterval.Visible = false; pnlInfo.Visible = false; } // Update contact group ContactGroupInfoProvider.SetContactGroupInfo(cgi); if (deleteScheduledTaskId > 0) { // Delete scheduled task if schedule evaluation was unchecked TaskInfoProvider.DeleteTaskInfo(deleteScheduledTaskId); } InitHeaderActions(false); ((CMSPage)Page).CurrentMaster.HeaderActions.ReloadData(); // Refresh breadcrumbs var append = cgi.IsGlobal ? " " + GetString("general.global") : ""; ScriptHelper.RefreshTabHeader(Page, cgi.ContactGroupDisplayName + append); }