Esempio n. 1
0
    /// <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;
            }
        }
    }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }
    }
Esempio n. 7
0
    /// <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);
    }